Apple’s Market-Constraining iPhone SDK
Posted 14 August 2008 @ 9am in News
Apple’s SDK non-disclosure agreement is one of the most contentious issues concerning the platform . Many developers had hoped that the NDA would be removed upon the release of the iPhone 3G and iPhone OS 2.0, but it’s still in place likely will not be removed any time soon.
The NDA prevents the publication of many books regarding iPhone OS programming and disallows developer collaboration. Open conversations via mailing lists or discussions boards are prohibited, but some developers ignore that stipulation and post questions to Apple’s popular Cocoa-Dev list and the company’s own discussion pages.
Developers who adhere to Apple’s SDK are, hence, at a technical disadvantage, operating without the aid of peers. They are unable share code, ideas or even fixes or workarounds encountered when developing for the iPhone OS. A dearth of books and manuals means a lack of expansion in the developer community. The quality of the software suffers as a result. This state of affairs stands in contrast to the Mac development community, which is open and unfettered, with a wealth of guides and resources.
The developer community hasn’t taken the NDA lightly, as manifest in this blunt site.
Taking all this into consideration, Jonathan Zdziarski, author of the book iPhone Open Application Development and an iPhone Forensics manual has come up with ten reasons to violate Apple’s “SDK” NDA.
Jonathan details his personal decision to steer clear the the Apple SDK and stick with open development. Many of his reasons are like the ones mentioned above and like others he expected the NDA to be around until Apple secures it’s patents globally. He also writes with some passion about how the NDA - “effectively extinguishing creativity, knowledge, and open source development, the foundation of which is community participation.” His list:
- The “Free” SDK is Available to the public
- Membership-Protected Downloads Aren’t Trade Secrets
- Apple’s “Paid” Membership is now Available to the Public
- The Apple NDA Promotes Unfair Competition
- The NDA Threatens Personal Data Security
- The “Right to Use” Theory Doesn’t Hold Water
- You Can Learn About the SDK by Other Means
- Apple Needs a Better Product
- Submitting to Fear Sends the Wrong Message
- This is the County of Free Speech
You can read the complete blog entry here.
Print This Post

2 Comments
Posted by Rick Auricchio
14 August 2008 @ 11am
The US constitutional protection of free speech only relates to government suppression of free speech.
Your employer or business partner (in this case Apple) can contractually limit your expression.
Posted by techsquirrel
21 August 2008 @ 8am
I agree with Rick A halfway: Yes, the NDA is a contractual agreement, not a limit of free speech. If one signs the NDA (or any contract for that matter), it is done so in agreement with the terms set up between the parties. However: It is not quite that Apple limits your expression, it’s that you agree to limit your own expression. Does a developer have a chance to negotiate contract terms? Usually, to some extent, parties can negotiate terms. With the Apple NDA? I would imagine so, possibly, if the developer has enough money and time and Apple said something besides “Take It Or Leave It”. I have no information if any developers have negotiated the NDA terms with Apple.
That being said, AFAIK the NDA protects nothing at this point. The iPhone is purchased as a piece of hardware on the open market. Like any piece of hardware, the owner is free to do with it as they wish. Including downloading the free SDK and developing software, or chucking it through an open window into the street. Typically, NDAs are used to protect product development. Fine to have an NDA prior to G3 launch- the SDK has code that reveals certain features of the G3 to the discerning programmer. It could be said that the NDA is appropriate prior to the opening of the App Store. But. Now the G3 is out, the SDK is out, the App Store is open (although floundering with app crashes); the fundamental mechanisms of the iPhone are open and released. In a sane world, Apple would to be ENCOURAGING wild, free-wheeling developer interactions, to get the bugs out of the SDK (and you can bet there are some), and get some wild new things going on, get the buzz on. Not hobbling everyone with an NDA. An NDA at this point makes no sense, not to this designer.
Especially not during software development, for which any hardware manufacturer with half a brain would have cleared away ANY impediments to a flourishing developer community. Software sells hardware. Apple knows that. Apple did quite a lot with the SDK and Dev Tools, but, the NDA is sitting in the doorway like a fat, smelly toad, stifling collaborative thinking, communication, and evolutionary software development.
Don’t get me started on the “provisioning” process Apple requires during the development process. It’s such a cobbled-up mess, with undocumented errors, no reliable way to make it work (if it errors out), and little response from Apple. About the most effective way to cramp development that I’ve ever seen. Provisioning for distribution and sale, sure, that makes sense. But: Sales and distribution to single iPhones could work just as easily with standard authorization codes tied to the buyer’s phone card IMEI, the iPhone hardware ID, and buyer information. The same way countless software is sold reliably today tied to a computer’s unique identifier or a unique sale serial number and authorization code. Why did Apple have to come up with something so darned discombobulated? To get it to work through iTunes? If so, that’s a slender rational, IMHO.
In summary- NDA and provisioning is the most effective combination to slow down development and creativity that I’ve seen in over twenty years of coding.