So a new app for the App Store was rejected for using private APIs. Let’s see if I can get in front of this before all of the “OMG!! Apple wrongly rejects another iPhone app!!” articles begin to appear. Please keep in mind that none of this is meant to disparage the app itself, which appears quite nice.

In truth, the app does not use any private APIs. Rather, the developer built his own implementation for displaying and swiping pictures that looks just like Apple’s Cover Flow. If you look at thedemos, you’ll see that it appears to be a very good copy of the CF effect. Given that, I can almost agree with the developer when he says:

I suppose I should be flattered that Apple mistook it for their own implementation

Certainly, the nice implementation had something to do with it. But maybe there was some other factor at work? You know, like the fact that the developer claimed it was Cover Flow!
Let’s take a look at a portion of the app’s description taken from its web site (emphasis mine):

Rotate your phone to morph into Cover Flow. Just like album art in iTunes, you can scan through photos with the flick of a finger…

Right there, it blatantly says the app is using Cover Flow. Contrast that to the initial description that simply calls it an “animated photo album.” So, let’s see, we’ve got an app that says it uses Cover Flow, it’s implemented like CF, and certainly appears to be CF, so the app gets rejected for using CF. Is this really a surprise? It may have been an honest mistake, but it wasn’t wise to claim use of a specific Apple feature that isn’t being used.

Should Apple be digging through the code to verify this? Even if it does so on some occasions why should this be one of them? The developer says he’s using Cover Flow. Besides, Apple might take exception to using the term “Cover Flow” when in fact it’s something else.

It seems to me the developer should have named the feature, parenthetically mentioned that anyone familiar with Apple’s Cover Flow will know how to use it, and then referred to it only by whatever name it was given, never mentioning Cover Flow again. Would this have meant acceptance in the App Store? I don’t know, but if not, the developer might at least have a point about being rejected. As it is, there’s no point in complaining about being rejected for using a private API he claims to use.