Code by Kevin, Programming, code, business, and other pursuits
Kevin Walzer, software developer.
Subscribe to RSS Feed
Get a syndicated feed of my weblog.
Site design: Skeleton
Since I'm not a Cocoa developer, I didn't join the mad stampede among indie Mac developers to whip up an application for the iPhone. On the surface, the platform sounds pretty good for Cocoa developers: Apple provides the store to sell the applications, handles all transactions, and takes a 30% cut of the revenue.
As things have evolved, though, the iPhone platform doesn't seem so sweet.
First, the iPhone development framework (or SDK) is controlled by Apple to the extent that the entire platform is under Non-Disclosure Agreement (NDA)--this means that developers can't talk about development techniques publicly, share source code, and the like. Given that the Cocoa community has thrived on the Mac OS X desktop because of public discussion of Cocoa--lots of conversations about how to solve knotty programming problems, and also advanced developers supporting and encouraging less experienced programmers--it seems that the iPhone development community will suffer from lack of same.
Second, Apple reserves the right to approve all applications for inclusion in the iPhone software store. Its criteria for rejecting applications are somewhat unclear, and may be downright capricious. Developers who have seen their applications rejected are rightly frustrated: they spend many weeks or even months of work developing the application, only to find that they will be unable to sell it.
The most recent development is also the most absurd, and the most draconian: Apple has placed rejection letters under NDA, meaning that developers cannot discuss the reason for their rejection publicly.
This has the effect of keeping the entire iPhone development community in the dark. It also has a sad, somewhat touching side effect: Cocoa developers are having their hearts broken by Apple. Brent Simmons' comments are a good example.
I hate to say this, but Apple's conduct with the iPhone platform isn't really out of character for the company at all. Apple brilliantly promotes its shiny new toys, whether it is a hardware product (iPod, iPhone) or a software framework (Cocoa). On the other hand, it has always been a secretive, controlling business that does not hesitate to throw anything under the train that has outlived its usefulness. (See Carbon.)
It seems that some Cocoa, or at least some iPhone, developers are getting a taste of the frustrations that Apple has visited on many in its development community. No one, it seems, is immune.
I'm going to continue developing for the Mac because, like Cocoa developers in their fashion, I find it the best, most powerful platform for commercial development in my preferred style--specifically, the combination of its Unix underpinnings and elegant desktop experience. But I have no illusions about Apple's benevolence. Cocoa/iPhone developers shouldn't either.