How does multi-tasking work in iPhone OS 4?

As expected, Apple rolled out a multi-tasking system in iPhone OS 4, and it is quite impressive. It is not, however, a thoughtless “let multiple apps run at once” proposal. Instead, they’re offering specific functions that run in the background that should keep it from being a huge drain on battery, processor and users. Updated!

First, let me admonish myself for using the term “multi-tasking”. I’ve made a point to avoid it since so many people use it incorrectly. More precisely, Apple is offering third-party apps a means of running processes in the background. The iPhone OS already “multi-tasks” with its built-in apps. The big change now is that they’re opening it to others.

The seven services now available to developers are: music/audio playback, VoIP, background location, push notifications, local notifications, task completion, and fast app switching. Apps running the background are accessible by double-tapping the home button. This pulls up a dock, like the one on the home screen, that lets you scroll and select between the apps currently open.

Audio playback is the one I’ve really wanted and the easiest to explain. Just as the iPod app can play music while the iPhone is locked or doing other things, now that same functionality can be applied to other apps, including accessing playback control from the lock screen. Anyone who love listening to Pandora knows what a pain it is to shut down the app whenever some other task arises. Well, now you don’t have to, unless that task involves playing audio.

VoIP is another easy one. If you use Skype, now you can let the app run in the background to receive calls. Furthermore, you can stay on a call while doing other things, just like the built-in phone function does.

Background location works two different ways. For apps that provide turn-by-turn directions, this services allows it to keep running while you do other things. So, if you wanted to run TomTom and Pandora at the same time, you could. Drawing GPS data like this is a big battery drain, so for activities that do not require such accuracy, apps can opt to rely on cell tower triangulation instead. They’ve also added a status bar indicator to let you know when an app is using your location and designed a new location services control panel.

Push notifications are already available in the current OS, sending you updates from a remote server. Local notifications does the same except the notices get pushed out locally, like clock alarm and calendar do, which I use all the time.

Task completion is what it sounds like. Apps can be set to finish tasks in the background after you exit them, just like the Mail app will finish sending an email after you exit it.

Finally, there’s fast app switching. This allows an app to stop in place while you do something else and resume function when you return to it. This is the only one that seems entirely new since even the built-in apps usually refresh when you come back to them.

Now before everyone gets too excited, be aware it won’t be available for your iPhone or iPod touch until summer, presumably in time for the release of the next iPhone model, and not until fall for the iPad. Also, this functionality won’t all work unless you’ve got the iPhone 3GS or 3rd gen iPod touch. You’re out of luck if you’ve got anything older.

Last thing I’d point out is this tidbit from the Q&A session regarding app management, which I read on Gizmodo’s liveblog of the event.

If you want to kill an app…you don’t have to. We architected something so the user doesn’t have to be the custodian of applications. We’ll give the apps in the foreground as needed. The user doesn’t have to worry about that at all. The user just uses things.

In multitasking, if you see a task manager, they blew it. Users shouldn’t have to ever, ever, ever think about that stuff.

This is one of a few slams against Android in the Q&A, but the point is absolutely right. I pop open the task manager in Windows all the time to kill processes. It’s not something I want to do, but it must be done. That’s always been a big strike against usability to me. I suspect the approach of limiting multi-tasking to certain background processes will be the key to making this work.

Update: There’s a YouTube video of the app switching in action. Via Gizmodo.