This document discusses mobile app development for .NET developers using Xamarin. It outlines why developers should build mobile apps due to rising mobile usage, the most popular mobile platforms and app types. It then explains that Xamarin allows .NET developers to build native and cross-platform apps for iOS, Android and Windows. The document details how Xamarin compiles C# code differently for each platform, provides access to native APIs, and supports integrating native libraries. It concludes by recommending Xamarin due to its familiar .NET stack, cross-platform capabilities, high code reuse and strong future roadmap from Microsoft.
2. Outline
1. Why (to go for mobile apps)
a. Digital Media usage trends
2. Who (are competing and trending)
a. Mobile platforms trends
b. Mobile App types & trends
c. Key comparisons of App types
3. What (is available for .NET devs)
a. Xamarin
4. How (to build cross platform apps with Xamarin)
5. Future RoadMap(for Xamarin)
6. Conclusion
3. Why (to go for mobile apps)
Digital Media usage trends 2017
13. ● Xamarin is the becoming more catchy for enterprise mobile development.
● No other platform enables businesses to reach all major devices—iOS,
Android, Mac and Windows—with 100% fully native apps.
● With Xamarin, share 75 percent of source code across platforms on
average.
Xamarin is used by over 500,000 developers from more than 100 Fortune 500
companies.
16. How almost native
Unlike interpreted solutions, such as Appcelerator Titanium, Ionic framework,
and Apache cordova; Xamarin is natively compiled, which makes it a go-to
option for building high-performance apps with native look and feel.
17. Compilation
The C# source makes its way into a native app in very different ways on each
platform:
● iOS – C# is ahead-of-time (AOT) compiled to ARM assembly language. The .NET
framework is included, with unused classes being stripped out during linking to reduce the
application size. Apple does not allow runtime code generation on iOS, so some language features
are not available.
● Android – C# is compiled to IL and packaged with MonoVM + JIT’ing. Unused
classes in the framework are stripped out during linking. The application runs side-by-side with
Java/ART (Android runtime) and interacts with the native types via JNI.
● Windows – C# is compiled to IL and executed by the built-in runtime, and
does not require Xamarin tools.
19. Integration of Native libraries
1) Objective-C Bindings + Binding Projects: Xamarin provides a tool called
btouch that helps create bindings that allow Objective-C libraries to be used in
Xamarin.iOS projects.
1) .jar Bindings + Binding Projects: Xamarin supports using existing Java
libraries in Xamarin.Android.
23. ● .NET Standard
● From .NET, .NET Core, and Xamarin to single library to rule them all.
● Xaml Standard
● From different codebase of UWP, and Xamarin to single code base.
● Xamarin Essential
● Cross Platform APIs for Android, iOS/Mac, and UWP
29. Trade off
● Slightly Delayed Support for the Latest Platform Updates
● Basic Knowledge of Native Languages Required
● Not Suitable for Apps with Heavy Graphics
● Larger App Size
30. Recommendation?
● Trending
● Familiar technology stack and feature rich IDE
● Strong backing, fast track community and awesome future RoadMap
● Cross Platform and Native with highest shared code base
● Integration with Native libraries