Earlier today PCalc developer James Thomson was advised by Apple that he'd have to update his app to remove its Today view widget functionality. This comes over a month after PCalc, with exactly that functionality, was approved by the App Store review team and featured by the App Store editorial team. So, what happened?
This is far from the first time an app has been un-approved, either in whole or in part. It happened with app launchers-as-widgets a few weeks ago. It happened with multi-window workspace apps when the original iPad launched. It happened with tethering apps in the early days of the iPhone. In PCalc's case, it's happening because Today view widgets on iOS were never meant to contain full apps.
For anything more than short bits of glanceable information or quick interactions, they're supposed to kick people out of Notification Center and into the app proper. Here's how Apple describes them in the developer documentation:
App extensions in the Today view are called widgets. Widgets give users quick access to information that's important right now. For example, users open the Today view to check current stock prices or weather conditions, see today's schedule, or perform a quick task such as marking an item as done. Users tend to open the Today view frequently, and they expect the information they're interested in to be instantly available.
For most widgets, the line is incredibly clear. The vast majority of apps couldn't fit their core functionality into a widget even if they tried. A headline, a status update, a like, a share, are all examples of what's meant to be in Today view widgets.
Calculators are nowhere nearly as clear. They've been widgets on OS X for years and remain so today. On iOS, however, Apple didn't put their own calculator widget into the Today view. Still, for PCalc, it was technically possible. Its core functionality was light enough, and its developer smart enough, that it could be squeezed into Today view. The line was blurred.
Because it could fit in Today view is probably why PCalc's widget made it through App Store review and got featured by App Store editorial. (It's worth pointing out those are two separate things — App Store review, like developer relations, falls under SVP of marketing, Phil Schiller, while App Store editorial, like App Store management, falls under SVP of services, Eddy Cue.)
During an iOS launch, it's hectic for both developers and Apple. Developers know that if they showcase Apple's new, tent-pole technologies, they're more likely to get featured on the App Store, which is among the very best ways to boost their downloads. At the same time, developers have also come to learn that if they implement new, tent-pole technologies in ways Apple didn't expect, they risk rejection, either immediately or at some point in the future. That creates tension.
Meanwhile, as much as developers race to get their apps submitted in time for launch day, the App Store teams race to get all the apps reviewed and all the new features programmed in time for them to go live alongside the new version of iOS.
That might be why it took Apple over a month to determine that just because PCalc could fit into a widget didn't mean it should. (My guess is that the time is also an indicator that the decision wasn't hasty or arbitrary, and that the ramifications for everyone were considered before the call was made.)
To be clear, this absolutely wasn't a case of Thomson trying to get an app approved that shouldn't have been, nor of the App Store team trying to hurt a developer and his livelihood. It's a case of a blurry line, and it's a situation that's bad for everyone — for Apple, because it gets them bad press and strained relations, for developers, because it costs them time, money, and faith in the system, and customers, because apps and features we like disappear on us.
It could be argued that Apple needs to communicate better, sooner, so that developers who come anywhere close to the line, blurry or not, get waved off long before their apps hit the store. However, at the App Store scale, and considering how Apple runs it, that simply won't be possible for all apps, all the time. (When Apple says what developers do with their frameworks sometimes surprises them, that includes implementations they simply didn't foresee.)
It could be argued that edge-cases should be flagged during the review process and kicked upstairs so a determination can be made and a policy set before any apps hit the store. However, again, not all edge-cases can be foreseen, and if too many flags get raised to often, the already lengthy review process — especially during the already insane iOS release cycle — could become untenable.
It could be argued that once an app is approved it shouldn't be un-approved, and should instead enjoy an exemption to whatever policies are later put in place. However, that could also be considered unfair to apps that simply didn't get into or through the approval process as quickly, and result in one app being allowed to do what its competitor is not, creating a whole range of different problems.
It could even be argued that what Apple truly needs is a dedicated, high-profile, passionate, engaged, empowered, VP of App Store, whose one and only job would be to collect and bring together the various parts and make an even stronger, better whole. Given how much revenue the App Store is generating these days, it could absolutely be worth the attention. However, that's not the world we currently live in.
I've been a PCalc customer since the day it launched in 2008. I've been on the beta at times, and I downloaded the iOS 8 version the day it launched. I love the widget. I swipe down, type in the numbers, and then get on with whatever else I was doing, and I've barely had the need to launch the app itself in weeks. Losing it will put a severe cramp in my workflow.
Yet the reality remains that Apple currently doesn't want full-featured apps in the Today view, including their own iOS calculator. Disallowing that, unfortunately, means disallowing PCalc. Because, if a functional calculator is allowed, why not a Twitter client, or a music player, or a note pad, or so on? The framework was just not designed to support it.
Apple could always change their mind at some point. It's happened before. All sorts of apps are on the App Store now that weren't allowed in the past. This is also Extensibility 1.0. The very first version. It will no doubt grow and expand its capabilities over coming years and versions.
For now, however, anyone considering a widget for the Today view would do well to keep it light, and to keep information and interactions glanceable and quick.