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

Slippery slopes

Federico Viticci plays a good devil’s advocate to my post from yesterday:

Imagine if every app in the Store went free, and started billing users periodically for “usage”. That would create an unrealistic ecosystem of free apps with in-app subscriptions for all kinds of content. …

What if every developer of every app starts implementing background downloads for remote content? Even once per day, for every app, it can be a lot of data. And when you add data caps to the mix and start imagining games that can download new levels remotely on 3G…not good.

Slippery-slope worries like this are definitely one reason why some of these new features are restricted to only a handful of apps by policies or bundling. (I’ve had multiple Apple engineers tell me as much at WWDC.)

But similar worries applied to previous features that are now available to everyone, such as multitasking. What if every app could run in the background indefinitely? That would cause problems (just ask any Android user). To prevent bad situations for users but offer some helpful functionality to apps, Apple used the tools at its disposal: technical limitations, implementation rules, and app review.

The same tools are already in place with auto-renewable subscriptions and Newsstand Kit’s background downloads. Autorenewing subscriptions are all centrally listed and can be easily canceled (once the user figures out where they are, which is suspiciously difficult to find). And with the exception of that automatic renewal, they’re just like other in-app purchases, which haven’t destroyed the ecosystem of free apps.

Newsstand Kit’s background-wakeup push notification can only fire once a day, and background NKAssetDownloads only work if the device is on Wi-Fi and has a healthy battery charge. So give all apps the ability to receive that background-wakeup push notification once a day, as long as the user has granted them permission to use push notifications. Then let them update or download whatever they can do in the 10 minutes that they’re allowed to run in the background. And if the system decides to terminate them during those 10 minutes for any reason, that’s fine, too.

Even without NKAssetDownloads, and even if Wi-Fi was required, this would be a huge benefit. Unlimited-time NKAssetDownloads are only required by magazines because so many of them are ridiculously bloated at hundreds of megabytes per issue, but a huge class of apps could download everything they need in a few hundred kilobytes over a few minutes, at most.

App review already prohibits misuse of background execution, misuse of push notifications, excessive data throughput over the cellular network, misleading use of in-app purchase, and misleading descriptions. Apple already has all of the tools required to prevent features like this from being misused.

A slightly related rant on subscription policy

One final note: Currently, auto-renewable subscriptions can’t be used to provide an ongoing service, even though services usually have incremental costs for each user. But they can be used to provide periodical content that the user never sees and that has an incremental cost of zero. That seems perverse and backwards to me. Can anyone make a good argument against allowing auto-renewable subscriptions for services, but that doesn’t also apply to periodicals?

Auto-renewable subscriptions were obviously a huge cave-in to the big media players. Maybe Apple won’t let anyone else use them because Apple thinks they’re universally bad for users, and they want to limit use only to important media companies that wouldn’t otherwise support iOS (which would be a great fit for my Bullshit list).

Just a thought.