Why All of the Cool Kids Are Talking Xamarin

Why All of the Cool Kids Are Talking Xamarin

Presentation at Melbourne DDD on July the 19th 2014. An introduction to Xamarin and why people should look at using this technology


Stephen Kennedy

July 19, 2014


  1. With thanks to our sponsors

  2. Why All of the Cool Kids Are Talking Xamarin Yes,

    yet another presentation http://www.devenable.com @devenable Stephen Kennedy
  3. • A cross-platform product that allows developers to write iOS,

    OS X, & Android applications using .Net code through the Mono project • Code sharing • Native What Is Xamarin?
  4. At a super high level… • Bindings & wrappers on

    Android • AOT compilation on iOS It Works, How?
  5. Xamarin.Forms Shared UI Code Shared App Logic Shared App Logic

    Xamarin (Vanilla)
  6. https://github.com/DevEnable/Xamarin.CountWtf

  7. http://countw.tf/ A port of https://github.com/DevEnable/Xamarin.CountWtf

  8. Mobile Services • Lightweight data abstraction • .Net (Web API)

    or JavaScript (Node.js) • Features • Scheduled Jobs • Push Notifications • Identity • API Keys https://github.com/DevEnable/Xamarin.CountWtf
  9. Mobile Services • Three controllers • ProjectController • ProjectSummaryController •

    Composite controller for projects + WTF counts • WtfController • Identity (Twitter) + CounterWTF https://github.com/DevEnable/Xamarin.CountWtf
  10. Mobile Services + FYI: These API keys are no longer

  11. https://github.com/DevEnable/Xamarin.CountWtf

  12. • PCL (Portable Class Library) • Re-usable DLL • Only

    a subset of the .Net framework • Cannot use compiler directives • Not all PCL’s are created the same • Shared Projects • No output assembly • Can be branched based on compiler directives • Refactorings for non- compiler directives do not update code Code Sharing
  13. • The supported native language(s) (hint: Objective C) • It

    also morphs some of the native language constructs into their .Net equivalents, it isn’t just a wrapper. E.g. NSString simply becomes string • The official designer tools (Xcode / Ellipse) Xamarin Helps to Hide…
  14. • Needing to understand the platforms • Being able to

    read the native language code. • Needing an OS X machine for iOS development • Version fragmentation You Aren’t Getting Away From…
  15. Or…

  16. Xamarin vs Native

  17. Xamarin vs Hybrid

  18. Xamarin vs Web (HTML 5) - <!-- if [IE 6]>

  19. What the Cool Kids Think

  20. Scott Hanselman @shanselman http://myechoapp.com/ Insert video here…

  21. • ReactiveUI • Akavache • Refit • ModernHttpClient • OkHttp-Xamarin

    • Punchclock • Fusillade • Splat Paul Betts GitHub engineer. Massive Xamarin OSS contributor: @paulcbetts
  22. What drove you to get so involved in open source

    development with Xamarin? Particularly around ReactiveUI. The reason I'm excited about Xamarin is that it's a cross-platform solution that's actually *better* than the original platforms. C# is one of the best general- purpose programming languages, and with Xamarin I can write code for platforms that people use (iOS and Android) I'm excited about ReactiveUI because it's a foray into fundamentally changing the way that people write the backing code for user interfaces, in a way that takes extremely difficult state-management / race condition'y problems, and turns them into succinct, deterministic, elegant code. RxUI makes it reasonable to do otherwise prohibitively difficult things in user interfaces. The fact that it's cross-platform is really just a bonus - my goal for Xamarin and RxUI is to be the best way to write client software, flat-out.
  23. The fact that it's cross-platform is really just a bonus

    - my goal for Xamarin and RxUI is to be the best way to write client software, flat-out.
  24. Aside from the obvious of being able to write iOS

    / Android applications with .Net & code sharing, what excites you the most about the Xamarin product going forward? I'm mostly excited about the platform that can be built on *top* of Xamarin products - taking all the great ideas from platform-specific libraries like Picasso and Volley, and creating cross-platform versions that are both better to use (because of C# the language), as well as making it easy to write beautiful applications that run everywhere.
  25. We forgive you Paul! Forgiveness rescinded.

  26. Works for Readify Stephen Kennedy 26 followers ~109,000 followers /

    0.02% as cool as Scott Hanselman
  27. None
  28. ‘All men dream: but not equally. Those who dream by

    night in the dusty recesses of their minds wake in the day to find that it was vanity: but the dreamers of the day are dangerous men, for they may act their dreams with open eyes, to make it possible.’ T.E. Lawrence
  29. Learning Xamarin • Xamarin documentation • Xamarin University • Other

    video based e-learning providers • Pluralsight • NDC (Vimeo) • etc… • Just start playing with it • Proof of concept • Product idea • Home project • Present here, next year (seriously)
  30. http://www.devenable.com @devenable Stephen Kennedy

  31. With thanks to our sponsors