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

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
Tweet

Other Decks in Programming

Transcript

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

    yet another presentation http://www.devenable.com @devenable Stephen Kennedy
  2. • 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?
  3. At a super high level… • Bindings & wrappers on

    Android • AOT compilation on iOS It Works, How?
  4. 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
  5. Mobile Services • Three controllers • ProjectController • ProjectSummaryController •

    Composite controller for projects + WTF counts • WtfController • Identity (Twitter) + CounterWTF https://github.com/DevEnable/Xamarin.CountWtf
  6. • 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
  7. • 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…
  8. • 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…
  9. • ReactiveUI • Akavache • Refit • ModernHttpClient • OkHttp-Xamarin

    • Punchclock • Fusillade • Splat Paul Betts GitHub engineer. Massive Xamarin OSS contributor: @paulcbetts
  10. 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.
  11. 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.
  12. 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.
  13. ‘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
  14. 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)