Why I’m not developing iPhone applications
When the iPhone SDK was announced earlier this year, I downloaded it right away and was very excited to see all the potential stuff that could be done. That initial excitement has slowly given way to the full realization of the terms dictated by Apple for distributing apps.The first restriction is, of course, that you must distribute your application through Apple's App Store and iTunes, and Apple gets a 30% cut for their efforts. That part actually isn't totally bad, since you do get a lot of benefit for being listed on the store without having to deal with any of the setup or maintenance. Sole distribution through iTunes helps with the integration that gives the iPhone such a good user experience, and 30% isn't an unreasonable cut for Apple to earn on each sale.The real problem though is the fact that Apple is the sole arbiter of what applications get accepted and rejected from being listed on the App Store. This would be somewhat bad if there were a concrete set of guidelines that said what was and wasn't acceptable for inclusion. There are some rules outlined in the SDK agreement, but there are apparently also a lot of other "unwritten" rules that are governing Apple's decision on whether to accept a specific application. Apps have been denied/pulled for UI compliance reasons, for resource usage, for "taste" (e.g. the "Pull My Finger" app), and for no particular reason other than some vague assertion of "usefulness" (e.g. the "I Am Rich" app which cost $999 and did nothing).The latest app to be rejected takes things over the top, though. Podcaster, an iPhone app designed by Almerica, was rejected by Apple because it "duplicates the functionality of the Podcast section of iTunes". Forget the fact that this isn't even functionality that's only on the desktop application, iTunes. What Apple's saying here is that they can claim exclusive rights to ship applications for certain domains of functionality, and reject any third party application that tries to compete in that area.Want to make an e-mail application for the iPhone? Too bad! Apple's already got one, so you can't duplicate that functionality. Music player? Nope, sorry, can't do that either. Or what if, for example, you already have an application selling on the App Store, and then in a software update, Apple decides they want to offer similar functionality. Can they then boot your app from the store, since it's duplicating what Apple's done? And what does this do for the power of competition among iPhone applications? It's a very chilling effect.Now, it's perfectly possible that this was a one-time screw up by one Apple reviewer. I really really hope it is, and that Apple clears this up as soon as possible. But regardless of what happens in this specific instance, the real problem here is that there is no clear and definitive list of rules for what will and won't be accepted to the App Store. Even internally, Apple doesn't seem to have one, since some apps are rejected for a particular reason, while other apps are accepted that could have just as easily been rejected for the same "offense".Before I even think of sinking time into developing an iPhone application, Apple needs to come out with a published (at least to developers who agreed to the SDK terms, if not fully public), detailed description of what criteria an application has to meet to be included in the App Store. Then, of course, they need to apply those guidelines consistently across all applications submitted for approval. Neither of these things is even close to being done now, and I for one am not going to invest time in developing an application without knowing beforehand whether I'll even be able to sell the damn thing.