Dilemma meets opportunity: iPhone beta SDKs in review
Will you tread the Cupertino path?
As you'd expect, this sort of restriction is like a red rag to a bull as far as the open source community is concerned. Allegedly, the key needed to get the firmware to give the thumbs up has already been posted on the net, but as far as I can see, it's just a decryption key for IPSW firmware updates, which is quite different. One thing's for sure: Apple will change the key before the official release in a couple of months' time, so it doesn't much matter either way.
I believe that the upshot of all this will be fragmentation. On the one hand, we'll have the official developers selling their Apple-approved products through App Store. These programs won't be able to fully leverage the power of the platform because Apple won't let them. One of the bits of small print in the iPhone developer agreement is that you can't use undocumented APIs, which immediately gives Apple a big advantage over third-party developers.
On the other hand, we're going to see the so-called "Open Source tool chain" - again, see my previous article - becoming increasingly popular in the shareware community.
Unlike the official route, this approach will give you access to all the available APIs (read that as more efficient and more capable applications) and a more traditional business model: marketing your software from your choice of web site rather than being forced to go through Apple's App Store.
Of course, this begs the question of whether or not the hacker community will be able to crack Apple's digital-signing mechanism, creating applications that are accepted by the 1.2/2.0 firmware. Based on previous track record, I really don't see this as a big deal. The necessary sleight of hand was online within a couple of days of the official firmware release.
And there are other advantages in going the unofficial route. Apple bans third-party developers from creating background applications - processes that lurk doing stuff while another application is in the foreground.
There are some solid justifications for this approach in terms of security, reliability and battery life. But for applications that really, really must operate in the background, and are intelligently written enough not to kill the device's battery life, then the unofficial approach is probably the only way forward.
Just to muddy the waters a little further, a number of enterprising individuals have figured out how to massage the official SDK tools so as to work with previous versions of the firmware. Point your browser here, and you'll find a series of steps describing how to get Xcode and the simulator to work seamlessly with firmware 1.1.4 - the latest, official firmware at time of writing. This gives you the convenience of the SDK, and the power of the full 1.1.4 firmware, undocumented goodies and all.
The bottom line is that there is still a lot left to fall out of the iWars between Apple and third-party developers who don't wish to go the official route.
I can't help wonder how much simpler life might have been if Apple had planned to open up the iPhone from the beginning. This is either something that - in my opinion - Apple decided against from the start, a possibility given the company's track record on closed environments, or it realized the financial benefits of keeping the iPhone a closed and controlled platform later into the product's development cycle.
Either way, if Apple had welcomed third-party development from the start, then we might have a secure sandbox for non-Apple applications, a scaled down hacking war with the developer community, and maybe less neurosis at Apple. Hindsight is a wonderful thing.®