18
C# + Xamarin + VS.Net = cross-platform mobile app awesomeness Hydrogen Apps

Hydrogen Ellerslie dnug Xamarin

Embed Size (px)

DESCRIPTION

Presentation by Hydrogen to the Ellerslie .Net User Group on Xamarin

Citation preview

Page 1: Hydrogen Ellerslie dnug Xamarin

C# + Xamarin + VS.Net = cross-platform mobile app

awesomeness

Hydrogen Apps

Page 2: Hydrogen Ellerslie dnug Xamarin

Mobile app approaches

2

Page 3: Hydrogen Ellerslie dnug Xamarin

Hydrogen Apps

3

Silo

Source: http://channel9.msdn.com/Events/Build/2014/3-653

Page 4: Hydrogen Ellerslie dnug Xamarin

Hydrogen Apps

4

Write-once, run anywhere

Source: http://channel9.msdn.com/Events/Build/2014/3-653

Page 5: Hydrogen Ellerslie dnug Xamarin

Hydrogen Apps

5

Xamarin approach

Source: http://channel9.msdn.com/Events/Build/2014/3-653

Everything is awesome!

Page 6: Hydrogen Ellerslie dnug Xamarin

Hydrogen Apps

6

Platform specific APIs are exposed via .Net

iOS APIs – 100% coverage► Generates native ARM code indistinguishable from Xcode

Android APIs – 100% coverage ► JIT in Mono execution environment

APIs are C#-ified► Static typing► C# language features

How native is “native”

Page 7: Hydrogen Ellerslie dnug Xamarin

Hydrogen Apps

7

VS.Net – not actually required if just targeting Android/iOS

XamarinXamarin Studio IDE

VS.Net pluginsXamarin.iOS

Xamarin.Android

Xamarin build host on mac

Android SDKAndroid developer tools

Android debug bridge

Android virtual devices (emulators)

Mac OSXXcode

iOS Simulator

Stores► Google Play► iOS App Store► Windows/WinPhone App Store

Pieces to the puzzle

Page 8: Hydrogen Ellerslie dnug Xamarin

Demo8

Page 9: Hydrogen Ellerslie dnug Xamarin

Architecting for code reuse

9

Page 10: Hydrogen Ellerslie dnug Xamarin

Hydrogen Apps

10

Portable Class Libraries

PCL.csproj

Class1.cs

iOS.csproj

Android.csproj

WinPhone.csproj

iOS Views, etc

Droid Views, etc

WP Views, etc

Dll Reference

Page 11: Hydrogen Ellerslie dnug Xamarin

Hydrogen Apps

11

Linked Files

Class1.cs

iOS.csproj

Android.csproj

WinPhone.csproj

Class1.cs

Class1.cs

Class1.cs

iOS Views, etc

Droid Views, etc

WP Views, etc

Class1.cs compiled in app project

Page 12: Hydrogen Ellerslie dnug Xamarin

Hydrogen Apps

12

Shared.csproj

Shared Project

Class1.cs

iOS.csproj

Android.csproj

WinPhone.csproj

Class1.cs

Class1.cs

Class1.cs

iOS Views, etc

Droid Views, etc

WP Views, etc

Class1.cs compiled in app project

Page 13: Hydrogen Ellerslie dnug Xamarin

Hydrogen Apps

13

View Models

Model View ViewModel

Business Logic, Repositories, Models, etc

.Net, 3rd Party Frameworks

Xamarin.iOS

iOS Views

Xamarin.Android

Android Views

WinPRT

WinPhone Views

Unit tests

Bindings,Abstractions

Page 14: Hydrogen Ellerslie dnug Xamarin

Demo14

Page 15: Hydrogen Ellerslie dnug Xamarin

Hydrogen Apps

15

Xamarin.Forms

Shared C# Backend (Xamarin + .Net)

iOS Native View

Android Native View

WinPhone Native View

Shared C# Views (Xamarin.Forms)

Dynamically generates

Page 16: Hydrogen Ellerslie dnug Xamarin

Demo16

Page 17: Hydrogen Ellerslie dnug Xamarin

Hydrogen Apps

17

Xamarin Licensing► Starter (Free)► Indie ($299/year)► Business ($999/year)► Enterprise ($1899/year)

Get a Mac for iOS

Learn each platform► Before using abstractions► Know ins/outs, limitations► Easier to understand later

Xamarin community forums

Xamarin presentations forum► http://

forums.xamarin.com/categories/presentations

Sample apps► https://github.com/xamarin

Evolve 2014!► Oct 6th-10th, Atlanta

Xamarin University► Live online classes► Expert office hours

Where to start?

Page 18: Hydrogen Ellerslie dnug Xamarin

Hydrogen Apps

18

Questions