La la la la la I can't hear you
Since the iPhone SDK was first released in March, the biggest roadblock to developing good iPhone software is that iPhone developers are officially prohibited from talking to anyone about what they're doing. In order to get the iPhone developer tools, you have to accept to a non-disclosure agreement with Apple. The NDA covers not only the development tools, but itself. I'm not even really allowed to mention what the NDA says, because doing so violates the NDA. I'm hoping that detail will be seen as minor enough that I won't get sued. Saying that the NDA prohibits discussing iPhone development should be OK, since Scott Anguish of Apple has publicly said so many, many times.
One of the most useful sources of information for a software developer on any platform is... other developers working on the same platform. The ability to discuss issues with other developers, compare notes, and get questions answered is extremely valuable. But none of that is allowed for iPhone developers.
This has a direct effect on software quality. Although Apple provides documentation, that doesn't always explain things. Normally, faced with a difficult situation, I'd ask around and see what other people might do. The only permitted way to do that now is through Apple tech support incidents. If you're one of the lucky ones allowed to pay $99 to join the iPhone developer program, you get two incidents, meaning you can get two questions answered. If you have more questions you can buy more incidents for $195 each.
The NDA almost made sense when the SDK was first released. And anyway it had precedent, in that when Apple distributes pre-release software to developers, an NDA always applies. Historically the NDA on a particular release has been lifted when that version is released to the public. This has always been the case with pre-release versions of Mac OS X.
iPhone OS 2.0 was released on July 11. But the iPhone NDA still applies. The rationale for the difference with Mac OS X, as explained on Apple's Cocoa-Dev mailing list, is that Mac OS X releases always include developer tools, while the iPhone release does not. Since the public release of Mac OS X means making the tools publicly available, the prior NDA can no longer apply. With the iPhone this is not the case.
With no obvious milestones on the horizon, and with Apple reps continuing to repeat that the NDA still applies, I can't help wondering if the current situation will ever change. It's not like an iPhone OS release is ever going to include developer tools, because the tools don't run on the iPhone. At this point the iPhone NDA could apply forever, a prospect I find depressing but which I can't dismiss.
All of this might make a tiny bit of sense were it not for the fact that iPhone developer information is in fact widely available. Google turns up results for virtually any search term related to iPhone development. Of course, since I've had to accept Apple's NDA, I could not possibly comment on whether those results are accurate.
I also could not possibly comment on whether the iPhone developer discussions taking place at Apple's own web site are giving useful answers. Apple's steadfastly forbidding iPhone discussion on their Cocoa-Dev mailing list, but if you use their web site instead they don't appear to mind.
If you mention any of this on Cocoa-Dev you'll receive sanctimonious responses about following agreements you've accepted. Which, typically, ignore the bizarreness of so piously pretending to protect the privacy information which is already widely available to the public.
So why aren't I using that web site? Because iPhone development has so far been profitable enough that I can't risk being booted from the official developer program. I won't say I haven't looked at them, though as mentioned I couldn't possibly comment on whether I've found anything useful there.
The situation bears a striking resemblance to US laws restricting the export of encryption software. Those laws were based on the idea that, since bad people could use strong encryption to hide their plans, it was important to keep this software from getting into the hands of people who didn't have the good sense to live in the USA (because apparently that's where all the bad guys are). They also neatly ignored the fact that this software was widely available outside of the US anyway. The net effect was a bunch of idiotic restrictions that utterly failed to achieve their intended goals.
And so we proceed. Apple with its fingers in its ears, pretending that its NDA is keeping something secret, developers like me facing a major hurdle as a direct result, and anyone else with a passing interest in the topic having no trouble getting all the information they might want. Apple, you can pretend all you want, but you're not achieving anything useful to you in any way by doing so.
Submitted by Tom Harrington on Sat, 07/19/2008 - 17:29.







