Apple this summer will go a long way towards silencing critics and catering to one of the most prevalent demands of its iPhone user base, when it introduces a multitasking solution through the handset's 4.0 software update that will finally allow several third party apps to run concurrently and in the background.
People with a proven track record in predicting Apple's technological advances tell AppleInsider that the Cupertino-based company has developed a "full-on solution" to multitasking on the iPhone OS but offered no specifics on how the technology would optimize resource conservation and battery life -- two of the most critical issues surrounding the matter, alongside security.
From a user-facing perspective, Apple plans to deliver a multi-tasking manager that leverages interface technology already bundled with its Mac OS X operating system, according to those same people. It was requested that specifics be withheld at this time, as the iPhone Software 4.0 remains under development and reportedly has a quite 'way to go' before it's ready for prime time.
Today's iPhone 3.x software is a fully preemptive multitasking operating system, but it artificially restricts apps (other than specific ones bundled with the system by Apple) from running in the background.
Not a technical issue
Controversy over "multitasking" within the iPhone OS has been brewing ever since Apple launched iPhone 2.0 with the ability to run third party software titles. While often reported as begin a technical flaw, the iPhone OS really has no problem with multitasking.
The system's phone, SMS, email, iPod, voice recorder, Nike+, and certain other bundled apps can continue in the background while the user launches another app. However, third party titles obtained from the App Store (including apps from Apple, such as Remote or iDisk) can not be launched at the same time.
This behavior is prevented by the iPhone OS' security model, which is designed to close the current app whenever the user returns to the Home screen or accepts an incoming call. This design prevents apps from being able to run in the background without the user knowing, and therefore erases any real potential for spyware, adware and viruses.
By jailbreaking the system, the iPhone OS security model is compromised via an exploit, allowing the user to launch and run multiple apps. This also opens the door to both malware and widespread piracy, both of which have been contained by the default security system put in place by Apple.
While this has resulted in a secure platform and a commercially viable App Store for both users and developers, many vocal critics have cited a variety of examples of apps or features that can't work within these constrains.
Among these apps begging for background execution are: Pandora-style Internet radio; third party instant messaging features that are available at all times just like SMS or email; and Loopt or Google Latitude type apps that report the user's location at regular intervals.
New in iPhone 4.0
There are a number of ways Apple can address these needs. First is by allowing third parties to launch apps that actually run all the time in the background, just like the bundled Mail, SMS, iPod, or Voice Memos.
This isn't a technical problem for the multitasking iPhone OS, but does introduce new issues for users. Because the iPhone OS doesn't present a conventional windowing user interface, launching multiple apps requires the addition of a new interface mechanism that allows users to intuitively switch between apps without introducing too much new complexity.
The iPhone OS is intended to create mobile devices that are easy to use, not just small versions of the complex PC model of the 1990s. Apple mocked the unfriendly and complex Task Manager of Windows Mobile at the launch of iPhone 2.0. Today's Android users similarly find themselves diddling with resource and memory management to optimize battery life and performance.
Existing background-capable apps in iPhone 3.x paint a bar across the top of the screen that allows the user to return to that background app (such as a phone call, voice memo, or Nike+ session) when finished with their secondary foreground app. But that solution isn't going to scale to multiple apps all running at once.
Other multitasking issues to fix
In addition to a new graphical interface for switching (handled by the Dock in Mac OS X), a multitasking third party app model would also require a way for apps to communicate with each other or prioritize resource allocation. One reason why the iPhone and iPod touch are emerging as a successful mobile games platform is due to the fact that the iPhone OS' one-app model means that games can be more complex and sophisticated and yet still perform well on a mobile device.
Gaming has largely failed to take off on other mobile platforms because titles are limited to simplistic experiences, as they must either run in a poorly-performing layer of abstraction (such as the Adobe Flash/Flash Lite, Microsoft Silverlight, or Sun Java/Android Dalvik runtimes), or target a native platform that lacks an installed base big enough to attract significant development.
Installing lots of background processes will inevitably eat up battery life and performance, so adding multitasking features that are valuable without creating a mess for users to deal with requires solving a variety of non-obvious problems that are very apparent on other mobile platforms that claim to deliver functional multitasking.
Potential solutions include saving the state of and parking the foreground app, or scaling down the execution of a background app, so that multiple app execution does not overwhelm the limited resources available on mobile devices. Either one would allow the user to quickly switch between running apps without seeing much downside. Today's iPhone OS requires a brief layover to the Home screen before jumping from the current app to launch another one.
More system RAM and faster processors will also help to improve the experience of users who want to quickly switch between multiple apps.