Building Multi-Platform Native Apps with MVVM and C#

279b474d14f72e4daa1fc76e6f3c929f?s=47 Greg Shackles
September 14, 2013

Building Multi-Platform Native Apps with MVVM and C#

279b474d14f72e4daa1fc76e6f3c929f?s=128

Greg Shackles

September 14, 2013
Tweet

Transcript

  1. Building Multi-Platform Native Apps with MVVM and C# Greg Shackles

    Senior Software Engineer OLO @gshackles greg@gregshackles.com github.com/gshackles
  2. nycmobiledev.net @NYCMobileDev

  3. Gone Mobile gonemobile.io @GoneMobileCast

  4. Google Apple RIM Microso! Symbian 52.0% Android 39.9% Apple 4.4%

    RIM 3.1% Microsoft Source: comScore US Market Share: June 2013
  5. Write Once, Run Anywhere

  6. Write Once, Run Anywhere BUSTED

  7. 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
  8. 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
  9. Binding: Properties

  10. Binding: Collections

  11. Binding: Actions

  12. Binding: Value Converters

  13. MvvmCross: Platforms

  14. •Shared behavior, not presentation •Bind all the platforms! •Powerful binding

    options •Convention over configuration •Pluggable architecture •PCL •Inversion of Control •Testable MvvmCross: Highlights
  15. •Source: github.com/slodge/MvvmCross •Stuart’s Blog: slodge.blogspot.com •N+1: mvvmcross.wordpress.com •Chat: jabbr.net/#/rooms/mvvmcross MvvmCross:

    Resources
  16. •Customize view presentation •Platform-specific •Still retain View Model logic Presenters

    •Tabs / Panorama •Split View / Master-Detail •Fragments •Modals •Hamburger menu
  17. Presenters

  18. Plugins • Accelerometer • Download Cache • Email • File

    • Json • Localization • Location • Messenger • Phone Call • Picture Chooser • SQLite • Visibility • Web Browser • Many More!
  19. None