iCalvin.org

Drink Keeper 2014-2017

I’ll try TLDR: After nearly three years on the App Store it looks like IDrink Keeper has seen it’s last update, and it’s not the one I would have wanted to end on. App Review reps over phone confirmed that the team is using new internal rules that aren’t exposed to the public specifically around Blood Alcohol Concentration calculators. I’ll be appealing but they seem pretty sure that this rule won’t be changing. Will look into open source distribution.

I started Drink Keeper while looking at the HealthKit documentation the summer of the iOS 8 beta. I hadn’t heard of any apps being announced to write that particular sample set, so I set about doing the research to get it done. It actually started just as a sample project to read weight data from HealthKit, and to this day the bundle id is still com.calvinchestnut.ReadWeight, which never frustrated me enough to actually change it.

A few months later I got it out the door, was actually making money from an app for the first time, and I was taking advantage of a cool new iOS feature on day one. It was awesome. Then in November when WatchKit was released I started to make the Drink Keeper watchOS app, mostly as a way to learn this new framework and the restrictions of the Apple Watch, but it had the extra benefit of making my app more competative.

As I’ve written elsewhere Drink Keeper didn’t stay as much of a priority as I would have liked once I started working. I had other side projects I would work on from time to time, but mostly it was hard to motivate myself to come home and open up Xcode after the a whole day of working in Xcode. It was nice, though, to have Drink Keeper as a project to keep coming back to, on vacations or during WWDC season to explore new APIs.

Once I started at Robin and wasn’t working in Xcode much anymore I turned back to Drink Keeper as a way to keep my iOS skills sharp. For the first time in two years I actually had some good momentum on the project and was gearing towards a solid new release. WWDC rolled around, I started the final touches, put together some marketing materials and a few blog posts, drafted up emails to a few websites that cover indie Apps, and submitted.

I got the first rejection within six hours of submitting. “Guideline 1.4 - Physical Harm. Your app is marketed as a blood alcohol content calculator but does not have associated hardware to perform these calculations accurately.” Guideline 1.4 broadly states that if your App risks physical harm it may be rejected. I felt like they must be talking specifically about 1.4.1, which says that medical apps that could provide inaccurate data will be reviewed with “greater scrutiny,” an umbrella which Drink Keeper technically falls under. There is a bullet point that specifies that “Apps must clearly disclose data and methodology to support accuracy claims relating to health measurements, and if the level of accuracy or methodology cannot be validated, we will reject your app.” That sounded fine to me, I could certainly take some scrutiny, I felt pretty good about my methodology. So I wrote up a response with a few links explaining my calculations and resubmitted, explicitly stating that I believed Drink Keeper to be compliment under 1.4.1.

I got the exact same message in response.

I want to be clear, I’m not trying to bash the App Review team. I much prefer the App Store to be a curated market, where things like accuracy are highly valued, especially when it comes to medical apps. It must really suck for these teams to rarely get any recognition for when they do things right, and to be so heavily criticized when things go wrong.

My problem is that when I made a point to make my case, and explicitly cited the rule I believed myself to be compliant under, cited sources and such, they didn’t respond like a human. They just determined that I was still not compliment and didn’t tell me any new information other than “Read 1.4 and use hardware.” When I made a stink they offered to give me a call sometime in the next few days, solidly taking away any chance of being on the store on iOS 11 launch day.

Well I got the call yesterday. They said that there was some new internal guidance specifically around BAC apps, and that any ones having updates submitted would not be approved now. Accuracy of algorithms and sources cited be damned, this was the new law of the land on the App Store. And I can appreciate that. I certainly wish that were what I was told on either of my rejections in the first place, but oh well.

I’ll probably be making an appeal, mostly because I don’t want to give up so easily on an App I still really love, but I don’t honestly expect it to go too far. I do think that I have solid facts on my side, but at the end of the day “Apple’s house, Apple’s rules.”

As for what happens now, if the appeal doesn’t end up going through I’ll be pulling Drink Keeper from the store. I could just leave it up and hope that people keep giving me a few dollars here and there, but the current live version isn’t something I’m particularly proud of in 2017 and I’d rather just scrub it. This also clears me up to work on some other projects with more focus, now that I won’t have to completely rewrite the Drink Keeper watchOS app.

If I do that I might end up throwing the project up on my GitHub, just to have a recent iOS app in my portfolio now that it won’t be making me any money, but I’m pretty reluctent to do the work that typically comes with open sourcing a product. I can’t find the episode number at the moment but Marco Arment had a good segment of Under the Radar where he talked about many of his complaints about open sourcing a project, and I completely agree there.

So that’s the update. Certainly a bummer, but at least I have some clarification now, and there’s always hope for the appeal. Wish me luck.