Despite the fact that I develop for iPhone, I can’t tolerate using beta versions of the OS on my personal device. So it was only last week that I I installed iOS 4 on my iPhone last week. Ever since, I’ve been trying to grasp how the widely-anticipated multitasking feature really works. I understood that actually running a background thread would require a recompile to take advantage of the new OS’s facility for keeping a program running while inactive. But I had also understood that all apps would remain memory resident when dismissed, such that they’d pick up where they left off. The OS, I further understood, would manage memory and dismiss unused apps in the background to free it up if necessary.
But that’s not what happened in practice. When I ran apps listed in the fast switch menu, they were clearly restarting. Thanks to pointers from Nick Seaver and John Marstall, I read this helpful article by Matt Neuburg, which clarifies things:
It turns out that in order to participate in multitasking and allow itself to be suspended, every app must be recompiled for iOS 4. An app that doesn’t appear to behave any differently when you resume it on iOS 4 from how it behaved when you relaunched it on earlier versions of the system simply hasn’t been recompiled yet. That, as a moment’s reflection will show, would be the vast, vast majority of apps!
Indeed, if you read Apple’s page on multitasking on iOS4, an easily overlooked asterisk that makes this behavior clear (*Multitasking is available with apps that have been developed to work with iOS 4). But I don’t think I’m the only one who was confused. I also don’t really understand why the OS couldn’t keep pre-iOS 4 apps memory resident.
As Neuberg points out, the only way multitasking will work systemically in the way Apple’s promised is if all or most of the 200,000 apps available are recompiled for the new OS and resubmitted for Apple approval. That’s unlikely for a number of reasons. To name a few: many (most?) apps are hobbyist affairs or failed to make enough money for their developers to justify supporting them; updates take time to complete and, moreso, to get approved; many developers haven’t upgraded to 3GS or 4G devices and thus can’t test their apps.
What does all this add up to? I’d argue this: while iOS4 might have the technical capability to multitask, the application ecosystem Apple has developed for the device insures that it can’t possibly behave in the way one would expect. That might change, eventually, as the platform evolves around the new OS, although it does draw attention to a little-critiqued aspect of the iPhone platform: many of those 200,000 apps approach uselessness. For one part, many started that way, but for another part, Apple’s insistence on upgrading the OS and device so rapidly makes it hard for all but the most successful apps to keep operating effectively.
For now, since pre-iOS 4 apps are not really backgrounded, the fast switch menu is really just a list of recently used apps. That’s somewhat useful, I suppose, but it’s hardly “multitasking.” How could we more accurately describe the feature as it really operates?
Multitasking means that many programs can run simultaneously and continuously. When recompiled for iOS 4, apps get backgrounded so they can be restored later, but they don’t continue running unless programmed specifically to do so. When not rebuilt for the new OS, apps close but remainÂ slightly more conveniently nearby. If we use a desktop metaphor, both flavors of multitasking are more like moving some papers from the center of your attention to the edge of the desk, close at hand for later retrieval.
That in mind, iOS4’s behavior might be best characterized as latertasking. Rather than putting apps away entirely, they remain close by but inactive, like a dogeared book on the desk rather than a closed book on the shelf. A convenience, no doubt, but hardly the expectation most probably have of the word “multitasking” from the world of desktop computing. Call it Apple hype if you’d like, but I suspect Steve Jobs would argue that it’s not spin, but peeling, a necessary step in turning bland, boring apples into sweet and spicy apple pie.