Another Perspective on the iPhone SDK

Before we get to the meat of this post, let me say:

Hello! My name is David Brown, and I’ve joined the fine team here at Brain Murmurs.

On to the post.

One of the fun things about my job is that now my interest and my vocation are lined up. Before, whenever Apple released something new, I would have to wait until I got home to play with the new toy. Now, part of my job is to stay on top of these developments, and actively evaluate their impact and usefulness to our business.

Yesterday Apple released an early beta of the iPhone SDK. And what a release it is. There are mountains of documentation, a nice series of introduction videos (which I spent most of last night watching, and I’m only really a third of the way through), and a simulator that you can use with the Xcode debugger.
When you look at the sum total of everything they put together for this release, it’s not all that surprising that it took as long as it did to get it out.

But they did more than just get the SDK out. For anybody that has been following the grand “Hacking of the iPhone” — jailbreaking their iPhone, building the toolchain, and reading the writings of developers like Erica Sadun, the API being presented in the official SDK is quite a bit different than the API that we’ve come to know over the few short months we’ve had an unofficial development environment.

Some of those changes are amazingly great, like UINavigationController and the like. But others, like the requirement for no background execution, the complete sandboxing of the application, the inability to add state icons to the status bar — those changes give us less utility than we had before, when we were exploring the unknown frontier of the device.

I can understand why some of these changes are being made. They make it less likely that you are going to inadvertently kill your device. You cannot destroy the essential data that resides on your device.

Yet I can’t help but feel that we’ve been given the blunt-nose scissors to go with our fine iPhone construction paper. Yeah, there are plenty of very satisfying things we’re going to be able to create. But there’s a whole boatload of applications that are closed to us. Do you want an instant message client that will tell you that you’ve got a message even when it’s not the frontmost application? Sorry, you are out of luck. How about the last.fm client that uploads what you are currently listening to the last.fm service? Not possible under the current model.

Deep down inside, I’m a systems level programmer. I’m most at home with sockets, threads, low-level access to devices, that sort of thing. I love being up to my armpits in memory dumps. While I still have plenty of ideas that I can implement very satisfactorily with the SDK as it currently stands, I ache when I ponder the things that I can’t do.

For the most part, Well Done, Apple. But please, give us a reasonable path to the rest of the device. There is so much that this device can do. Let us prove it.

Leave a Reply

You must be logged in to post a comment.