xamarin - beyond the basics

22
Beyond the basics Prabha Kularathna IFS Labs

Upload: prabha-kularathna

Post on 16-Aug-2015

194 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Xamarin - Beyond the Basics

Beyond the basics

Prabha KularathnaIFS Labs

Page 2: Xamarin - Beyond the Basics

Introduction

Page 3: Xamarin - Beyond the Basics

Why Xamarin?

Status-quonative apps

Cross platformvia HTML/JavaScript

• Multiple code Lines• Training costs• Development costs• Maintenance costs• Extra effort to

maintain cross-consistency in UX

• It’s a Web View! Sluggish

• Jack-of-all-trades-master-of-none

• Keeping up with hardware spec diversity / evolution

“Xamarin – best of both worlds”

Page 4: Xamarin - Beyond the Basics

Potential value

Page 5: Xamarin - Beyond the Basics

History

Ximian(1999)

(2001)

started

Acquired by(2003)

v1.0 (2004)v2.0 (2008)Touch (2009)

Shipped

Acquired by(2011)

Laid off team

(2011)

Droid (2011)v3.0 (2012)

Shipped

Nat FriedmanMiguel de Icaza

Page 6: Xamarin - Beyond the Basics

Xamarin

App Logic

iOS UI Android UIWin Phone

UI

NativeAndroid app

NativeiOS app

NativeWin Phone app

App Architecture

Page 7: Xamarin - Beyond the Basics

Common Language Infrastructure (CLI)

Standard: ECMA-335

C#

VB.NET

Any other .NET

Language

C# Compiler

VB.NET Compiler

Other Compiler

CILCode

Source CodeBytecode

Windows(Windows Phone)

Play Station 3

Nintendo Wii

Solaris

Native Platform

Development time in the IDE Runtime on the platform

Apple OSX (iOS)

Linux (Android)

BSD

MonoApp / Application Architecture

Page 8: Xamarin - Beyond the Basics

Common Language Infrastructure (CLI)

Standard: ECMA-335

CILCode

Bytecode Mono Android

Mono iOS

Mono OSX

Mono Windows Mobile

C#C# Compiler

Source Code

Native Platform

Development time in the IDE Runtime in the device

XamarinApp Architecture

Page 9: Xamarin - Beyond the Basics

Development time in the IDE

C#Compile C# CIL

Code

Source CodeBytecode

Core .NET Android APIs

*. Java Libraries

*. Android Libraries

Core .NET PCL APIs

3rd Party .NET PCL APIs

3rd Party .NET Android APIs

Xamarin AndroidApp Architecture

Page 10: Xamarin - Beyond the Basics

Development time in the IDE

C#Compile C# CIL

Code

Source CodeBytecode

Core .NET Android APIs

*. Java Libraries

*. Android Libraries

Core .NET PCL APIs

3rd Party .NET PCL APIs

3rd Party .NET Android APIs

Your code

From ‘NuGet’ and ‘Xamarin Component Store’

Xamarin SDK

Android SDK

JDK

Xamarin AndroidApp Architecture

Page 11: Xamarin - Beyond the Basics

Runtime in the device

C#Compile C# CIL

Code

Source CodeBytecode

Core .NET Android APIs

*. Java Libraries

*. Android Libraries

Core .NET PCL APIs

3rd Party .NET PCL APIs

3rd Party .NET Android APIs

Your “APK” Device

Linux KernelMono Runtime

Xamarin AndroidApp Architecture

Page 12: Xamarin - Beyond the Basics

App Logic

UI

NativeAndroid app

NativeiOS app

NativeWin Phone app

Xamarin FormsApp Architecture

Page 13: Xamarin - Beyond the Basics

Portfolio

Xamarin StudioXamarin for Visual Studio

Page 14: Xamarin - Beyond the Basics

Portfolio

Xamarin Memory and Performance Profiler

Page 15: Xamarin - Beyond the Basics

Portfolio

NuGetXamarin Component Store

Page 16: Xamarin - Beyond the Basics

Portfolio

Xamarin Test Cloud

Page 17: Xamarin - Beyond the Basics

Portfolio

Xamarin Insights

Page 18: Xamarin - Beyond the Basics

DEMO

Page 19: Xamarin - Beyond the Basics

Xamarin

1. Native: Lightning fast

2. Everything you get from given platform

3. Code reuse

4. C#

• Mature

• Short learning curve

• Rich features (Async, Lambdas, LINQ)

5. Rich tooling & ecosystem

Advantages

Page 20: Xamarin - Beyond the Basics

Xamarin

1. UI layer not cross-platform

• Xamarin Forms is still immature

2. Learning curve : 3rd technology

3. Expensive!

• Hopefully prices may come down when developer community grows…

Disadvantages

Page 21: Xamarin - Beyond the Basics

Xamarin

My impression working with Xamarin: Awesome!

Page 22: Xamarin - Beyond the Basics

Questions?