The technology, detailed by people familiar with Apple's plans for the new firmware, will finally allow users to launch multiple apps in the background and quickly switch between them, as AppleInsider exclusively reported earlier this month. Currently, a running app must be quit when the user returns to the Home screen.
Apple initially avoided an app model supporting multiple apps running at once to help preserve battery life and simplify the user experience. Other platforms that do support the launching of multiple apps, including Android and Windows Mobile, require users to manually manage system resources and kill off performance robbing background tasks.
Today's iPhone 3.x firmware 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.
Those familiar with the design of iPhone 4.0 said that the user interface will resemble Apple's desktop Expose feature, in that a key combination — reportedly hitting the Home button twice — will trigger an expose-like interface that brings up a series of icons representing the currently running apps, allowing users to quickly select the one they want to switch to directly. When a selection is made, the iPhone OS zooms out of the Expose task manager and transitions to that app.
Apple patented the Mac OS X Expose concept in 2005, but the desktop implementation relies upon scaling each application's widows so that they all fit into the screen in a single layer without any overlap.
On the iPhone, scaling down several screen views to fit into the relatively small display would be problematic, and apps never have multiple windows, so the new mechanism currently presents just each app's icon. This renders the feature more similar to the basic Command+Tab app switcher than Expose itself as a desktop feature, but people who've been privy to pre-release builds of the iPhone 4.0 OS say it exhibits several characteristics of the Expose brand.
Two other features seen in pre-release builds of iPhone 4.0 are a global mailbox view and the ability to add individual contacts to the iPhone's home screen, such as a button that will call "Mom" or "Dad" directly. Since the software remains under active development, there's always the possibility that either or both of these enhancements could be chopped in the coming months.
Multiple apps without broken security
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 being 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 is currently only possible after jailbreaking the system, where 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. At the same time, Apple's signed app model in iTunes with its mandatory certificate security mechanism means that iPhone users will be able to run multiple apps from the App Store without fear that their software will spy on them, pop up ads, or send out spam.
Other platform vendors do not mandate rigid security for their software libraries, with Android permissively allowing users to install apps from any source, something that will likely serve as a welcome mat for malicious hackers once that platform gains enough visibility.
Notifications pay off on the way to multitasking
Rather than immediately jumping to a multitasking environment for the iPhone, Apple introduced a system-wide push notifications service to enable third party apps to appear to respond to outside updates (such as incoming messages or news alerts) even when they were not actually running.
The company has worked to refine this mechanism before moving to a fully multitasking model, which means that existing apps with notification support won't necessarily need to be launched in the background just to continually poll for updates. Additionally, third party apps that are running in the background will be less likely to drain performance and battery compared to other platforms because the notification mechanism is more efficient than having multiple apps each polling a remote server for their own updates.
For example, RIM's BlackBerry OS has long offered multitasking support for apps but the company only recently opened up its push delivery infrastructure to third party developers. As a result, most of the relatively small library of BlackBerry apps are designed to inefficiently poll a server for information rather than avail themselves of the BlackBerry's famous push messaging features.
Google provides no standard mechanism for system-wide push on Android, forcing developers to all roll their own support. Meanwhile, Microsoft is planning to roll the clock back with Windows Phone 7 later this year, erasing its existing multitasking support for third party apps in Windows Mobile to deliver a model patterned after iPhone 2.0.