Book: Professional Android Programming with Mono for Android and .NET/C#
Publisher: Wrox Press
SINCE ITS INTRODUCTION IN THE FALL of 2008, Android has grown and matured to the point
where it is currently the number one smartphone platform in terms of shipments worldwide. Along
with that growth is an interest in writing applications that run natively on the device and that take
advantage of the device’s features, such as the camera and voice recognition.
Since the release of the .NET Framework in January 2002, its growth has been impressive. It is
the most popular development framework in use today. While the .NET Framework was in initial
development, Miguel de Icaza, who worked for Ximian, created his own C# compiler, and from
that the Mono framework was born. In 2003, Novell purchased Ximian. In 2011, Attachmate purchased
Novell. Later in 2011, Xamarin was formed and all of the products associated with Mono,
MonoTouch, Mono for Android, and MonoDevelop were transferred to Xamarin. The payoff for
us as developers is that Xamarin is laser-focused on Mono for Android and MonoTouch, and on
making those the best products available for development on mobile with Android and iPhone.
Throughout all of this, the Mono framework has grown to run across various platforms. Initially,
Mono was designed to run on Linux. Since that time, Mono has branched out and is available
across several non-Windows platforms. In the summer of 2009, the MonoTouch framework was
shipped. This allowed developers to write applications with the .NET Framework and using the
C# language to run applications written for the iPhone. In February 2010, de Icaza confi rmed on
his blog that the Mono team were working on an implementation of Mono for Android similar in
concept to MonoTouch. This implementation initially was called MonoDroid and fi nally was named
Mono for Android.
To .NET developers, the ability to write applications in C# using many of the existing APIs that
they are already familiar with is very attractive. .NET developers are not required to learn the ins
and outs of the Java language, nor are they required to learn the Eclipse IDE. .NET developers can
stay within the Visual Studio IDE that they are already accustomed to, use the C# language that
they already know, make calls in the .NET Framework that they are already familiar with, and create
an application for the Android platform. I’m excited about the possibilities that this offers.
The ability to run natively on the device should not be understated. HTML5 is a great emerging standard
for providing applications. Frameworks that are being built will take advantage of what the web
browser allows. Unfortunately, it has several problems. For example, a web application cannot access
all of the device, so currently you can’t access the camera or voice recognition or run applications in
the background. Also, HTML5 won’t be a full and accepted standard for several years.