Monday, August 9, 2010

Usable multi-tasking on iPhone and iPod Touch for the technically literate

Apple's latest iPhone/iPod Touch operating system, iOS 4, promises multi-tasking but falls short of delivering. Not every app supports it, and there are some major shortcomings in the overall design. The biggest shortcoming is also the biggest benefit of Apple's approach: apps do not actually run in the background, but instead may provide certain background tasks, such as playing audio. This keeps the memory and battery requirements down, while meeting 90% of the need most people have for multi-tasking.

But, what if you really want to run a full app in the background? What if the app you need does not support iOS 4 native backgrounding yet? What if you want more direct control over what apps are running and when, rather than relying on iOS 4 to decide?

Enter two free utilities that solve all these problems: Backgrounder and SBSettings. Right off the bat I should let you know that these apps are not available on the Apple AppStore. Instead, you need to install them from the Cydia app store or the Rock Your Phone app store. If you do not have either of these installed yet, then you are still living behind Apple's iron curtain, perhaps glimpsing the freedom to install whatever apps you want everytime you read something about "jailbreaking".

First off, despite the rather unfortunate name, "jailbreaking" is not illegal. It is simply a method for installing additional app stores that compete with Apple's. It has recently been ruled to be an allowed use under the Digital Millenium Copyright Act, and I expect that it will not be long before someone files suit against Apple for restraint of trade for actively preventing these competing stores from being installed. Apple has made statements that imply using software not approved by Apple may void your warranty, but in any case you can always do a restore from iTunes to get back behind the iron curtain and wipe out the extra software.

How do you install these alternatives? As of iOS 4, the easiest way is to visit http://www.jailbreakme.com from your iPhone or iPod Touch and follow the directions. Apple will probably come out with an update soon that closes the loophole that jailbreakme.com uses to sneak Cydia past the iron curtain and on to your iPhone or iPod Touch. Once you have Cydia installed, you can search for Rock App if you want a faster tool for installing alternative software.

Once you have one or both of these installed, search for and install two programs: Backgrounder and SBSettings. You will have to "respring" your iPhone in the process (a sort of partial reboot) so don't worry if your screen goes blank for a minute or so. It will come back!

SBSettings (short for Status Bar settings) is a nifty program that lets you swipe in the status bar (top of the screen) and change settings without leaving an app. It also lets you quit out of any running app, which can be quite useful if you want that extra control of deciding when to quit a background app instead of waiting for iOS to do it for you.

Backgrounder adds some important features. First, it adds a badge to every app that is running in the background. If the app is backgrounded with iOS 4's native multi-tasking, a blue badge appears. If the full app is running in the background, a black badge appears. To get full manual control of what runs in the background and when, gun Backgrounder and tap Global to change the default settings. Then, select a background method of "Auto Detect." This will use native iOS backgrounding if supported, otherwise it will run the full app in the background. Next, select "Enable at Launch" and "Stay Enabled" options, turn on both the Badge and Status Bar icon, and turn on Minimize on Toggle. Go back to the main screen and tap Control (via Activator). Choose an event to toggle backgrounding. I use "Short Hold". After making all of these settings, press the home button. Again, your iPhone may "respring" so be patient.

After you have done all of this, here is the technique for managing background apps. When you run an app, it will automatically enable multi-tasking of one sort or another, and a status bar icon will show you which it is using (except for full screen apps which have no status bar). If you want to leave the app running when you switch to another app, either press the home button or double-press the home button and switch to another app. If you want the app to exit completely and not keep running in the background, press and hold the home button instead. It will toggle the backgrounding mode (i.e., turn it off) and then minimize the app (i.e., quit it).

If you accidentally leave an app running in the background (which you will see from the badge that is displayed), just swipe in the status bar to run SBSettings, tap on Processes, and quit out of whatever app or apps you want. Be aware, however that the app may not save any settings or other changes if you quit it this way.

So, that is a quick introduction to one way to use the multi-tasking support on iOS 4. Let me know if you come up with any other good ideas.