Codea and Code Sharing

I’ve seen a number of interpretations about why Codea’s project sharing feature was removed.

Here’s what happened.

We were contacted late December last year (20th or so) by an Apple App Reviewer. He informed us that Codea’s project sharing feature violated section 3.3.2 of the Developer Agreement.

3.3.2 An Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded. The only exception to the foregoing is scripts and code downloaded and run by Apple’s built-in WebKit framework, provided that such scripts and code do not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application as submitted to the App Store.

While Codea doesn’t, and has never “downloaded” code. It did “install” Lua source code if directed to do so by the user. That is, a user could open Mobile Safari, point it at a .codea project, and be given the option to “Open in Codea.” This then placed the file into Codea’s sandbox and Codea would extract that file into a new project for the user.

This is essentially the same as the user visiting a website which displays the source code, selecting the text, copying it to clipboard, and pasting it inside the code editor. Except a lot more convenient.

I mentioned this to the App Reviewer over the phone. I think I even asked him, “What happens if the user types code into the app that they see somewhere on the web, is that downloading?”

The answer I got was that it’s a grey area. And most app reviewers are not able to make a decision like this – so they must err on the side of caution. However, the app reviewer was extremely friendly, helpful and completely open to allowing me to initiate further discussion with Apple over this matter. He even started the appeal process for me. This makes me hopeful that when this issue is examined further it will be possible to come to a solution.

It would be great if iOS development tools warranted their own clause in the agreement.