Sunday, June 3, 2012

Instapaper Background Update Locations

Marco Arment:

iOS doesn’t yet permit apps like Instapaper to automatically download new content in the background on a regular schedule, but Background Update Locations can get most of the way there for a lot of people. Simply add up to 10 locations that you enter and leave often, and Instapaper will frequently update without manually launching it.

According to Apple, it’s not OK to let the user set a predictable schedule for downloading new content. But it is OK to have a more complicated user interface, and needlessly fire up the GPS chip, to produce a semi-predictable schedule. Meanwhile, the built-in Mail app can check for new messages on a repeating schedule, but third-party apps cannot. See also the background music kludge.

5 Comments RSS · Twitter

I really want background data in third party apps, but isn't it worth acknowledging what a tricky problem this is for Apple to solve? I don't find this criticism useful without exploring the issue. Battery life very quickly becomes an issue if apps can silently pull data at set intervals when they're not running. Cost becomes an issue too, as mobile data plans have fairly low data caps.

If users found their battery drained every day and large cell phone bills at the end of the month simply because they had installed a bunch of apps, the iPhone would have a similar problem to Windows circa 2000, where systems become unusable once too many apps are carelessly installed.

Power users know enough to avoid the situation. Normal users would have no idea what's going on. We all know the audience apple caters to, and rightly so. App developers would also be in a bind if users lost trust in being able to freely install apps.

There will hopefully be some form of background data available to third party apps in the future, but there are significant technical and UI challenges to solve. In the meantime, clever hacks like Marco's, by their very nature, ensure a very limited and self selecting audience. Let's hope iOS 6 brings a system-level solution that scales.

Also worth noting regarding your comment about firing up the gps chip - Apple has implemented an extremely low power method of geofencing. This has already been explored when location based reminders debuted and older iPhones did not gain support. It's apparently due to some clever power saving combination of hardware and software. The end result is that, as Marco mentions, battery life doesn't take a noticeable hit.

@Nigel I think there are ways that Apple could handle this so that it wouldn’t be a problem in most cases. For example, it could require that the user opt in, keep track of which apps are using lots of background CPU or bandwidth, provide a global off switch, etc.

Apple already allows a GPS app that drains my battery over the course of an afternoon when it’s supposedly turned off. So, in my view, the current system isn’t fully protecting the user anyway.

I don’t really find the bandwidth/cost argument persuasive. Personally, I only use about 1/10th of the bandwidth of the cheapest plan. Most of the time I’m on Wi-Fi. And there are at least 60 million iPod touches (not to mention iPads) out there that only have Wi-Fi—and thus probably have free bandwidth. Many of these devices have frequent access to chargers, making the battery life less relevant.

In fact, the Wi-Fi case seems to highlight a problem with the location-based stuff. When my iPad Wi-Fi is at home, charging in its Dock, it isn’t allowed to periodically check for new Instapaper stuff. If I then take it somewhere with me, presumably it will want to download just as soon as it gets out of range of my Wi-Fi and goes on battery power—and then it’s too late. Likewise, it would ensure that my iPhone does more downloading over 3G than necessary. (In reality, I usually read Instapaper with a Wi-Fi Kindle that downloads new stuff automatically.)

Those are some practical points. Philosophically, I just think it’s wrong for the OS to make this sort of decision, and the point about firing up the GPS chip was along those lines. It’s great if it’s efficient, but it’s still unnecessary.

John Barker

Instapaper uses the geofence API which doesn't make use of the GPS radio (it relies on cell towers) therefore making it VERY efficient and having barely any effect on battery life.

Apple makes this distinction very clearly in the menubar; when the location icon is solid, your GPS radio is actively in use by some application; when it is an outline, the geofence API is being used.

@John Thanks for that info. Jason Snell also mentioned this. Does this mean that the geofence API doesn’t work in areas with no cell service?

Éric Trépanier says that geofencing, and thus this Instapaper feature, is disabled on Wi-Fi-only devices.

I'm sympathetic to what an issue this is for Apple and battery life (as well as other possible concerns, like stacking up bandwidth use and storage etc) but it's hard to imagine how the fencing is less problematic than having a fixed time. If the cellular devices can spare the 'attention' to monitor cell handoffs then they can cope with a timer.

If this was a device that truly 'slept' and Apple was saying that only responding to a hardware interrupt was acceptable, fine, but that defies my understanding of the phone's cellular tower behavior.

Leave a Comment