The Mono project yesterday released MonoDroid, which allows developers to leverage the full .NET 4.0 feature set within Android devices. For iOS devices, yesterday also marked the release of MonoTouch 4, which brings the same advantages to the iPhone and iPad.

Miguel de Icaza, creator of Mono, said that these releases are the culmination of two years of work. “The big features are that it brings parity to the .NET 4.0 API. Previous versions had parity with .NET 2.0 or 3.5 (depending on how you refer to that version). We introduced feature parity for C# 4 on the iPhone, with the exception of dynamic code generation, because the iPhone does not support that,” he said.

The Mono approach to mobile devices is somewhat different from the traditional cross-platform approaches seen both in Java and in newer cross-platform mobile frameworks.

“We’re taking a different approach to mobile application development than what Java had tried in the past, which is ‘write once, run anywhere,’ ” said de Icaza. “The problem is, you could reuse the code across platforms, but it would look equally ugly on all of them.

“I think certain development toolkits for Android do share that problem: You write it once and it’s universally ugly. You get to use C#, you get to use .NET, but when it comes to the UI, you’re going to use a different set of calls. The way we tried to advise developers to build their applications is we tell them to split their code into an engine, or business logic layer, and implement the UI layer for each device they want to support. You’ll have an iPhone UI layer, an Android UI layer and a Windows Phone 7 UI layer.”

MonoTouch 4 and MonoDroid are both available from