So the iPhone SDK was announced just a few days ago and on that day I was terribly excited for the coming months, at that time I believed that this could be a fundamental change in the world of mobile computing. Not because no one had done it before, someone had done it before, in fact many had done it before but what they hadn’t done is spark that excitement with people like the iPhone did.
But today I have to let you in on a little secret, unless Apple changes some of the guidelines alongside this SDK it may not be that fundamental change.
“Only one iPhone application can run at a time, and third-party applications never run in the background. This means that when users switch to another application, answer the phone, or check their email, the application they were using quits. It’s important to make sure that users do not experience any negative effects because of this reality. In other words, users should not feel that leaving your iPhone application and returning to it later is any more difficult than switching among applications on a computer.”
This is coming from Apple Human Interface Guidelines for the iPhone. This means that many of the applications that I would be excited to use are practically useless. The first application that always comes to mind when I think of what I would like to see on the iPhone is a Twitter application, if the Twitter application can’t let me know that their are new tweets while I’m browsing the internet using Mobile Safari then it is practically useless to me. One of the applications that was shown off at the announcement will be incredibly effected by this decision, the AIM client for the iPhone will become almost useless to me if it can’t run in the background.
Now there is no reason that Apple couldn’t set up a second tier for developers where Apple charged a larger amount of money and those developers on the higher tier were able to run applications in the background and still be within the terms of service with Apple.
Now I’m going to move on from the terrible idea of not being able to run applications in the background and talk a little bit about what application won’t be allowed.
We already know that P2P applications aren’t going to be allowed and VoIP applications will only be allowed over wifi but Apple’s documentation also includes this little bit of text:
“An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise.”
That means that basically all emulators will not be allowed, that means if you want to build an NES emulator for the iPhone, it won’t be allowed. Sun has already announced that they would be bringing Java to the iPhone, and unfortunately according to this text it won’t be allowed. iEmulator has announced plans to build a PC emulator for the iPhone and unfortunately it won’t be allowed.
Like I said above, it is still possible for Apple to have a second tier for developers to pay more money and get more access to the device but we also don’t know how strictly Apple will be enforcing these policies, we will just have to wait and see, unfortunately that may mean that a developer may have to spend hours and hours coding an application then submitting it to the App Store and just see what happens.