Apple today unveiled 7 of 100 new features to be included with iPhone OS 4, the software upgrade that will be available for iPhone users this summer. The largest of those 7 features was multitasking. Apple has been blasted by the media, blogsphere, and competitors since the iPhone’s inception due to its lack of multitasking. Most other platforms (Google Android, Windows Mobile, Palm WebOS) support multitasking, that is, running multiple applications at the same time. Apple’s defense against including multitasking on the iPhone has been that it significantly redu
ces performance and battery life on smart phones. To be fair, Android phones do suffer from reduced battery life when running multiple applications and the Palm Pre is notorious for poor performance under the same circumstances.
Multitasking will finally be available on the iPhone. Rejoice! To be honest, I’ve never felt severely affected by the iPhone’s lack of multitasking. Sure, it would have been nice to use Pandora radio while reading RSS feeds in NetNewsWire or to quickly pause a game and send a text message, but the
se weren’t situations that I encountered that often. However, I’ve always thought that I’d find ways to use it if Apple added it, so I’m glad that it’s on its way.
So if multitasking is so bad for battery life and performance, how did Apple add it to the iPhone? Well, the magical solution that Apple came up with for multitasking isn’t full multitasking at all, it’s partial multitasking. Apple created seven systemwide services that can multitask. These services include audio streaming, voice over IP, gps, and task finishing (think uploading photos to Flickr in the background). If your application needs to do these things, i
t can request that the iPhone OS do it for them. If your app wants to play a video in the background, you’re still screwed.
What Apple did here was really smart. They looked at the common scenarios in which user would want to multitask and determined which parts of those scenarios would need to continue in the background. They built services that performed these functions so that they could control the resource and power usage. In ad
dition, they added a service that will essentially freeze-dry any app that is running and restore it immediately when the user switches back to it. Most apps start up pretty quickly, but there still is a 1-2 second lag. That would be unacceptable for multitasking. The freeze dry approach makes the switch instant, even for games.
So if we want to be technical, the iPhone OS doesn’t multitask, it kind of multitasks. It simulates multitasking. But it works. Android and WebOS can still claim to have true multit
asking and promise that they won’t dictate how users interact with their apps. But the performance and battery life of their devices will suffer. It’s no wonder why the Windows 7 Phones will not allow multitasking. As Steve Jobs said today, Apple came to the game late with multitasking, as they did with cut and paste, but they have the best implementation around.