FunBITS: Overglide Pushes the Limits of iOS 8 Widgets
Since authoring “iOS 8: A Take Control Crash Course,” I’ve been obsessed with Apple’s actions surrounding widgets in iOS 8’s Notification Center.
In some ways, it’s like the halcyon days of the App Store all over again, with the same possibilities and challenges. On one hand, we’re seeing innovative widgets like PCalc and Neato (see “Neato Adds Note Taking to iOS 8’s Notification Center,” 12 November 2014). On the other, Apple is cracking down on such widgets seemingly at random. Apple initially demanded the removal of PCalc’s widget before changing its mind (see “Apple Demands Removal of PCalc’s Today View Widget,” 29 October 2014), and then flip-flopped again and told the developer of Neato to
remove his widget.
Meanwhile, a new game has slipped into the App Store with little fanfare: Overglide by AA Mather ($0.99). On its own, Overglide is nothing spectacular — it’s yet another Flappy Bird clone. What’s interesting is that you play it in Notification Center instead of the app.
Once you’ve enabled the widget, you start a game by tapping on it. The game begins with a paper airplane sinking toward the bottom of the widget. You have to press inside the widget to help the plane gain altitude. But if you hit the ceiling, floor, or an obstacle, the game is over, so you must constantly press and release to keep the paper plane from crashing. If you’ve played Flappy Bird or any of its countless imitators, you already know how it works.
As with PCalc and Neato, I’m amazed Overglide made it past App Store review. Is a game like Overglide even allowed? Here’s what Apple’s App Extension Programming Guide has to say:
Keep in mind that the GPU is a shared resource in the system. App extensions do not get top priority for shared resources; for example, a Today widget that runs a graphics-intensive game might give users a bad experience. The system is likely to terminate such an extension because of memory pressure. Functionality that makes heavy use of system resources is appropriate for an app, not an app extension.
I’ve been fascinated by this paragraph since iOS 8 debuted. I see a few ways to read it:
- Don’t put games in widgets.
- Game widgets are OK, as long as they’re not graphically intensive. A puzzle game like Sudoku would be acceptable, but not something like Angry Birds.
Graphics-intensive game widgets might be OK, as long as they’re coded carefully to minimize resource usage.
Based on the fact that Apple allowed Overglide in the App Store at all, I’m guessing that reviewers are working from the third interpretation. But I wouldn’t be surprised if Apple turned around and removed Overglide from the App Store, or asked the developer to refactor the app without the widget.
Due to that confusion, I’ll repeat what I said in “Apple Demands Removal of PCalc’s Today View Widget” — Apple needs to publish clear guidelines on what widgets can and cannot do.
My guess as to why that hasn’t happened is because Apple isn’t entirely sure yet. Apple wants to ensure a pleasant experience for its users, but at the same time it doesn’t want to stifle developer creativity. But by not publishing clear guidelines, Apple is already stifling the potential of widgets. If I were a developer, I’d be leery of investing resources into a cutting-edge widget only to have Apple remove it forcibly from the App Store a month after release.
However, Apple’s reversal on PCalc’s widget shows that the company might be willing to give developers a bit more freedom. That’s as it should be, particularly in the case of widgets. Today View widgets require not only the installation of an app, but also manual activation by the user in Notification Center. No user is being fooled into installing a widget. As long as users have full control over installing and disabling widgets, I don’t see a problem with giving users and developers choices. Isn’t that what iOS 8’s extensibility is all about?
As for Overglide, its widget works flawlessly on my iPhone 6, creating no apparent performance issues. Other than being incredibly frustrating (just like its inspiration, Flappy Bird), it plays surprisingly well in Notification Center. While Overglide offers nothing new in terms of gameplay, I like the idea of having a quick diversion right at hand in Notification Center. Hopefully Apple allows it to stay there.
I can see Apple's concern about these widgets. First, there's a security concern. Showing the weather is okay, but what about a widget that shows your bank account information? Plus, if something is a widget, is there control over using background processing or GPS tracking? And, there's a performance issue. Apple doesn't want the INIT disaster of System 7. Tossing everything in a notification widget hurts phone performance and could cause instability. Will the notification center crash with too many widgets?
"As long as users have full control over installing and disabling widgets, I don’t see a problem with giving users and developers choices. Isn’t that what iOS 8’s extensibility is all about?"
That reminds me of nothing so much as the defense of haxies (and before them, INIT's, as mentioned). Yes, many power users ran haxies and INIT's with reasonably full knowledge of the kind of chicanery they were pulling behind the scenes to work their magic. But I'd be willing to bet that they were a small fraction of the users who ran them because they did cool things, not realizing the potential for conflict and instability they brought.
In other words, 'giving users a choice' that way is only meaningful when the user really understands the consequences of what they're trying to do. Without that, Apple would be opening themselves up to users who put a fancy widget in, have their battery life drop 30%, and then blame Apple.