Tuesday, September 29, 2009

iPhone programming in C# with MonoTouch

Two weeks ago Novell released MonoTouch (www.monotouch.net), a SDK to develop in .Net for the iPhone.

I started programming with MonoTouch two days ago. So far I must say I'm impressed. I had absolutely no experience on a Mac before.


Here is a summary of the experience with MonoTouch:

- You need a Mac on which you install:

  • iPhone SDK from Apple (iPhone Library and Interface Builder)
  • Mono Framework
  • MonoDevelop IDE
  • MonoTouch SDK

- You create user interfaces using Interface Builder, the standard User Interface designer program for Mac/iPhone apps that is part of the SDK.


- You code your logic in C# using an IDE called MonoDevelop which is somewhat similar to Visual Studio and includes code completion. You have access to the C# 3.0 (LINQ, Lambda, Generics) features, Garbage Collection (not offered in the native iPhone SDK) and most general purpose .net APIs. They have wrapped a large portion of the iPhone SDK with a C# friendly API style.


Overall, the experience is quite good. There is one important issue though; there is no debugger (no breakpoints, no watch window, no call stack). You must debug using Console.WriteLine(). I hope Novell will find a way to debug in an upcoming release.


-Sly