The iPhone's love/hate relationship with hackers
A year in the making
Amazingly, it's now a whole year since metrosexuals and geeks waited patiently outside Apple and AT&T stores in the US for their very first iPhones. Since June 29 2007, the iPhone has gone from novelty spot to "oh, there's another" in bars and business meetings, as Apple has quickly overtaken Microsoft in US smartphone market share.
But how far have things really come in that time for people like me building the software for the Jesus phone? How is the iPhone shaping up as a mobile development platform?
From an end-user perspective, the iPhone received a rapturous welcome on launch, but in terms of third-party development the iPhone didn't look at all promising.
Just like the original Macintosh, Apple chief executive Steve Jobs probably intended for it to be a completely closed "appliance-style" device. To Apple's dismay, it wasn't many weeks before dedicated hackers had discovered how to gain control of the iPhone using, somewhat predictably, web-based browser exploits.
Like his conferences, Steve prefers iPhone development remains closed
I soon found myself in possession of an unlocked, jail-broken iPhone: in fact, I was up and running before the official UK launch, last November. Since the original firmware release, Apple has been through a series of firmware upgrades, but in every case, the hackers have found ways to keep the phone unlocked.
Of course, it's not much use having a jail-broken phone if there are no third-party apps to run. A lot of talented individuals have invested much effort in developing the so-called open-source Toolchain, which essentially allows you to create your own iPhone applications. One of the original hackers, Jon Zdziarski (alias "NerveGas" in the IRC chat rooms) has even written a book about it. This is currently the only decent book on iPhone development. All the others tell you how to write - yawn - web apps.
With the announcement of the 2.0 firmware and official Apple SDK in March, though, the floodgates were about to open on native, third-party development. Or so we thought.
Once people started downloading and working with the SDK, it quickly became clear that the 2.0 device firmware had a sting in the tail. Yes, you get Microsoft Exchange interoperability, a cute scientific calculator (darn! I was planning to make millions by writing a scientific calculator that flipped into normal mode by rotating the phone - see you in court, Apple), and support for the new "push" notifications that come as a part of the recently unveiled MobileMe service.
What you didn't get was the ability to just upload a custom application to your jail-broken iPhone and expect it to work. Apple has cunningly implemented code-signing capabilities into the new SDK. When you build your iPhone app using the latest development tools, a digital signature gets embedded into the executable file.
Without that digital signature, the app runs just fine on the iPhone simulator that's part of the SDK, but it will just thumb its nose at you if you try and run an unsigned app on the actual device.
Of course, to get the SDK to sign the app, you've got to be a fully paid up, kosher iPhone developer on Apple's official program. Personally, I don't have any big problems with this. After all, the $99 you must pay isn't going to break the bank. But it does make life more difficult for those folks who prefer to stick with the "unofficial" open-source Toolchain.
And why stick with the open-source Toolchain, I hear you cry? Check out the screenshots here to see. IntelliScreen is the name of an awesome iPhone app that takes over your "Slide to Unlock" screen.
What you can't do with Apple's official SDK
IntelliScreen won't be available from Apple's forthcoming App Store any time soon. The reason is that in order to do anything this clever on the iPhone, you have to go beyond the very restrictive set of API routines that Apple want you to use. But all the API's are accessible using open-source Toolchain.
After the first year's experiences with Apple, I foresee an increasingly fractured marketplace developing around the iPhone. In one camp you will have tons of games available from App Store and in the other, tons of very clever utilities and productivity enhancements from the rest of us.
Of course, this assumes that the likes of NerveGas and others are going to be able to jailbreak the 2.0 firmware so that you can install unsigned apps that haven't been built from the official SDK. My understanding is that this has already been done. They're just waiting for the firmware to come out.
So, happy birthday iPhone! Here's hoping that next time you get to blow out the candles some clever soul will have given you cut, copy and paste facilities. But chances are you won't be downloading that from App Store, either.®