I was writing a post on the best way to use Pandora on the iphone (link to article) and it struck me that THIS is how we may see ‘run in background’ support working on the iphone and why we want it.
First a few words on the Pro’s and Con’s of running an app in the background. Pro’s. As I first mentioned, playing music NOT from the ipod. That means Pandora, AOL radio, last.FM, Stitcher, etc… Quite often when I’m driving, which is when I listen to iphone digital radio the most, I need to look at the map on occasion to check traffic or for directions. Also if I get an email, I use intelliscreen to look at the email header.. ( I do not read or write emails when I drive and neither should you). Its quite annoying, and a distraction to reselect the radio app again. How about text chat? or at some point having a VoiP conversation and not dropping the call because you need to look something up? Keep your game going while taking a phone call.. There are plenty more examples, but you get the idea, being able to let one app continue to function as you invoke another app has many benefits..
.. and many penalties.. By having an app running in the background, you are still using iphone resources to support that app. So some of your data traffic could be taken up, battery life could be shortened, more active memory that needs to be manage which could cause a crash, and if you forget you have something running in the background, a dead phone the next time your try to use it because the battery was ran down. Because of these downsides, we need to be able to kill processes when we need to.
Well, for those of us in the jailbreak world (which is somewhat like having iphone features and functions normally a year before non jailbreak users), we already have these capabilities. A program called backgrounder allows users to run applications in the background. I use this with Pandora. SBSettings has a plugin called kill processes that allows me to kill app just like ctr-alt-del in the PC world.
So what would it be like to have this capability in 3.0? Odds are just like what we have now in jailbreak. The only feature I would add is a timeout feature for background apps. Just in case you forget you have something running. You have to be careful though, the iphone’s OS was not designed to handle many tasks running at the same time and I have crashed my phone many times testing to see how many apps I could run at the same time. Typically I crash it at 5 med load apps. So Apple will have to put some sort of priority control over apps so that some can go to sleep if required. Also, perhaps a limit on how may apps can run in the background at the same time.
In a way, jailbreak is great for apple because not only are new idea’s explored, they are tested with hundred of thousands of users.