This week there have been several stories on the blogsphere (here, here, and here, for example) which consist of developers complaining that Apple has rejected an iPhone application that they submitted to be part of the App Store in iTunes, or because they believe that the process for submitting an application is too cumbersome. At least two of these have been because Apple believes the applications would be competitive with a product or feature set that Apple already has in the iPhone. This has, in turn, devolved into a chorus of voices (Ryan Block for example) exclaiming the virtues of openness and transparency, along with opining on the evils of Apple’s terms of service for iPhone developers. To all those who are annoyed at Apple here is what I have to say to you: Get Off Your High Horse.
Apple, like Facebook, Microsoft, and virtually every other major software producer is in the business of platforms. They create the environment that developers want to develop in. Developers need platforms, whether the platform is a distribution channel or operating system. When you create the platform, you set the rules. If Apple wants to restrict iPhone applications to those that do not compete with features built into the iPhone, well, they can go right ahead and do so. It is right in the SDK’s user agreement. Developers will go out and develop for another environment, or make a product that complies with the rules of the road. No one is forcing developers to build for the iPhone. Six months ago, it was not even possible for developers to create programs for the iPhone. So, to all of the developers who are annoyed with Apple, just go out and develop for Android, Blackberry OS, Windows Mobile, Palm OS or S60.
However, lets be honest here. Serious developers, those that really want to distribute and monetize their applications will keep on developing for the iPhone. There are many reasons to believe this. The first is just the hardware. High end software requires high end hardware, and there is no more capable mobile device from a hardware perspective than the iPhone 3G. The competing Android G1’s paltry 1GB of native storage and lack of an onboard 3.5MM headphone jack, let alone its clunky industrial design, puts it at a slight disadvantage.
Then there are the approximately fourteen million iPhones. The size of the installed base alone makes developing for the iPhone a strategically advantageous move for developers. Finally, the ability to distribute applications over the air and to the desktop makes the Apple distribution scheme much more appealing to those who care about actually getting software in the hands of consumers. The fact that more than 100,000,000 applications have been downloaded in the past three months from the App Store is indicative of the strength of the eco-system which Apple has built. If you want access to that eco-system, it means that you need to comply with Apple’s rules not the other way around.
Android is exciting because it is open, but openness does not come without its tradeoffs. From a developer’s perspective this means having a free-for-all distribution system. And don’t forget that Google’s partners have yet to sell one Android phone, though no doubt they will. As more Android based phones come out, with the ability to pick and choose which modules are included, support, stability, and usability—all essential on a mobile device—will likely suffer.
What about the other mobile platforms? S60 just is not robust enough for most developers to build applications for, and it does not have a solid distribution system for mobile apps. Windows mobile devices suffer from the perennial and proverbial blue screen of death, and the next generation Palm OS might very well turn out to be vaporware. The Blackberry could be a real platform if RIM ever comes up with a better way to distribute apps (more in terms of making them easy to find than actually getting them on the phones).
So to developers out there, those who love the App Store and those who loathe it, recall that the power of the platform is to create a system which connects software developers and consumers of that software. But when someone makes a platform, they also control the rules which go along with that platform. And right now the platform to be on is the iPhone platform. To those who are unhappy with the restrictions that Apple places on the App Store, don’t complain. Just keep on coding.