Xamarin Day 1 – Xamarin basics

Day 1: Xamarin Basics

using Xamarin you can create truly Native apps with Native performance and look and feel. More than 80% of the code may be shared among iOS, Android and windows platforms using concepts like Portable libraries / shared files / and shared projects. Xamarin forms provides a very innovative way to even create UIs using single code-base yet preserving the look and feel of each of native platforms.

  • Fully native apps- Native UI, Native Performance
  • Anything you can do in Objective-C and Java can be done
  • Re-use existing skills, teams, tools and code
  • Share on average 75% source code across platforms

How does it work?

  • Built on top of Mono – Mono is open-source version of the .NET Framework
  • iOS – Xamarin’s Ahead-of-Time ( AOT) Compiler compiles Xamarin.iOS applications directly to native ARM assembly code
  • Android – Xamarin’s compiler compiles down to Intermediate Language ( IL), which is then JITted to native assembly.
  • Xamarin applications runtime automatically handles memory allocation, garbage collection, underlying platform interop, etc

What is it?

  • Xamarin Mobile Profile – A subset of the .NET BCL. This profile has been created specifically for mobile applications
  • Packaged in the MonoTouch.dll (for iOS) and Mono.Android.dll (for Android)
  • In addition to the BCL, these .dlls include wrappers for nearly the entire iOS SDK and Android SDK that allows to invoke the underlying SDK APIs directly from C#.


  • Either using
    • portable libraries
    • shared files / projects
  • Android – Android specific coding
  • iOS – iOS centric coding

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s