»
S
I
D
E
B
A
R
«
A simple solution to Apple’s iPhone NDA
August 7th, 2008 by masukomi

Developers are frustrated and upset because Apple’s NDA prevents them from discussing anything about what they’re coding with anyone else. No code tutorials, no helping each other solve some weird bug they’re encountering, etc.

But, there’s a solution that requires a tiny bit of up front work, but has a huge payoff and it’s based on this simple idea: Apple can’t possibly prevent people working on the same piece of software from discussing the code that goes into it.

So, set up a codebase, maybe a hello-world app with four billion features, anyone who has a question joins the project. Just to cover everyone’s asses, questions should be submitted in the form of broken features / enhancements to the app, answers should be provided in the form of fixes with comments, instead of e-mails or forum posts. All fixes must be submitted, and included in the main repo.*

Communicating around the NDA:  developers of “The App” would communicate with e-mails like the following:

Subject: [broken feature] Tab controller + view in separate NIB + button = crash.

I’m working on giving us <some feature> that uses a tab controller plus a view in a separate NIB. Every time i try and bind it to a button it crashes. I’ve gotten this far  <repo url here>

- Developer X

Response:

 Subject: [patch review] Tab controller + view in separate NIB + button = crash.

I have patched your problem in my repo here <url to repo>. Please review and

submit for inclusion in the main repo.

- Developer Y

or, as will frequently happen:

Subject: [already implemented]  Tab controller + view in separate NIB + button = crash.

My apologies Developer X, apparently you weren’t there for the meeting. We’ve already implemented that feature in <some file>  which can be found in the main repo.

-Developer Z

If Developer X approved the patch referred to in the first response he would send another  e-mail requesting it’s inclusion in the main repo.

Note that, just to be safe, at no point is any code actually discussed, nor is it posted. The real response is in the patch, which can be found in the repo. E-mails just serve as notices of problems, solutions, and new features (tutorials) in the codebase. The main repo would have to only be accessible to people working on the project. Not only would problems get solved but there would be an incredible, and well commented code-base to learn from.

Every now and then the app should be submitted to Apple for potential release to iPhone users. As such, it should be kept in working order. It would never be useful to end users (they could click on tabs and buttons that did nothing), but usefulness doesn’t seem to be a pre-requisite for many apps.

Depending on the NDA, which I haven’t read, Money might have to exchange hands. If so, write up a simple contract where each participant is a freelance contractor and will be paid one dollar by each other participant upon completion of the project, and that the project will be declared “complete” when every feature has been written and every team member agrees that it is done. It’s pretty safe to say you’ll never get everyone to sign-off on it being done, but in the worst case scenario (everyone going insane simultaneously) payment would, essentially, just be the old stand in a circle and pass a dollar around until it gets to the first person again scenario.

* Using a distributed version control system like Git will make this much easier, because you don’t want random people breaking the main repo constantly.


One Response  
  • Jakub Narebski writes:
    September 3rd, 2008 at 4:42 am

    From waht I remember something like this was used to protect against iPhone SDK NDA. Unfortunately I don’t remember the URL of news…


Leave a Reply

»  Substance: WordPress   »  Style: Ahren Ahimsa
© Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.