Yet a another alternative to Objectve-C/XCode has arrived: MonoTouch, the non Microsoft dotNet implementation, supports the new useless computer-without-a-keyboard -slash- big iPhone, Apple iPad.
Yes, not surprisingly, Novell’s MonoTouch is now supporting the iPad. Not a surprise, as they already supported the iPhone, and iPad is just an iPhone with a bigger screen. This means you can use your C# skills to create applications to for the whole iSomething ecosystem, without having to learn Objective-C or even ActionScript (the upcoming Flash CS5 will have a cross-compiler that targets the iPhone+iPad).
MonoTouch supports many of the iPhad gadgetry, including GPS and accelerometer, as well as bindings to the address book. The User Interface is built using the Apple’s Interface Builder, that ships with the iPhone SDK – this means that you also have all the controls native to the iPhone available for you app, including Pickers, Sliders, Buttons, etc, etc – the downside is: you can’t just recompile your Silverlight/WPF/Winforms .net application… you have to write the UI from scratch, which is not a big problem if you have logic and presentation truly separated. Also, the applications are statically compiled, instead of being compiled on demand by a JIT compiler inside the CLR – as a result of this some limitations, such as limited Generics support and no dynamic code generation, are present – more on this at http://monotouch.net/Documentation/Limitations
But, as with all things Apple-related, there’s a catch: None of this is free – to deploy your app you need to pay Apple; MonoTouch is not OpenSource, its a commercial product, prices start at $399. Also, you need to buy an Apple Mac Intel computer (10.5 or 10.6) to develop your applications.
Bryan Costanich wrote a nice introduction article about MonoTouch at InfoQ – read it here.