Since the debut of the iPhone in June of 2007 one of its most glaring shortcomings has been its total lack of multitasking capability. The purpose of this article is to inform you, the end user, and present suitable alternatives to Apple branded “true” multitasking support while, at the same time, clearing up any misconceptions and answering any questions you may have. You may be aware of Apple’s official response to the buzz surrounding the multitasking situation which was the introduction of “Push Notifications”.
Push technology, in a nutshell, allows Apple to run a single, lightweight “app” (really more of a service, comparable to processes in Windows) which keeps an eye on any applications that care to use the service allowing them to display their own individual updates on your homescreen. This response disappointed many as Apple in no way acknowledged or took care of the real problem, a lack of “true” multitasking. On top of this, Apple didn’t even introduce Push technology until the third generation of the iPhone OS. This being said, it may interest you to know that Apple actually uses true multitasking in some of its own applications – a clear indication that they know it is necessary for a good end-user experience.
The stock applications Mail, Phone, Safari, and iPod (the original 4 on the dock before Apple added the ability to rearrange icons) all run in the background. For the most part, the end user is unaware of this. This is the reason behind some of the strange quirks you may or may not have noticed in the iPhone*. If you’re interested in seeing this for yourself you can run the following little experiment. Open up Safari and open up a few webpages (at least two). Now, close out of Safari, wait a few seconds if you please, and open it back up. You’ll notice it starts immediately with the pages already loaded into memory. Now, while still in Safari, hold the power button until the “slide to power off” text appears**. When this appears, hold the home button until the dialog goes away. You’ll notice that Safari disappears at the same time. What you’ve just done is killed the Safari process (in a way that all SDK application processes are killed when you simply hit the home button). Now, open Safari back up. You’ll notice the pages have to reload… The information regarding the amount of open tabs and what they were remains but the pages are no longer loaded into memory because you killed the process.
With this knowledge you may be left wondering what options are available to you. Thankfully, talented programmers have long since realized Apple has no intentions of opening up the SDK and allowing all applications to run in the background. This assumption has been more or less confirmed as Apple has sat idly by while new smart phones like the Palm Pre (which prides itself on its backgrounding ability) have encountered great success. A few months ago the work of gaizin culminated in the release of a Mobile Substrate extension that allows applications to run in the background. The program was dubbed, quite appropriately, Backgrounder and has been tremendously successful both in purpose and function. If you weren’t already aware of Backgrounder it is available currently in Cydia and Rock App and is completely free.
Before you go running off to Cydia to download Backgrounder I have one more tidbit of information to share with you. ProSwitcher is essentially a GUI for Backgrounder. It emulates (very successfully) the Palm Pre style of swiping through open applications and ending processes with a quick swipe upward. It is in no way a replacement for Backgrounder… In fact, Backgrounder is a prerequisite for ProSwitcher. However, it is a very nicely made application that, likely, could never be replicated by Apple simply because Apple would be sued by Palm.
If you’ve stuck with me through the end of this admittedly lengthy article I hope you’ve gained a deeper understanding of the current multitasking situation on the iPhone. I encourage you to ask any questions you may have regarding the process as I have a quite thorough understanding of it. Happy Backgrounding!
*An example of this: Sometimes when you launch the Mail app it seems to “kick back into gear” and download a bunch of messages. This is because when you last closed it you left it in the inbox of one of your email accounts and the Mail application doesn’t watch the other inboxes when it thinks you are actively viewing one. Because the Mail app is actually still running in the background, it doesn’t note this change (really, in the end, it’s a mostly unnoticeable bug that Apple probably has no intent of fixing).
**Prior to the introduction of iPhone OS 3.0 the way to kill processes was to simply hold the home button. However, this action now launches the Voice Recognition software on capable phones and a change had to be made.