I’m : a programmer, writer, podcaster, geek, and coffee enthusiast.

iPhone multitasking and background updating

One of my most common feature requests is for Instapaper to periodically download articles in the background. A lot of people forget to launch the app to let it download content before going underground or boarding a plane.

I’ve already received multiple emails from people who are excited for iOS 4’s multitasking because they can’t wait for this to finally stop being an issue, because they think Instapaper will be able to download articles periodically in the background.

It’s painful to respond, crushing their hopes, to tell them that the iOS multitasking system doesn’t allow me to do that.

By naming these features “multitasking”, Apple has set customers’ expectations to include what apps can do in a traditional computer multitasking environment.

It’s going to mislead people into expecting such behavior from apps, but we can’t actually deliver most of it.

Some people will notice that no apps can do these things and properly focus their disappointment on Apple. But many others will only notice the shortcomings in one particular app that they need to do the “impossible” and blame that application, leading to dissatisfaction and negative thoughts about the app.1

As long as iOS “multitasking” can do much less than traditional multitasking — which will probably always be the case — this is going to be an issue.

Proposed solution: A new multitasking type

The addition of one more multitasking service would solve this issue for a lot of application types: a periodic network request. Here’s how I would do it:

Executing the request “whenever it deems that it should” is important. iOS can decide, for instance:

This would allow Instapaper to download updates in the background, and would also greatly benefit RSS readers, Twitter clients, chat programs, weather and news widgets, and a huge number of other applications that currently can’t get much benefit from iOS’ multitasking.

  1. I saw this effect when people would email me to ask if I could please remove the scroll-to-top feature when they accidentally tapped the status bar. They didn’t realize it was a system-wide gesture that I couldn’t disable. I had to get creative↩︎