Introducing the Xamarin Mobile API

With both MonoTouch and Mono for Android we have chosen to expose the native platform APIs to C# developer so they can take advantage of all the unique features that each platform has to offer. This means that Android developers can create applications that interact with the system in the same ways that a Java app would do, while taking advantage of C# and the .NET class libraries. On iOS this means that developers can consume iOS-specific features like CoreAnimation, CoreImage and program directly against the UIKit API to get the most out of the native platform:

Current Stack of MonoTouch APIs

The above approach allows developers to get the most out of the underlying platform. For this to work beyond a single platform, developers normally split their code along the lines of the components that must deal with the platform specific APIs, mostly the UI elements, and the components that only require the .NET Base Class Libraries (BCL). Usually the core application or the business logic goes into a reusable library and then multiple front-ends are created, one for iPhone, one for Android and even ASP.NET and WP7 UIs can be built on top of it.

But often developers find that many other services that are common across mobile platforms are not exposed by the .NET BCL. This makes the effort of sharing code more cumbersome than it should be. Developers resort to creating their own platform abstractions, or designing pluggable architectures just to get access to the system address book, the phone’s GPS, the compass, the accelerometer, the notification service or the system calendar.

To solve this problem, we are introducing Xamarin.Mobile. This is a library that runs on iPhone, Android and Windows Phone 7 which abstracts the underlying functionality and exposes a common API that developers can built against:

Xamarin Mobile Stack

Today we are launching a preview of the Xamarin.Mobile library. This first version contains our cross platform location APIs for both Mono for Android and MonoTouch (Windows Phone 7 will be added in an upcoming release). You can download the binaries here.

We are running a survey to better understand which are the most important APIs and platforms for our community.

If you want to send us feedback or report bugs, please File a Bug Report in our bug tracking system.



  1. Redth
    Posted November 22, 2011 at 11:04 pm | Permalink | Reply

    Awesome awesome awesome! Really looking forward I seeing this evolve!

  2. Posted November 23, 2011 at 2:24 am | Permalink | Reply

    Good stuff guys. Keep up the great work!

  3. Posted November 23, 2011 at 2:29 am | Permalink | Reply

    That looks very sweet! Looking forward to what you guys can provide in a reliable fashion.

  4. Waescher
    Posted November 23, 2011 at 4:24 am | Permalink | Reply

    Fantastic idea! You guys are really great, keep that thing coming!

  5. Justin
    Posted November 23, 2011 at 9:00 am | Permalink | Reply

    Fantastic news.

  6. Posted November 23, 2011 at 9:47 am | Permalink | Reply

    It’s Huge… Can’t wait for next steps common X GUI, and common X service framework….

    Thanks for this great step to a real Meta Mobile framework… sure you’ll reach it πŸ™‚

  7. Posted November 23, 2011 at 11:28 am | Permalink | Reply

    This is great news! Thanks!

  8. Posted November 23, 2011 at 6:40 pm | Permalink | Reply

    Awesome news. I can’t wait for TouchGesture and generally Input support to be unified under 1 API. Will make supporting various platforms for MonoGame much easier.

  9. Posted November 23, 2011 at 7:36 pm | Permalink | Reply


  10. Posted December 1, 2011 at 4:53 pm | Permalink | Reply

    Check out monocross for a cross platform gui approach.

  11. Leigh
    Posted December 9, 2011 at 2:46 pm | Permalink | Reply

    This is great! Exactly what the Mono mobile family needs to take it to the next level.

Leave a Reply

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

You are commenting using your 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