Why the iPhone?
It’s no secret that the iPhone has become a phenomenally successful development target among both seasoned professional engineers, and midnight hobbyist fanboys alike. Some of the most interesting and innovative mobile apps are delivered regularly, courtesy of the Appstore, and are just as likely to be developed by one guy after work with a six-pack of Mountain Dew as a large and well-financed software studio.
As a result, ever since that memorable summer day, back in August of aught-7 when the first iPhone hack was announced, the iPhone/iPod app scene has really become nothing short of a worldwide phenomenon.
When I started the Distant Suns port,(what? Another shameless plug?), it was very cool to say to people with an air of superiority “Oh, me? I’m just doing some iPhone stuff.” I would then pause for the genuflections and the bombarding of flashes from the paparazzi. Nowadays the response is more like “so, who isn’t?”
So what makes the iPhone such a compelling platform? There have been many other smart phones out there. Palm, Windows Mobile, J2ME (Java) based systems, Symbian, and so on. Each of these has available public SDKs, and some even come with free dev tools. And there have also been sites and storefronts aplenty for third party apps.
So then, what makes the iPhone development scene different from all of the others that have been around for years?
Let’s put the cool tech aside for a moment and look at the practical nature of the product. When you program for the iPhone and iPod/touch, you are programming in effect for a single device. If your stuff works fine on your iPhone, you can bet it will work fine on every one else’s (unless you are uniquely bound to a specific feature on a single device .) I can’t overestimate just how huge of a win this is for the dev community.


My head hurts.
My day job is at the Internet music pioneer Live365. A couple of years ago we introduced a Windows Mobile version of our player client. Everything was working just fine…until the day. Yup, it was that day we took delivery of an HP iPaq for “just a quickie sanity check” on a non-phone device. But when launched it seemed to already have me logged in as a user from England. Turned out that HP had broken a very important piece of Microsoft’s authentication code, and all iPaqs of this model looked like the very same physical device to our servers so everyone would be in effect, one single user. After I stopped sobbing and was coaxed out from under my desk with a sack full of Skittles, we were able to kludge something together but had to delay our release for a few more days.
The iPhone doesn’t have these kinds of horror stories. True, dealing with the different releases of the iPhone OS might cause a furrowed brow from time to time, but you shouldn’t have to hide the rusty razorblades.
Most of the Distant Suns development was done on a 1G iPod/touch. I eventually had to give in to The Man and got a 3GS so I could add in compass support.
These days I use four different devices, three iPods and one iPhone just to be extra safe. Tycho has 2.2.1 OS for those cheapskates who don’t want to pay for an upgrade, Copernicus has 3.0, Clyde (the latest addition to my happy little family), is 3.1.2, and same for Galileo, the iPhone.
So this is a long way around to say that there really is no mystery why the iPhone app scene is exploding: developing for this thing is just plain stink’n dirt-cheap when compared to any other platforms.
Go forth and code.