Thoughts on the iPhone/iPod touch SDK

news
Jan 15, 20084 mins

[Late note to helpful commenters: I only write from my experience, observation and analysis. I don’t read anyone else’s work on topics I cover.]

If everything is still on track, Apple will roll out a software development kit (SDK) for iPhone and iPod touch, which share a platform, in February. I have been pondering some possibilities about that SDK. I don’t have answers, but perhaps the questions will get you thinking.

Why do an SDK? Certainly not to make the world happy. If Apple spoke with me about iPhone, it would point out that I’m among a tiny handful of people campaigning for a native iPhone SDK. Casual developers would be overjoyed if Apple beefed up iPhone’s Javascript to provide programmers with access to a protected subset of the filesystem and the ability to add icons to the home screen. If it were possible to browse “file://” in Safari, then local HTML apps with XML data stores could function as off-line applications.

A similar purpose would be served by a tiny HTTP server capable of performing data binding and mixing of local and on-line content.

In the long run, I think that the reason for doing a native iPhone SDK is to make iTunes Music Store a marketplace for downloadable mobile software. It’s been done; Forum Nokia has catalogs of third-party software and hosts developers’ applications. An icon on your phone takes you to the Nokia catalog, and software that you purchase from there gets tacked onto your phone bill. Developers get a check for their cut. Games and network tools are very popular.

Commercial developers (shareware and up) need to wire their code for time-limited trials and phone home activation, which is harder to work into non-native software. Nokia tags offerings in its catalog by programming language, and the vast majority are written in C.

If the iPhone SDK is genuinely native, that is, compilers can target the ARM CPU, then that openness will come with high-tensile strings attached that will prevent working around any of the restrictions that protect Apple and wireless operator revenue, and to protect non-savvy iPhone users (the majority). If the SDK permitted the opening of arbitrary TCP sockets, for instance, half of the world’s iPhones would be running P2P file sharing clients 24/7, at wireless operators’ expense. Trusting users would be downloading malware-stuffed Tetris clones that ship address books and mail folders to identity thieves. I don’t see Apple opening itself to this.

Apple will provide as much cover for customers as it can. iPhone apps will be sandboxed so that system and iTunes files are invisible. The first custom app you run will see an empty file system from / on down. Further protection will be afforded by Apple just as Nokia has done it (and with great controversy): Vendor code signing. There is no getting around the fact that native mobile apps, except for those you write for yourself, must be signed, and that no developer can be equipped with the means to sign code that runs on another device. Code has to blessed by a single trustworthy authority. I can’t imagine what the signing process would be, how long it would take or how much it would cost–I’d hate to see no potential for iPhone/iPod touch freeware–but I don’t think that it’s something Apple will farm out.

iTunes’ adaptable infrastructure and digital rights management technology are already there. After receiving and signing an app on behalf of a developer, Apple need only add a workflow item to ship that material, price attached, to iTunes. The question in my mind is how developers will get paid. Is Apple going to cut hundreds of developers individual checks? Will Apple demand to be the only source through which signed applications can be acquired?

So many questions. That’s what I love about this job.