2. Visual Studio + Xamarin = 💜
Adam Hill
Looking for new opportunities
adam.hill@gmail.com
@adamhill
How Visual Studio & Xamarin Makes Mobile
Development Awesome
3. And I Have The Word Cloud To Prove It
(Actually from my Twitter feed!)
4. So Why Does It Equal Love?
• We all have pain points / friction in our day to day
development.
• For mobile this is compounded - iOS, Android,
UWP x display size /DPI x RAM
• How can we program, let alone test all of these
permutations?
• My favorite solution - Xamarin
5. Enter Xamarin
• Framework to encapsulate the UI and device specifics. You
can choose classes and code behind (WinForms style) or
Xamarin Forms (XAML + MVVM goodness, like WPF)
• C# Portable Class Libraries or Shared Projects for the non-
UI parts and testing.
• Uses(d) Mono runtime + AOT to target devices (now you
can target .NET Core)
• You can target iOS, Android, UWP and Mac - need Mac
hardware for iOS & Mac dev.
6. For Those That Have Been
Under A Rock
• Microsoft bought Xamarin in March’ish
• Xamarin is now free.
• Xamarin bits are now OSS
• Xamarin is included in Visual Studio 2015
Update 3
• Not many excuses now 😀
7. Things We Are Familiar With
As Visual Studio Developers
• Great IDE
• One click deployment
• Integrated debugging
• Simulators or devices (iOS Simulator Remoting)
• R#!
8. Ecosystem
• Fully integrated into
• Nuget (even OS bits)
• Extensions
• Components store
• Azure (Micheal Perry has a great talk)
• VSTS Team Services / TFS integration
9. Frameworks & Nuget
• Lots of non-UI Nugets have PCL support now.
• Familiar client side libraries are there
• Noda Time
• Humanizer
• Newtonsoft
• AutoMapper
10. IoC
• Unity
• Ninject
• Autofac
• Castle Windsor
• Tiny IoC
• Dependency Service for OS specific dependencies
that needs to be switched out at runtime.
http://arteksoftware.com/ioc-containers-with-xamarin/
11. MVVM
• Prism
• Caliburn.Micro
• MVVM Lite
• MVVM Cross
• Reactive UI (used in Slack client)
• Even Xamarin only ones are popping up!
• Fresh MVVM
• Pillar
• MVVM Nano
13. Embraces change rapidly
• Full language support - C#6-7, F# (yes you heard
me correctly)
• New mobile OS support within 24 hours (during
beta period for the OS they track updates)
• Specific tech for platforms are supported
(Bitcode and slicing for iOS, Material Design
particulars for Android Marshmallow and Nougat)
14. Embraces OSS
• Mono (even the secret sauce bits for AOT and
Bitcode)
• .NET Core
• Xamarin iOS, Android and Forms
• If there is a bug, contributions are welcome
15. Example: Evolve 2016 App
• Xamarin has a conference every year called
Evolve
• They wanted an app to help attendees find talks
and now whats going on during the conference
• Hey, we can do that! 😀
16. Evolve 2016
• 4 person team
• 6’ish weeks of development
• Features
• Azure Mobile / Online & Offiline Sync
• Calendaring
• Maps
• Push notification
• Linking to and from the app (phone, Universal links, Google App
Indexing)
20. Wrap Up
• Xamarin is integrated well into Visual Studio
• Provides the same experience we are used to in
the Windows ecosystem.
• Top tier tooling support
• Embraces OSS
• You can develop cross-platform apps with less
friction and more 💜