iPhone app ideas (if you could run your apps in the background)
While none of the four starters have iPhones just yet (except for Cristiano apparanty), we do have apple notebooks and we are certainly considering them. Thus, I’ll continue the thread that Cristiano started about the new iPhone SDK, announced recently.

I’m a little bit disappointed that the iPhone SDK does not allow you to write software that runs in the background. Only apple’s own software (such as iTunes, which obviously continues to run even when you are not browsing iTunes on your iPhone) has that privilege. Many words have been written about this limitation. That last link in particular sparked my imagination.
Instead of reflecting on the fairness of the background thing, I thought I’d dive into the kind of application you could write if you could run your iPhone software in the background. A bunch of app ideas after the fold!
The basic ingredients
The iPhone has a little more hardware than most phones. Just in case you didn’t know about them, these are the capabilities of the phone that are used in the app ideas:
- It’s a phone, so I presume it’s almost always in your pocket or at least nearby.
- There’s a gyroscope in there, measuring the way it is currently located. It knows if the phone is being shaken, if it lies on its side, straight up, etcetera.
- The iPhone has GSM, bluetooth and WiFi support, and should be able to analyse signal strength for all of those.
- All iPhones have a data connection which can be established quickly.
- The iPhone knows your contact list, your agenda, and, via its data capabilities, it can pluck information about your friends on websites like jaiku from the web.
- It has a microphone and a photo camera, not covered by a lens cap.
Sleep tracker
Using a combination of pattern recognition, the gyroscope, and light intensity as measured by the iPhone’s camera, it should be easy to determine when the iPhone’s user is sleeping. A track record of your sleeping time can be useful for lots of things.
Step Counter
I bought my mother a step counter for christmas. It’s a simple little device that you clip to your belt. It just counts how many steps you make while wearing it. The iPhone could do the same thing by using the gyroscope, and it could also recognize other exercise patterns, such as bicycling and walking stairs. This is not just a novelty: Recent research shows that believing you are doing exercise is a crucial factor in losing weight. Hotel Maids (who run half a marathon each day) who did not consider their daily work routine as exercise remained fat, whereas those of that set who were told by a nutritionist that they were spending lots of calories during work hours got thinner. If you do any amount of walking for your job, this would help. No one wants to stick a step counter to their belt. But, an iPhone in your pocket is cool.
Presence
Everyone and their uncle already covered this so I’ll be brief: Using information from cell towers and local WiFi access points, the phone knows where you are and can upload this to services like fire eagle so that your friends know where you are. The iPhone can also tell you about nearby events and nearby friends.
Calculate your interruption tolerance
One big issue with presence info is that a lot of the things you can do with that involve ‘push notification’ - the iPhone has to somehow get your attention to tell you about a friend’s twitter, or that a friend is nearby, or that the store you are walking past is having a sale on an item you need. Sometimes (actually, often) you are in a hurry and such interruptions are only annoying distractions. I have in fact turned off jaiku notifications because the times when I welcome these interruptions are rare, and most messages aren’t urgent anyway.
The iPhone can help here. Between analysing your gait and knowing your agenda it should be possible to make a good guess as to how open to interruptions you are. If I’m just walking around, wasting some time before a meeting (the iPhone knows because it realizes I’m very close to the meeting location but I’m 20 minutes early, for example), I would welcome just about any trivial detail. On the other hand, if I’m near my meeting location, 10 minutes late, and I seem to be jogging, the last thing I need is a message informing me what Alper is having for lunch.
Couch Potato defender
By analysing your position and your location around the house (which may require multiple stationary bluetooth devices or two WiFi connections to triangulate to that precision), it can figure out that you are watching TV. By interfacing with the channel guide it can figure out what you are watching and when the show is over. TV can suck you back in, and before you know it you’ve spent 3 hours watching TV when you only meant to spend one. By turning off the TV right after your show is over, it helps you avoid such things. There would have to be some way to turn off the TV via the local network which as far as I know doesn’t exist just yet. A WiFi remote control? Even without that feature it can just beep at you that you are exceeding the amount of time you intended to spend in front of the TV.
Smarter Alarms
In the same vein as the interruption intolerance program, alarms can be made a lot smarter. If you are already at your meeting location, you don’t need a loud alarm. If on the other hand you are still clearly 2 hours away from your destination, for example because of an unforeseen traffic jam or delayed trains, the alarm should beep you earlier than usual and inform you of your transportation options. I know Alper was thinking about a website to help you carpool or avoid traffic and use the train instead if its particularly bad. Complete integration with your agenda and your current location via the iPhone would be even cooler.
So why can’t you do background apps
The big concerns about allowing apps to keep running in the background is battery, and phone resources. I used to own a smartphone and if you load it down with enough fancy programs, at some point your phone won’t last a day on a full charge, and apps that used to be speedy slow down to a crawl. Invariably, the advice given by the smartphone’s manufacturer is to clean it out, or even reset it entirely. That’s because most smartphones don’t have a good way to manage running processes, and too many gimmicky things are chewing up too many processor cycles.
Apple wants to avoid this from happening, and not allowing background apps at all (along with vetting every application that you release via your online store) is a quick way to accomplish it.
That doesn’t mean the problem cannot be solved in a different way. You can sandbox applications, giving them only (very) limited access to the phone’s resources, accounted for on an hourly basis, for example. A background app that eats about 5 seconds of full power CPU time every 2 hours doesn’t do much harm. You can also allow apps to exceed the limits (or even allow them to go into the background in the first place) after asking the user. In order to avoid the ‘endless security popups’ fiasco that Microsoft Vista suffers from, you can hide an option to even allow apps to ask in the first place somewhere deep in the settings. Geeks will find it, and when mere mortals see the cool things you can do with background apps, the rest will follow.
Fortunately, there is such a thing as a roadmap. Just like it seems reasonable to believe that the iPhone was always meant to have an SDK, but that it is being rolled out in phases, there is no proof that apple has already decided that background apps will never happen. Perhaps they want a few more months to get it right. Releasing new features over time is after all a much better idea compared to toiling away for years and then releasing it all in one go.
Consider this post a fine reason to start asking for an extension to the iPhone SDK, just in case this isn’t on apple’s roadmap, in other words!
