Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building Multi-Platform Native Apps with MVVM and C#

Greg Shackles
September 14, 2013

Building Multi-Platform Native Apps with MVVM and C#

Greg Shackles

September 14, 2013
Tweet

More Decks by Greg Shackles

Other Decks in Technology

Transcript

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

    Senior Software Engineer OLO @gshackles [email protected] github.com/gshackles
  2. Google Apple RIM Microso! Symbian 52.0% Android 39.9% Apple 4.4%

    RIM 3.1% Microsoft Source: comScore US Market Share: June 2013
  3. 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
  4. 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
  5. •Shared behavior, not presentation •Bind all the platforms! •Powerful binding

    options •Convention over configuration •Pluggable architecture •PCL •Inversion of Control •Testable MvvmCross: Highlights
  6. •Customize view presentation •Platform-specific •Still retain View Model logic Presenters

    •Tabs / Panorama •Split View / Master-Detail •Fragments •Modals •Hamburger menu
  7. Plugins • Accelerometer • Download Cache • Email • File

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