Are you as tired as I am of Apple's shenanigans related to approving and rejecting App Store apps based on reasons that are bizarre or don't make sense?
I present a super-sized rant about what's wrong with the process and what Apple could do to fix it:
You may already be familiar with Google Voice, a popular service from the search giant that connects your various phone numbers by unifying them behind one central number that also includes voicemail functionality. Google recently created an iPhone app that made it easier for users to incorporate their iPhones into their Google Voice account; Apple approved the app for the App Store, and several users purchased the Google Voice app and were pleased with it. Briefly.
Then things went wrong. Apple retroactively removed Google Voice from the App Store, stating that it "duplicated built-in functionality" on the iPhone. (Google's requests for clarification of this reasoning were denied.) Users who had already purchased the app were upset that they had purchased a product that had essentially been discontinued, and Apple refunded many of their purchases. For each refund, Apple debited Google's account for 100% of the purchase price of the app... even though they only give 70% of the purchase price to the developer when the app is first purchased.
Anyone who wants to develop iPhone apps has to be a member of Apple's Developer Connection, which costs several hundred dollars per year. So once a developer has paid this initial cost, they can develop an app and submit it to Apple. Apple might approve it, but they also might reject it outright or even accept it and then later retroactively cancel their approval and take even more money from the developer. Any form of denial means that any time or money you put into developing the app goes to waste, and Apple's rejections can pretty much be based on any reason they want, or no reason at all. This raises a pretty obvious question: Why would any developer ever agree to this??
Apple's response would probably be to point out that countless developers are indeed putting up with their system, since the App Store has millions of apps to choose from. But it might not be that simple... it might only take one major player standing up to Apple for other developers to start realizing that iPhone development is simply not worth their time, because of Apple's unfair approval and rejection policies.
Google just might be that major player, since they have stated that as a result of the Google Voice fiasco they will be decreasing the resources allocated to iPhone development since they can't afford to invest time and money into a product that could end up being worthless simply because Apple says "no." Until now, Google has been amazingly generous to the iPhone, considering it is a direct competitor to their own Android operating system (as you may remember from my "Googality" blog), but losing or weakening Google's support would almost certainly be a big mistake for Apple. And even if Google's own actions aren't enough to make other developers think twice, apparently Apple's actions regarding Google Voice have been so outrageous that the FCC has already launched an investigation that could potentially force Apple to change its App Store policies.
So let me look at this a different way: how exactly should the App Store approval process work? So far, Apple's rejections have generally fallen into one of the following three categories:
1. Programs that pose a security or stability threat to the iPhone itself or to the carriers' networks.
Obviously, this one is a fair reason to reject an app. However, any time Apple uses this reason to reject an app, they should have to demonstrate to the developer how their app causes specific security or stability concerns that would not be present without the app.
2. Programs with offensive content.
For the most part, I don't think Apple has any right to decide what is offensive and what isn't. It would be better for apps simply to list any potentially objectionable content they might contain (like most apps already do), and let the users decide for themselves if that content is offensive.
This category should not be abolished entirely, since almost no one wants to see another "BabyShake" or other program that takes poor taste off the deep end, but Apple should minimize their use of censorship and let individual users be responsible for the types of content they choose to download.
3. Programs that duplicate built-in functionality of the iPhone.
This category really only needs one adjustment: chuck it.
On the surface, Apple overtly stating that other developers are not allowed to address the same functionality as Apple software is even more anticompetitive than Microsoft's attempts to force Internet Explorer on Windows users (which you may recall got Microsoft in hot water in Europe). Stating "we just don't allow competitors" is a monopolistic tactic that may be illegal by virtue of that alone.
But beyond that, there is actually an even bigger problem with this category of rejection: it's completely meaningless. The iPhone OS has a built-in notes app, so theoretically any app with text input could be called "duplicating an aspect of built-in functionality." The iPhone OS has the iPod app built-in too, so theoretically any apps that play music or videos could be flagged as duplicates too. Apple has been very inconsistent about what constitutes a duplicate, and the enforcement has been all over the map (note that they seem to have no problems with all the voice note apps even after they built their own voice note app into OS 3). In short, you could argue that the "duplication" clause applies, or does not apply, to practically any app in the world, making this reason a blank check for Apple to delete anything they want.
How it should work
Apple should only reject App Store submissions because of reasons (1) and (2), and they should be required to provide developers with the specific reasons behind their decisions. An appeal process for Apple's decisions should be available, preferrably presided over by a neutral third-party. Apple should avoid retroactive rejections at all costs, and in order to deter Apple from doing this and encourage iPhone developers, I would recommend that if Apple does choose to issue refunds due to a retroactive rejection, they should pay for it out of their own pocket and not debit any money whatsoever from the developer.
There have been (valid) complaints about the App Store process from a wide variety of sources. These complaints tend to legitimize "jailbreak app stores" and even deter people from buying an iPhone in the first place. Apple needs to implement an approval process that is consistent, specific, and fair, or else things are likely to go from bad to worse.
-------------------- Chief iPod Correspondent
Senior Time Waster
Captain of the Planet Express
Assistant Jedi Librarian