I’ll be posting a bit on my experiences on the iPad in the coming days, but with the announcement of iPhone OS 4.0 coming this Thursday, I wanted to make sure to get my predictions filed for how I think it will handle multitasking first.
A number of blogs are carrying reports of a rumor that iPhone OS 4.0 will support multitasking in a similar manner to exposé in Mac OS X. I think that this rumor is fake, and I very much doubt that this will be the way that Apple chooses to implement this important and ever-requested feature.
Essentially the rumor states that by tapping the home button twice, the user is presented with all the “running” apps, exposé-style. Each running app is represented by it’s icon.
Here’s the first problem with this description: it is essentially describing what the home screen already is. If you remove your preconceived notion of multitasking, and instead replace it with the term “task switching”, you will see that the iPhone OS already does this: the home screen allows users to switch between tasks.
But I’m getting ahead of myself. What most people think of as multitasking is essentially 2 things:
1. Quickly switching between tasks, without losing one’s place.
2. Running multiple processes so that they can all do “work” at the same time, even if the user isn’t interacting with them at the moment
The first part is what you do already with the iPhone OS home screen. Tap the home button and you see your apps. Choose an app, and you will be in that app, and the app will (or at least is supposed to) remember where you left off.
Implementing a separate exposé-like task switcher would only serve to confuse. Why restrict it to only running processes? Why not just show the home screen?
This is how I predict that Apple will handle task switching on the iPhone, for the foreseeable future: they will bring the user back to their home screen, where they can select an app. It’s brilliantly simple: you choose an app once, and only in the same place. Want to pull up Google Maps? Drop back to the home screen, choose maps, and you are running Google maps.
For a modal OS, this is the type of interface that just makes sense to people intuitively. And it sounds MUCH like the rumored exposé screen, but with one major difference: the user won’t have to consider what apps are running and what apps aren’t.
I’m not saying that Apple won’t implement a faster way to bring up the home screen. I bet they will. Perhaps they will allow the home screen to slide over the existing app, and make it a toggle, so that users can drop back to their app should they decide not to change tasks.
Many people will argue that it’s too slow to launch apps from the flash memory each time, and it’s better to keep them running in RAM. I tend to agree with you. Even though the 3GS, the iPad, and whatever will come next have a faster and faster launch process, it still won’t be the instant-switch that keeping a program in RAM allows. But here’s the important distinction: Apple will implement this using a system wherein the user won’t know whether an app is running when they pick it from the home screen. For simple task-switching, it doesn’t matter whether it’s running or not. If it’s running, the change will be nearly instant. If it’s not, the change might take a second.
Think about all that this method of task switching affords you. You don’t have to quit apps. You don’t have to think about what’s running in the background, and if it’s affecting your foreground app’s performance, because the OS will manage that for you and quit the apps it needs to. And when you are searching your email and decide to look something up on Google, then come back to email, the second switch will be instant, as will all subsequent task switches between Safari and Mail. A resource-intensive app, like a game, would likely save your progress and quit altogether, as Apple would likely place strict rules on the resource usage of background apps.
But what about background apps you want to keep running, you ask? Like that GPS app that keeps a log of where you walked, or Pandora, which you like to keep playing music?
For these apps, I think that Apple will implement some sort of resource-saving mode that apps can go into, as well as a confirmation (much like push) that the user wants to keep the app running in the background. Here’s how I imagine it:
1. When opening an app for the first time, the iPhone asks the user whether they would like this app to be able to run in the background.
2. When the user initiates a task-switch on the home screen, or the OS decides to quit the program to free up resources, the OS sends the app a warning.
3. On receipt of this warning, the app puts itself into low-resource mode. It destroys all of it’s UI’s, frees in-memory caches, etc. It only keeps running the essential task, like playing music or logging GPS coordinates. Even actions such as polling the network or searching for the phone’s location would be reduced in frequency, to prevent the app from hogging battery.
4. The OS confirms that the app is within it’s limits for memory usage, processor time, and network utilization. If it gets greedy, it gets shut down. Greedy apps wouldn’t be approved by Apple, as this would be considered a crash, and reports would be filed.
An alternative to this, and perhaps a more likely scenario, is that an app could become 2 running processes. One would be a lightweight service, designed to perform only the most basic tasks (audio playback, network access, etc) and the other is for the User Interface. When the iPhone determined it needed to free memory, it would simply quit the UI app, leaving the helper app running.
If the rumors are true, I’ll be surprised. Then again, I’m regularly surprised by what Apple does. But the current rumor of “it’s just like exposé” feels a bit too limited in scope to be true. Apple knows it needs to keep these devices simple. In fact, that’s Apple’s whole “post-PC” strategy, to take what we’ve learned over the past 30 years about computers and to reinvent them so that the actions of the “computer” become an abstraction, and working with one of these machines is working directly with your content. A major point of confusion for many people who use the computers of today is task management, and i think it’s very clear that Apple has decided to attack this problem head-on in the iPhone OS.