75: Big, buggy apps

The top grossing app on the US App Store probably shouldn't have passed app review. There, that's my hot take on Pokémon Go. (If you've had your fill of those already, feel free to skip to tomorrow, but this is more about the iOS app than the gameplay or the phenomenon.)

I'm not the only one who feels this way. Sarah Jeong, who tweeted under the name "a literal Psyduck" for months and therefore has some Poké-cred, made her New York Times debut (congrats!) saying that Pokémon Go is "the most horribly designed app I’ve ever been obsessed with". It's 100% true. Even setting aside the expected fail whale–esque server crashes, the 1.0 client was a garbage heap of hacks. (This continues a fine tradition dating back to Pokémon Red and Blue, which were miserably programmed. Even regular users noticed memory corruption glitches like the Rare Candy trick and Missingno. Watch a tool-assisted speedrun if you want to see shoddy coding utterly dismantled through nothing but button presses.)

The app's flaws were apparent on initial launch, which reliably took a full 30 seconds on my iPhone 6. That's slower than it takes the phone itself to boot, and is an egregious enough performance issue that any other developer's app would have failed review then and there. Responsiveness is a hallmark of iOS, and this app is anything but. Once using the app, it occassionally bugs out and stops accepting touch input; these aren't hard crashes, since animations keep playing. And speaking of animation, the game is 3D-intensive but clearly doesn't take advantage of Metal or any other GPU optimizations. It can blast through battery on the pace of 1% per minute, another strike at app review.

Is that bad?

Is that bad?


I figured that Pokémon Go must be common, cross-platform code inside a light iOS wrapper, until the news that its massive OAuth security bug was iOS-only. Kudos to Niantic, who jumped on that issue and rolled in a bunch of other fixes in the app's first update. There's no doubt that Apple worked with them closely to expedite the process, as they absolutely should have. Niantic is essentially Apple's largest customer right now, sending 30% of their Pokécoin proceeds to Cupertino. They deserve special attention, and they're not abusing it. App launch times are way, way down — likely under pressure from Apple and users. Some but not all crashes and hangs are fixed. And the big security hole was plugged.

In accepting version 1.0 of Pokémon Go, Apple made a calculated business move. The cross-platform release date had been announced, and Apple couldn't be left out. Now that it's here, they can demand the best from its developers. That most benefits Apple and all their Pokémon-capturing users.