Unfortunately, some of the details we have discovered about the SDK will have a real impact on the ability of developers to innovate on the iPhone. The issue is that Apple has set a policy that third party application developers can't create applications that run in the background. Currently, there is a minor uproar in the blogosphere about Apple’s policy on this matter.
The purpose of this article is to convince all of you that the uproar should not be minor.
Background Processing is the Key to Mobile Innovation
Prohibiting background processing is not just a question of one feature being left off a long list of otherwise very well executed features. The issue of background processing is *the* issue for a mobile device because it is key to two things:
- telling the world about your status in some ongoing way
- receiving notification of important events
These two things are the key to most new real innovations in the mobile space. To be clear, by innovation, I mean creating functionalities that have not been possible before. I do not believe that Apple’s beautiful new iPhone UIs or visual metaphor’s allows for the creation of truly new application categories. Apple’s tools are great, but they just make apps that were already possible, easier to build and easier to use. But as a developer, I want to create things that have been bottled up in my head but without the right platform, were fundamentally impossible to do.
Lets look at some of the specifics of what kind of limitations the “no background apps” policy really imposes.
In order to innovate in the communication area, you must have notification. Without it there is no push email, no phone ringing, no instant messaging, no twitter notification, and on and on. Of course some of you will argue that you don’t need third parties to do this stuff because Apple will handle all that internally. But Apple didn’t invent instant messaging. They didn’t invent Twitter. They didn’t invent VOIP. And they certainly didn’t invent the phone. By making third party communications related innovation on the iPhone impossible, they are potentially killing the next great thing that could only be done on a mobile device, but won’t be because Apple forbids it.
Of course, there is more to this than just communications. You can’t even implement something as simple as an alarm clock without notification. More interestingly, there are a whole host of location-based applications that are impossible with the current restrictions. I’d love to have an app that notified me when I was near something that I have been looking for, like perhaps an open house for a piece of real estate in my price range. Personally, I believe that location based notification is the most fertile of all the potential new areas of innovation.
Presence & Location Broadcasting
Presence, the concept of notifying others that you are “available” in instant messaging applications, is a huge and important functionality. It has become important in a whole host of applications beyond pure instant messaging. In the mobile world the concept of presence takes on even more significance, and with location aware devices we can broadcast not just “presence” but location. Again, neither presence nor location broadcasting is possible without background capability and the Internet is filled with discussion about how these concepts can change social dynamics. But as it stands now, none of that innovation or exploration will happen on the iPhone.
The rationale to Apple's position is never directly stated, but is implicitly clear. Background apps are risky because they can harm the user experience by bogging down the phone. This is, of course, bogus. There are many ways to address this through task prioritization, and sandboxing background tasks or even limiting their size. There are lots of other things Apple could do that I won’t list here. But the point is Apple has some of the brightest engineers on the planet, and this issue has been dealt with in Unix, and with real time systems for many years.
In short, this argument is a strategically placed fig leaf, which is easily blown away.
The truth is the real arguments are much more about business and an incredible ambivalence about developers. First, Apple is concerned about protecting its revenue streams, and about being the innovation leader on the platform. More importantly, Steve Jobs has a bizarre discomfort with being out-shined by third party developers on his platforms. And he has a lifelong personal preference for absolute control over everything. Often that drive serves him and his company well. In this case it does not.
The Dishonest SDK Rollout
Of course, its one thing to have a strategically flawed policy. It is another to attempt to trick the market with a disingenuous marketing event. At the SDK launch, Apple presented AOL Instant Messenger as an example of a product that was developed with the SDK for the iPhone. Now I haven’t used the iPhone AIM client, but I can’t imagine that it will not have presence or notification. But with Apple’s current policy, you can’t build a fully functional instant messenger because you can’t do presence or notification without background processing. Obviously AOL got special dispensation to break the rules. But the rest of us developers will not make it past the velvet ropes. And so, at least this aspect of the Apple launch was a lie.
Apple vs. Android
My company has been developing an application for Google’s Android phone operating system for the last several months. Our application would not be easily possible on any platform other than Android. In fact, important parts of the application are impossible without background processing. In short, Apple may be visually sexier, but I can actually innovate more effectively on Android. This should never be. I would love to develop for the iPhone, but right now I can’t see how to make it work. Interestingly, Android also builds maps in at an OS level, which, in my view, is far more important than great animation or the new screen pinching technology.
What To Do
Apple’s new platform will make it possible to create lots of great games, and really pretty more functional user interfaces. But personally, I’ll take one paradigm shifting application over a thousand cool games any day. So if you agree, I strongly suggest you say something. Link to this piece or restate the arguments elsewhere.
Apple does respond to customer uproar, and right now the SDK feedback is way too positive given the significance of what is missing. The market excitement is a response to the eye candy, which is great. Perhaps even necessary. But it is not sufficient. In attempting to keep all innovation to itself, Apple is really doing a disservice not just to us, but in a shortsighted manner, it is also doing a disservice to itself. In fact, Apple is slowing down the kind of innovation that will most assuredly drive the next generation of mobile experiences.
And so I say, Please, Mr. Jobs, tear down that wall.