|Tablet Talk: multitasking
||[Feb. 19th, 2010|02:22 pm]
In my initial post about the iPad, I said: "Lack of multitasking is a bigger surprise, and a bigger disappointment - does Apple really think we'll never need to switch between web browsing and word processing without losing our places in either?" At the time, I didn't know enough about the iPhone OS to understand the fundamental mistake I was making. Having educated myself in the meantime, I'd like to take another look at the iPad and multitasking.
When I posted the first time, I was unconsciously defining "multitasking" as "the ability to work on multiple applications simultaneously," using the example of switching between a web browser and a word processor. This mistake I made at the time was to assume that leaving an iPhone app is like quitting a Windows program: any documents the user had open are closed. In fact, the iPhone paradigm is for applications to save their state when the user exits the app, remembering what was happening so that the state can be restored when the app is launched again. In a way, once you've opened an iPhone (or iPad) app the first time, it's *always open* - you're just going away and coming back to it. My particular complaint about multitasking was therefore groundless.
The tech media, on the other hand, have continued to complain about the iPad's lack of multitasking, but their definition of "multitasking" is different from the one I was using. What these critics want is the ability to run third-party processes in the background. Apple already lets you run its native apps in the background: you can keep the iPod app playing music while you browse the Web, for example, or take a phone call while a page loads in Safari. Third-party applications, however, are strictly sandboxed: no processes are allowed to remain running when the user exits an app. This means that, for example, you can't use the Pandora app to keep streaming music if you exit to edit a word processing document in Pages. (The Internet radio example, by the way, is the one used in about 90% of the multitasking complaints; the rest seem to mostly involve third-party chat clients.)
It's instructive to see how another mobile OS handles this issue. Android allows more-or-less unrestricted background processes with its applications. The problem with this approach is that it's often difficult to figure out how to turn an app *off*, and in the meantime, those background processes increase CPU load and battery drain. In fact, most of the Android OS beginner's guides I've seen on the Web encourage new users to install task manager applications right off the bat, *specifically* to help keep a lid on this problem by periodically offering to kill background processes. To quote Matrix: Reloaded, while this solution functions, it is obviously fundamentally flawed.
Is there a happy medium? I think so. The use cases for background tasks are relatively few in a device intended more as a computing appliance rather than a full-blown computing environment, but they're not unreasonable either. One possible solution would be for Apple to allow users to opt-in for background processes on an app-by-app basis in the Settings menu. I expect that if Apple does roll out iPhone OS 4.0 in June as many expect, it will incorporate some multitasking capability.
[EDIT 6/2/10: What Apple did instead with iPhone OS 4.0 was to create APIs for specific background tasks (location reporting, audio streaming, VoIP, etc.) and make these available to all apps, along with a multitasking bar that allows direct app-to-app switching between recently-used apps. I think this will be an acceptable solution, and look forward to trying it on the iPad when it receives the update in the fall.]