Some History
Back in 2008, about the time Apple released the iPhone 3G, they also released the SDK. Armed with an iPhone 3G, a Mac Mini, and the SDK, I set out to join the ranks of those few elite developers that had an app in the new App Store. Unfortunately, Apple kept a tight lid on the SDK for several months after that. There was a strict NDA that prevented anyone who had downloaded the SDK from publishing books, blogs, or in any way publicly discussing how to develop iPhone apps. Since I was completely new to XCode and Objective-C, this was a bit of a problem. If I ran into trouble, there was no one to ask for help. Also, since all my recent development experience had been with C# and .NET, re-learning how to do the most basic functions was not something I wanted to spend all my spare time on. So eventually, that Mac Mini got moved to the living room and turned into an entertainment server, and I determined that some day I’d get back to trying to develop an iPhone app.
Fast forward to 2011. I’ve been through several iPhones, and am now on an iPhone 4. More and more, things are going mobile, and I really want to get back to that dream of developing iPhone apps. By this time, the SDK has long been very public, and widely covered in books, magazines, and blogs. I should be able to get the help I need this time.
Come to find out, there are a lot more ways to skin that cat now than there were back in 2008. Apple has become a lot more friendly with 3rd parties that provide development tools. You don’t even have to program in Objective-C any more.
Appcelerator Titanium
The first framework I came across is Appcelerator Titanium. This looked very promising because it uses Javascript. While I am by no means proficient in Javascript, I’ve dabbled in it, and there seems to be quite a bit of information available. Also, there are lots of people developing modules or templates for Titanium. Another benefit is that it is cross platform. You’re supposed to be able to create apps for iOS and Android with a single code base.
PhoneGap
I also looked into PhoneGap. This is another cross-platform framework. Built on HTML 5, you can target iOS, Android, Windows Phone, webOS, and several others.
MonoTouch
After spending quite a bit of time looking into all these frameworks, and pretty much deciding to go with Titanium, I finally came across MonoTouch. I can’t believe I had never heard of it before. As a .NET developer, this seemed like the perfect solution. I could actually use the code I’ve already written, and the skills I already have, to create iPhone apps.
One blog post that helped me make the decision to go with MonoTouch was: 5 top reasons for selecting MonoTouch over ObjectiveC by Bartek Wilczyński. He is an experienced Objective-C developer, not just a .NET developer who is too lazy to learn Objective-C, and he makes some very valid points of why he would choose MonoTouch for a future iOS project.
And here is another one: John Sonmez, Flipping directions.
So, MonoTouch it is!
Next: Getting Started
Having chosen a framework, I dived right in to see what I could do with it. In my next blog post, I’ll describe my hardware setup, my development tools, some books I bought, and first impressions.