When .NET developers target mobile devices they have three API sets to choose from: Windows 7, MonoTouch, and Mono for Android. While the .NET framework standardizes a lot of stuff, there are many hardware features that simply aren’t covered by the Base Class Library. Xamarin.Mobile looks to greatly increase the amount of reusable code by standardizing the API across the platforms.
Like .NET itself, Xamarin.Mobile is an abstraction layer that sits on top of the native API. In exchange for giving up some of the underlying operating system capabilities, developers no longer need to re-implement common functionality for each of the three platforms. The areas Xamarin.Mobile is proposing to cover are:
- Contacts
- Geolocation
- Compass and Accelerometer
- Video and Audio
- Notifications
The most notable area missing from the list is the user interface itself. Much like its predecessors Ximian and Novell, Xamarin is still dedicated to their vision of platform specific, first-class user interfaces written in .NET/Mono.