Sunday, March 09, 2008

The iPhone SDK

"Every once in a while a revolutionary product comes along that changes everything. It's very fortunate if you can work on just one of these in your career. ... Apple's been very fortunate in that it's introduced a few of these."
- Steve Jobs

As a long-time Mac nerd, I've long been eagerly awaiting the software development kit (SDK) for the iPhone and iPod Touch. For those not in the know, this is a piece of software that allows for the development of other software. Currently, the iPhone/iTouch ship with a set of applications (mail, Safari web browser, calendar etc.) and that's all there will ever be. You can use web calendars (like Google Calendar) when you have an internet connection, but you can't install any native applications the way you can on a computer. No games, no fancier word processors, nothing. Well, that's set to change, as the SDK is going to arrive in June. On Thursday, Apple unveiled the details of the SDK (overall analysis here, play-by-play description of the announcement event here), and I'd like to look at what we now know.

Before the event took place (it has been announced for some time that the SDK was coming), I had some questions I wanted answered, regarding the limitations of the SDK, and how applications would be distributed. Most of those questions have now been answered.

VOIP Applications. The iPhone obviously is primarily a voice device-it's a feature-packed phone to be sure, but a phone nonetheless. Further, it's a phone tied to specific network carriers (AT&T in the U.S., O2 in the U.K, Orange in France and T-Mobile in Germany, for example). These carriers have invested billions of dollars into building their infrastructure, and nothing scares them more than VOIP. VOIP stands for Voice Over IP, and is an umbrella term for any technology that allows you to place phone calls over the internet; the most common example is Skype. By treating voice calls as data, these services can realise tremendous savings. For example, while it costs me about 10p-35p/minute to make local calls from my mobile phone, and about £1/minute or more to make international calls, I called some friends in Canada with Skype from my computer and it cost me about 25p for a half hour.

As Wi-Fi internet access proliferates, VOIP becomes even more powerful. Imagine I could use an iPhone, at home, to place Skype calls. If I'm outside the range of my Wi-Fi point, I use the cell network; but if I'm at home, I can call anywhere in the world for a fraction of the cost, and don't have to use any of the minutes I purchase from my mobile carrier. You can understand why they're scared: all of a sudden, I'd be using their expensive network about 10% as much as I do now. So, hearing Apple say they would allow VOIP applications on the iPhone is thrilling.

Verdict: Yay Apple! I know AT&T would probably rather you block VOIP in any way possible, but I look forward to be able to make very cheap calls when in range of a Wi-Fi point.

Software Distribution: Apple has decided that all iPhone apps are to reside on Apple's server, and be downloaded through what they're calling the app store. Free apps will not cost the developer anything for Apple to host (beyond an initial, and quite reasonable $99 for the SDK and developer's club membership) and paid apps will cost the developer 30% of the cost for Apple to host the programs. This differs dramatically from computer software, which can be hosted anywhere, and downloaded at will, and installed manually.

I'm torn on this decision. I was worried they'd require payment for all applications, and am relieved that they will allow free apps. The advantages of this model are that Apple can ensure that no applications contain viruses or any of the other malware that infests computers. Furthermore, they can maintain a certain level of quality control, and if something goes wrong, there is a single source to trace that application back. Finally, it means that there is one location where every piece of iPhone software can be found, making a single, simple solution to software. However, this incurs a fee for any developer wishing to profit from their applications and means there's also a single point of failure if things go wrong. More ominously, perhaps, it means that Apple has final say over what applications are permitted on your iPhone. They've said they'll allow VOIP (as I mentioned before), which indicates they're open to things which their business partners might not be the biggest fans of. However, they've already said, unsurprisingly, that they won't allow SIM-unlocking applications, which would allow iPhones to be used on networks other than AT&T, so clearly they're planning to pick and choose which apps are permitted.

I'm on the fence, because there are clear advantages to this strategy in terms of security, doubly important for this market; I'll accept crashing and freezing on my computer much more readily than on my phone, and a virus that could spread phone-to-phone is a terrifying concept. But Apple has to tread lightly. There are some applications I really want to see on the iPhone, such as a video player that plays all formats, not just H.264, the format Apple uses to sell videos in the iTunes store. This would perhaps hurt iTunes sales, so I wouldn't be shocked if Apple blocked it; but I hope they won't-that would show a penchant for application-filtering I would find disturbing. Similarly, a BitTorrent application, or other peer-to-peer software will provide an acid test; if Apple permits software that not only provides potential alternatives to buying stuff from the iTunes store, but also provides the possibility of being used to pirate movies, I'll know they're open-minded, and will be OK with the iPhone App Store. If they crackdown, I'll know they're intent on auditing my application choices, and will be wary.

Verdict: Wait and see. Will Apple allow applications to exist that could provide revenue-damaging, or potentially illegal activities, or will they enforce a puritanical code of ethics on all iPhones? I hope the former.

SDK Details: The SDK itself looks quite interesting (though keep in mind, I'm not a software developer, so I might be missing something). I think the $99 fee is reasonable-Microsoft's Visual Studio and MSDN access cost scads more, and the fee appears to be a one-time-only affair. I like that the SDK can access the positioning information, allowing the iPhone to tell you where it is geographically, using cellular tower and Wi-Fi HotSpot data. The iPhone simulator seems an excellent way to test one's applications before downloading them onto a real-world iPhone. And ultimately, it seems like Apple has finally embraced the reality that the iPhone isn't just a phone, it's a phone new portable computing platform. I can't wait to see what applications emerge in the coming months. I just might have to make an iPod Touch-sized dent in my bank account one of these days...


"My children - in many dimensions they're as poorly behaved as many other children, but at least on this dimension I've got my kids brainwashed: You don't use Google, and you don't use an iPod."

-Steve Ballmer, CEO of Microsoft