iOS 4 limitations: Multitasking saves state, doesn't check for timeline updates
We've had a few TiPb readers ping us to ask what's going on with timeline-based apps like Twitter, IM, RSS, etc under iOS 4 multitasking -- specifically why they aren't updated or updating any more when they open. The answer is the current timeline update conundrum.
First, it's important to remember that Apple didn't include background timeline updates in their multitasking API. Apps can stream music, they can wait for VoIP activity, and they can handle location for navigation or check-in, but they can't update your Twitter, IM, or RSS the way Apple's own Mail app can. Apple's SVP of iPhone Software, Scott Forstall said they prefer iOS handle that via push notification instead.
Push notification is fine for alerting you that a new update (tweet, IM, article, etc.) has come in, but when you launch the app -- because of the lack of background timeline updates -- the app has to then check back with the server and download every update since the last time it ran.
Under iPhone 3.0, this was handled by most apps when you launched them (some more quickly than others). Under iOS 4, however, apps now save state and restart from where you last left them. And therein lies the problem -- many apps aren't checking for updates because they haven't been relaunched, they've just been continued from their last saved state.
No relaunch, no check for updates.
UPDATE: per comments below, tweets, and emails, developers are telling us that apps can, in fact, be coded to check for updates when they return to the foreground and that it's not overly difficult to implement (and some apps are indeed implementing it).
If that's indeed the case, the question becomes: why is the only solution in many of our favorite timeline apps still a manual refresh? (i.e. trigger the reload action by tapping a button or other gesture, sometimes backing out a screen or two to get to a place you can do it -- which defeats some of the benefit of saved state.)
Do we need to start a "naughty and nice" list for this functionality?