Let me start by saying I think Apple has come up with a truly innovative solution to the problem of multitasking on a device as limited as the iPhone. Not that the iPhone is lacking in any way, but there are certain constraints: screen size, battery life, and processing power chief among them. Innovation is the process of solving a problem in a better way than what has come before, and Apple’s approach to multitasking can only be described as innovative. Looking at the multitasking functionality reveals a rather stark truth, and one which iPhone haters will likely be quick to take up as a rallying cry: this is not true multitasking, where an app can do whatever it wants in the background. Apps can only make use of standardized background processes provided by Apple. In effect, the iPhone is still a walled gardenApple has just added some new window.
The iPhone OS 4.0 will provide seven multitasking services for developers to take advantage of: Background audio, Voice over iP, Background location, Push notifications, Local notifications, Task finishing, and Fast app switching. Of these seven, two are simply rebadged services that were available in OS 3.0: Background audio (though it was only available to the built-in iPod app) and Push notifications.
The remaining five features open both new and exciting possibilities for apps, though they are mostly methods for an app to communicate information to the user even when that app is not currently running (like push notifications from OS 3.0). In effect, Apple has provided a standardized background structure for routing information between apps. True multitasking would allow all apps access to all system resources whenever they are running, and Apple firmly asserts that this would be killer for battery life and performance. Full-blown apps will not truly be running concurrently; only these seven processes will run. This allows Apple to maintain control over the UI and hardware performanceby making these multitasking “conduits” part of the OS, Apple can test iPhone performance regardless of how many apps are “multitasking” at any given time.
The one multitasking service that begins to approach true multi-process multitasking is the Task finishing service. This service provides a way for an app to finish a task, like uploading a photo to Facebook, even if the user exits the app before the task is completed. This again is not a new featureemail and text messages have had this capability for a while! Like the background audio service, this is less a new feature for the OS and more an opening the doors to outsiders. Task finishing most closely approaches the mutlitasking users are familiar with on their desktop computers, though it remains to be seen if the entire app remains running until the task is finished, or if tasks will designated as a separate process that runs even after its originating app has been closed. Again, a great battery- and performance-management approach for Apple to take, though some developers might feel constrained.
Apple seems to be on rather a streak at the moment, and it certainly feels safe to bet on the winner. Of course, it remains to be seen if the level of control Apple exerts over the iPhone platform will continue to provide enough functionality to woo developers. Until now, despite vocal protestors, there have been new apps every day with no end in sight. The multitasking services provided in the iPhone OS 4.0 are yet another awesome-but-tightly-leashed feature, though the possibilities are still mind-boggling. Steve Jobs clearly believes that the user experience should be protected at whatever cost, so it seems a tenuous balance will be maintained between developers who want unrestrained freedom and users who like it when everything “just works.”
Read [iPhone OS Preview]
Five Filters featured article: Chilcot Inquiry. Available tools: PDF Newspaper, Full Text RSS, Term Extraction.