Xamarin.Mobile is a component from Xamarin to write a commonly used code to consume the device API. What I meant by the commonly used code is, the same code that will can access device specific APIs and behave accordingly depending upon the platform in which it is running.
More than a month back newest release of Xamarin.Mobile is still in its preview release mode.
As of now, it supports the following device APIs for iOS, Android and Windows Phone.
What we must agree is, different platforms have different ways of understanding the assemblies. They execute and run the app in the same way. So Xamarin compiles the app in relevance to the platforms basing upon their nature and behavior of executing the assemblies. So that the app assembly fits to the platform acceptable format and run.
Compiling for iOS
iOS runs on ARM architecture. So the nature of iOS is, it understands the assembly language for ARM. It never allows the code to be generated dynamically during run time. So to respect the same, Xamarin did it exactly. It uses the Ahead Of Time (AOT) compilation process in order to generate ARM assemblies from the static code. This is a process to generate the pre-compiled code. Unlike the traditional on-demand execution approach, it compiles the code before hand. During the linking process, it links the .Net framework and the relevant assemblies only. It removes all others, which are no longer in use.
It was quite late in the evening and I was about to wrap up my work. Suddenly I got a call form my client in Skype and he shared his concerns of uploading the build to production. Although it was late, I thought to help him before I close the day, since that guy is in