Slide 1

Slide 1 text

Building Multi-Platform Native Apps with MVVM and C# Greg Shackles Senior Software Engineer OLO @gshackles [email protected] github.com/gshackles

Slide 2

Slide 2 text

nycmobiledev.net @NYCMobileDev

Slide 3

Slide 3 text

Gone Mobile gonemobile.io @GoneMobileCast

Slide 4

Slide 4 text

Google Apple RIM Microso! Symbian 52.0% Android 39.9% Apple 4.4% RIM 3.1% Microsoft Source: comScore US Market Share: June 2013

Slide 5

Slide 5 text

Write Once, Run Anywhere

Slide 6

Slide 6 text

Write Once, Run Anywhere BUSTED

Slide 7

Slide 7 text

Xamarin: C# All The Things! * * plus some F# for good measure •100% Native •Full access to platform SDKs •BCL, Async, LINQ, etc •Improved API •Shared code across platforms •Garbage collection •Visual Studio / Xamarin Studio •Frequent Releases

Slide 8

Slide 8 text

MVVM Click Me Hello World! 1. action 2. event handling 3. command 4. access data 5. notify change 6. get changed data 7. update UI View Binder View Model Model

Slide 9

Slide 9 text

Binding: Properties

Slide 10

Slide 10 text

Binding: Collections

Slide 11

Slide 11 text

Binding: Actions

Slide 12

Slide 12 text

Binding: Value Converters

Slide 13

Slide 13 text

MvvmCross: Platforms

Slide 14

Slide 14 text

•Shared behavior, not presentation •Bind all the platforms! •Powerful binding options •Convention over configuration •Pluggable architecture •PCL •Inversion of Control •Testable MvvmCross: Highlights

Slide 15

Slide 15 text

•Source: github.com/slodge/MvvmCross •Stuart’s Blog: slodge.blogspot.com •N+1: mvvmcross.wordpress.com •Chat: jabbr.net/#/rooms/mvvmcross MvvmCross: Resources

Slide 16

Slide 16 text

•Customize view presentation •Platform-specific •Still retain View Model logic Presenters •Tabs / Panorama •Split View / Master-Detail •Fragments •Modals •Hamburger menu

Slide 17

Slide 17 text

Presenters

Slide 18

Slide 18 text

Plugins • Accelerometer • Download Cache • Email • File • Json • Localization • Location • Messenger • Phone Call • Picture Chooser • SQLite • Visibility • Web Browser • Many More!

Slide 19

Slide 19 text

No content