Diary of a bug in an iOS app
Last week we released version 2.9.2 of WordPress for iOS, and it had a terrible bug which killed the ability to paste text from other apps, which is probably a critical feature for a blogging app.
We should have done a better job at testing it, but somehow the bug escaped our tests and it got released. Most of the feedback on the forums was perfect: users concerned that they can’t use the app properly, but understanding that it can’t be fixed overnight.
But then this happened:
It is unacceptable that I STILL can not use the iphone app. It’s been DAYS! Fix the PASTE issue!!!
Well, it’s definitely unfortunate, but here’s how it goes:
- Dec 5: 2.9.2 released on the app store
- Dec 6, 6AM: first report on the forums
- Dec 6, 11AM: after some testing, it’s confirmed that 2.9.2 broke copy/paste and it’s not an isolated problem.
- Dec 6, 1PM: Went through the list of changes for this version and the only thing that made sense was an update to the Flurry library (used for stats/analytics). Emailed Flurry support to ask if they had similar reports or know how to fix it.
- Dec 7: no reply from Flurry yet, we decide to remove the Flurry library from the app.
- Dec 8: still no reply. Removed library, prepare a new build and test it.
- Dec 9: submitted 2.9.3 to the App Store
- Dec 11: Apple approves 2.9.3. That’s new, I didn’t know they work on Sundays, but I won’t complain :)
- Dec 12: released 2.9.3 on the App Store
Looking at that timeline, there’s always room for improvement, and we could have just skipped waiting for Flurry to reply (no word from them yet), and remove the library from the app directly. But even then, I’d say 2 hours from noticing a bug until we know what’s wrong and how to fix it is not that bad. Most of the times the bugs are way more obscure and hard to find.
If you’re lucky, 2 business days is the usual wait time for a bug fix release to be reviewed and accepted: I was expecting it to be published on Tuesday (Dec 13).
Goodbye Flurry
I don’t think we’re going back to Flurry after this. It’s enough trouble debugging against a proprietary framework (iOS SDK) to add another binary library to the app.
The problem here was that we had to update the Flurry library, since the old one was getting the app rejected by Apple. And the new one first broke our build server: it needs the 4.3 base SDK and we were using 4.2. And then this.
Plus, I think it collects way more data than we’re interested in. In the end, we want to know how many people is using the app, and what features are more interesting to people. Also, at some point, which kind of devices/versions users have, to know when we can drop support for older platforms.