Mono’s First Commercial Release: MonoTouch

| by Jonathan Allen Follow 635 Followers on Sep 17, 2009. Estimated reading time: 1 minute |

MonoTouch is a port of the Mono runtime along with an adapter layer so .NET developers can use the native iPhone GUI toolkit. MonoTouch is unique in the Mono ecosystem because it is the first commercial Mono product from Novell. As expected, there was some community backlash.

The major components included in MonoTouch are

  • MonoTouch.dll The C# binding to the iPhone native APIs (the foundation classes, Quartz, CoreAnimation, CoreLocation, MapKit, Addressbook, AudioToolbox, AVFoundation, StoreKit and OpenGL/OpenAL).
  • Command Line SDK to compile C# code and other CIL language code to run on the iPhone simulator or an iPhone/iPod Touch device.
  • Commercial license of Mono's runtime (to allow static linking of Mono's runtime engine with your code).
  • MonoDevelop Add-in that streamlines the iPhone development and integrates with Interface Builder to create GUI applications.

A common objection to MonoTouch is that Objective-C is already a suitable language for iPhone development. However, Miguel de Icaza is claiming that C# has some significant advantages.

With the mtouch command and the bindings complete, we started trying out the API by porting the Apple iPhone samples from Objective-C to C#. And in the process finding two things: C# 3.0 constructor initializers are a thing of beauty.

And also that the samples ported were half the size of the equivalent Objective-C programs.

Miguel continues to explain how MonoTouch’s XML+partial code-behind class eliminates the tedious repetition needed for Objective-C header and code files.

Another complaint is that MonoTouch isn’t open source. A single-user license with 1 year of updates starts at $399 per user, with the enterprise edition costing a hefty $999/user. Since this is tightly integrated with Apple's iPhone SDK, programmers must use a Mac for development.

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Leave it to software developers... by Bruce Rennie

... to generate "community backlash".

Seems to me if you want to use Objective C or not pay for a mono-based product, you're no worse off than you were yesterday. What's to "backlash" about?

Sometimes, we're our own worst enemy. Heck, most of the time.

Yeah, where's the "community backlash"? by Dan Tines

Or is the "community backlash" really just some random blogger that hates Mono already?

Re: Yeah, where's the by Jonathan Allen

There is lots of noise on the newsgroups. I would have quoted them if they had anything intelligent to say, but mostly it is childish whining about being "stabbed in the back". As a reporter it is my duty to acknowledge their concerns, but at the same time I'm not going to give them a soap box.

Re: Leave it to software developers... by Jonathan Allen

Honestly I don't understand it. I'm too young to know how it was in the 60's and 70's, but these days you can't make a dime or port a language to a new platform without pissing off people. Maybe it is just the Internet's echo-chamber effect, but I swear it is like a significant number of programmers would be happier if there was a one-to-one mapping between platforms and languages and everyone worked for free.

Fair enough by Dan Tines

But my beef is with calling it a "community backlash", when in reality it's not really "a community". Hand-wavy definitions of "the community" are thrown around too much the way it is.

Re: Fair enough by Jonathan Allen

I see. I'll definitely take that into account in future articles.

Can you still deploy for free? by Chris _

I followed this a little in the beginning, and i was under the impression that targeting the iphone platform was free, where as the "ready made" API, created by Novell/Mono to easily access iphone features, cost money.

Is this the case? or can you not target an iphone device (and deal with library access issues yourself) with mono for free?

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

7 Discuss