problems) Xcode ADT Visual Studio End user experience Better productivity and global developer experience ✗ Building native apps multiple times when targeting multiple platforms! …very expensive, not sustainable… + + -
platform created by Ximian (ECMA 334/335) • 2001: Created to bring Windows applications to Linux • 2003: Acquired by Novell with Ximian • Matured at Novell in research mode; now a world-class runtime.
binary suitable for Apple’s App Store Xamarin.Android takes advantage of just-in-time (JIT) compilation on the Android device Native cross-platform apps with Xamarin Native compilation, native performance
View models What information to display Flow of interaction Models Data objects Business logic Etc. Model View Model View Device-specific Portable code References Databinds Implemented in PCL or shared project
code which does not depend on a specific platform feature, it is potentially sharable, particularly if it: • Talks to a web service • Parses a data format • Uses a database • Performs processing or logic Create shared classes + methods and then use them from your platform- specific code to maximize the shareable surface area
SQLite support available for iOS, Android and Windows • Can also store in the cloud – Azure Mobile Services, Amazon, Dropbox, etc. Web Services • Use HttpClient for REST services Xamarin.* Libraries • Xamarin.Social • Xamarin.Auth • Xamarin.Mobile Open-Source, Cross-Platform APIs available from Github.com/Xamarin
writing depends on device or platform-specific APIs, or APIs not available in your project, then you will need to isolate it's use or provide some kind of abstraction to use it from your shared code • Access system information • Use files and folders on the device • Access personal information • Use external devices