Tuesday, September 15, 2009

MonoTouch for iPhone

According to Yahoo! Tech News, Novell is bringing .NET application development to the iPhone in the form of MonoTouch. Is this blasphemy or will it bring a new slew of application developers to the iPhone?

According to Novell “MonoTouch allows developers to create C# and .NET based applications that run on the iPhone and can take advantage of the iPhone APIs…”

The advantages of a tool like this are probably obvious to ISV’s (independent software vendors) as well as IT shops that develop applications for their own internal users. Some developers have avoided entering the fray of iPhone development because the development environment is unfamiliar to them. You have to buy a Mac, learn Xcode, and learn Objective-C. Learning Objective-C may be the most onerous to IT managers who just want to get an app built without having to spin up their programmers on yet another language and development environment. Or, in some cases, hiring new developers or outsourcing to a specialized iPhone development shop.

Developing in C# in a .NET environment on the other hand is quite familiar to many organizations. In fact, many enterprises have built their own sophisticated back-ends for a wide variety of systems in the .NET environment and therefore already have those skills in house.

In addition, the .NET environment offers a very rich set of libraries, which may not even be found in Apple’s native iPhone development kit. Building your iPhone app in .NET should also foster some reuse of code you’ve already developed for other related systems.

I’m not going to argue the merits of .NET vs. Xcode/Objective-C/native code here. That’s too much of a religious battle, but there will likely be some disadvantages to the MonoTouch toolkit as compared to Apple’s way of developing apps.

For example, as new API’s and bug fixes are introduced by Apple, MonoTouch will lag behind a bit in terms of responding to those changes and implementing the appropriate bindings for those new and enhanced capabilities. If you’re at all familiar with trying to run Silverlight based web apps on Mono’s Moonlight, then you get the idea. In addition, like any software package, MonoTouch will have bugs of its own to sort out. There is also a question of how easy it will be to debug apps built using MonoTouch on either the iPhone emulator or a real device.

All in all though, MonoTouch is an interesting product on the surface and probably worth a look, unless you already have a staff of experienced iPhone developers.

If any of you are already using the MonoTouch toolkit, I’d love to read about your experiences with it.

ShareThis