A friend of mine has been patiently waiting for weeks to get accepted into the iPhone Developer Program. Turns out, he’s not the only one facing difficulties with the official development process. Mike Ash recorded his own experience in developing an application for distribution in Apple’s app store, and even when you’re accepted and everything goes right, the process still isn’t pretty.

It makes an interesting story, I think, because unlike the sordid tale of some people’s struggle to get accepted into the iPhone developer program, my personal experience was perfectly normal. (As far as I know.)

But even a perfectly normal experience with the iPhone developer program is intensely weird. Compared to the simplicity of developing and distributing a Mac app, Apple’s iPhone program is extremely convoluted and strange.

My favorite step is #8 of 22:

8. Develop!

This is what I’m here for, after all. Now that all the pieces are finally in place, I can get down to writing code. (Yes, I could write code before. But I couldn’t run it on the hardware that it was targeting, which made it somewhat less useful that it otherwise could be.)

As everybody knows, developing for the iPhone is a lot like developing for the Mac. Instead of Cocoa, you have Cocoa touch, which is very similar. There are significant differences as well, though, so it takes some getting used to.

In addition to the perfectly natural difficulties encountered from working on a new platform, there’s also a big artificial difficulty. As any experienced developer knows, a great deal of help can be had from simply talking to other developers working on the same system. But Apple doesn’t let us do that! If you’ll recall, I mentioned a bunch of scary legal stuff that you had to click through to sign up with the program. Among all the other stuff, it included the &*%#ing NDA (WARNING: link contains extremely large curse words) which says that we can’t talk about this stuff, with anyone, ever.

Aside from only having to pay a fee once, instead of for each application signing, this sounds about as ridiculous as developing signed applications for Symbian or Windows Mobile. Think about it… there’s a large contingent that would like to see this sort of developer lock-down on desktop OSs as well.

On the bright side, it’s actually a lot easier to develop apps for your own device by jailbreaking your phone and using open source tools. If you opt for the simple path, Zdziarski’s iPhone Open Application Development book and the iPhone Dev Team Wiki are both good places to start.

The iPhone Development Story
iPhone Open Application Development
iPhone Dev Team