One of the options for interacting with the xsights platform is via web-services for use with mobile clients. Since the iPhone is all-the-rage these days* we also wanted an app for this platform. We outsourced the first version (time-to-market…) but we’d like to take ownership on the next versions… Which made me meet objective-C. Now I’ve picked up a lot of programming languages over the years, some where easy to grasp, some where complex, some had a flowing syntax etc. None of them, except maybe Erlang, is as ugly as objective-C is (this is just my opinion, so pardon for any of the cocoa-enthusiastics out there)
Anyway, I’ve been looking around for alternatives and I found few compelling options, most notable of these was Rhodes – a ruby based, cross platform solution. The main problem I’ve had with Rhodes, is that it uses an interpreter. The fact that they feel the need to explain why they comply with the App store rules coupled with the troubles a similar approach using Javascript gets from the app store approval process, I decided to postpone using it (and review it again in a few months).
Then I found MonoTouch (via Miguel de lcase’s blog). MonoTouch, as the post’s title says, brings .NET to iPhone developments. It includes everything you need to write C# code for the iPhone, it integrates well with the Apple tools (e.g. you can use the Interface Builder the same way you’d use xcode while developing objective-C). C#’s friendlier syntax is reason enough for me to use this platform but it also has a nice side effect of having to write less code to get what you want (e.g. no need to for an .h file if you don’t need really need an interface, no need to release/allocate etc.)
Kudos to Novell on the effort –
* And rightfully so! – I’ve personally switched to an iPhone 3GS after years of using windows mobile (and its ancestors – I’ve owned different window devices ever since the philips nino was out…). This is not to say that the iPhone is perfect (it is not) but I think that today it offers the best overall experience…ButI guess, that’s a subject for another post.