When most people think about developing applications for the iPhone, iPad, or iPod
Touch, they think of writing applications in a low-level language like Objective-C. But the
truth is, as the iOS ecosystem has matured, a number of ways to develop apps for it has
The reason is largely developer-driven. For many developers, learning Objective-C was
seen as a huge barrier to entry. For .NET developers, many of whom have never had to
worry about memory management, pointers, and other C language concepts,
Objective-C also forced on them many responsibilities that they were unfamiliar with.
Many also feel that the tools for developing in Objective-C are lacking. Apple’s XCode
Integrated Development Environment (IDE) lacks many of the features found in other
modern IDEs, such as Visual Studio.
All this has changed, however, as more players have entered the iOS space. In addition
to MonoTouch, Adobe has entered it with Flash CS5, and Unity for the iOS powers some
of the best-selling games available on the iPhone and iPad.
The MonoTouch framework itself is part of Novell’s Mono project. The Mono project is an
open-source implementation of the Microsoft .NET platform published standards. It
allows you to run .NET applications on nearly any platform, including Apple, FreeBSD,
Linux, Unix, and others.
MonoTouch was introduced in the fall of 2009, and extends Mono by allowing you to write
applications using C# and the .NET platform Base Class Library (BCL) that run on the
iOS, using Cocoa Touch’s UIKit API.