A few weeks ago, my brother-in-law asked if I would be interested in developing an iPhone application for him. I won’t explain the app or its details as that would violate the NDA that I am under. Nevertheless, I thought that this might be fun as I haven’t played with Apple’s development platform since 1995.
Well, Apple hasn’t changed. It appears that their goal is to lock you in a comfortable room and make sure you never leave – even if you can’t afford to stay. In order to build an iPhone app, you need to use Apple tools. That started off simply enough. I tried to put together a Cygwin environment on my Windows 7 system. After a few days, I did have a working environemnt that I could build Unix apps on. But the iPhone SDK isn’t just any old Unix environment. It absolutely needs Mac OS X – and OS X 10.5.3 for good measure.
I don’t have a Mac. So I figured that I could put together a development environment using VirtualBox or VMWare. And if you have enough patience (and can find the right image files) you can run OS X 10.5.2 (through 10.5.5) from within a VMWare host. But to do it legally, you need to buy a license for the OS as well as purchase the iPhone SDK. Before I plunked down any coin of the realm, I had to try it out first. And after a couple fo weeks of tinkering, I found that I could indeed build a virtual environment that would run the iPhone SDK.
But performance was labored. And to do it properly, you really need VMWare Workstation (not VMWare Player). So the final cost for putting all of this together would have been a couple of hundred dollars. But you can get a Mac Mini for a few hundred bucks. And with that, you can remote onto a head-less device that is more than adequate for compiling the code. So I would need a few hundred dollars if I went via VM and a few hundred dollars for a fully functioning Apple hardware platform.
But that is just for starters. Add to that the cost of the iPhone (or iPod Touch) and the cost of the service contract. And when you are done, you have access to one platform on one carrier. In my mind, that is both a fully closed and a highly distasteful investment.
As a former Sprint employee, I had always hoped that Sprint would be the team that would bring forth the best and brightest from a cool new platform. I was wrong. Verizon has brought a solid contender into view with the Moto Droid. And they have brought the marketing pizazz that the Android platform really needed. So I started wondering what it would take to bring together a functioning development platform.
After being disheartened by the cost of an iPhone development platform I was thrilled at what I found when constructing the Android development platform. First, I needed the SDK. Low and behold, the SDK could run on any platform that would support C/C++. And the SDK was free.
And the reference platform for the IDE is Eclipse – which is also freely available. Being a former Java developer, I had no problems getting re-acquainted. I downloaded Eclipse and then downloaded the Android Development Tools (ADT). All along the way, these investments required no financial outlays. And the Android platform even included an interpreter so that I could do rudimentary testing – even w/o the hardware.
So here is the bottom-line. The iPhone costs some serious scratch in order to have the privilege of being locked onto a single hardware provider and a single carrier. On the other hand, Android’s barriers to entry are negligible. I put together a functioning testbed in a couple of hours – including the download time. And once done, I have a platform where I can build apps for any carriers and any number of hardware providers.
Indeed, this reminds me of the Apple-Microsoft PC wars of the nineties. Will Apple ever learn from their mistakes? And will developers choose to be on yet another vendor-selected leash?