A project building an open-source version of Microsoft's .NET development framework is trying to attract iPhone developers building business applications.
The Mono Project is recruiting "adventurous" iPhone developers interested in trying Mono for the iPhone and its now feature-completed MonoTouch APIs.
MonoTouch consists of a C# API for building Cocoa applications, and is currently in beta.
The outreach comes as Microsoft itself began touting use of Visual Studio and content in its MSDN community to help iPhone developers port their applications to its planned Windows Mobile 6.5. Microsoft's keen to stress the port is easier than you'd might have expected.
MonoTouch also seems to provide a cross over for Apple programmers versed in the iPhone's OS X and Cocoa framework but less familiar with .NET - the basis for Windows development.
Building applications for the iPhone is not a straightforward task, both from a technical and legal perspective. Assuming your app clears an Apple approval process that could teach the Masons a thing or two about secrecy, the iPhone doesn't allow JIT engines at the kernel level and developers are not allowed to use scripting engines or JIT technologies.
MonoTouch claims to have sidestepped the JIT and scripting issues by offering a static compiler that turns .NET executables and libraries into native applications. MonoTouch applications don't ship with a JIT or interpreter and the framework uses only native code.
On the down side, there's limited support for Microsoft's LINQ that lets you build queries to data directly from C#.NET and Visual Basic.NET. Also, you can't generate dynamic code. LINQ, at least, is planned for MonoTouch 2.0 along with a compiler for Microsoft's Silverlight media player, support for more of Apple's APIs and re-use of existing Objective-C apps.
Mono's already seen uptake on the iPhone, with around 40 games available on Apple's App Store. These, though, have been built using Unity3D which is more of a gaming tool and works with OpenGL.
Miguel de Icaza, leader of the Mono Project, told The Reg: "MonoTouch has very little in the way of gaming, and instead is a pretty much direct mapping to Apple's native APIs. Unity does not really expose much of Apple's specific features or GUI APIs." ®