When the 3.3.2 rules were first published, the restriction stated that iOS apps must be originally written in Objective-C, C, C++ or JavaScript, and that "no interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Appleâs Documented APIs and built-in interpreter(s)."
Apple's goal seemed to be limited to stopping third parties from shifting iPhone developers from using Apple's own Xcode development tools and instead making them dependent upon their own middleware meta-platforms.
The most obvious example of this was Adobe's efforts to turn its Flash Professional CS5 application into a product that could export iPhone apps, facilitating cross platform development centered on Flash as a platform rather than Apple's own Cocoa Touch.
Apple's 3.3.2 restriction made it clear the company would refuse to sell such apps in its iTunes Store, an insistence the company's chief executive Steve Jobs later explained as an effort to avoid third party middleware from coming between Apple and its developers and slowing down the pace of the iPhone platform's ongoing development.
What about Lua?
However, the wording of the restriction appeared to also target any iOS apps that might include any interpreted code, including a large number of games that make use of general purpose, reusable code engines or libraries to expedite development.
Adobe latched onto this idea to spread fears that any iOS restrictions on development with its Flash tools would also halt the use of popular game engines or libraries such as Unity 3D and Lua. Such a situation would imperil many popular iPhone games that Apple has already approved (and often singled out for targeted promotion), including Tap Tap Revenge and Rolando.
The latest modifications to the 3.3.2 section indicate Apple won't be forced to dump popular, existing titles just to block middleware meta-platforms as a threat to iOS development. The most recent wording of the iOS SDK, published by Matt Drance of Apple Outsider, articulates an additional option Apple can invoke when choosing to approve apps:
"Notwithstanding the foregoing, with Appleâs prior written consent, an Application may use embedded interpreted code in a limited way if such use is solely for providing minor features or functionality that are consistent with the intended and advertised purpose of the Application."
Drance notes, "these new terms seem to acknowledge that thereâs a difference between an app that happens to have non-compiled code, and a meta-platform."
28 Comments
Apple has balls.
But the DOJ has a machete.
Since the Javascript Engine uses Lua I hardly thought they'd ban Lua.
This is just a natural extension.
Apple has balls.
But the DOJ has a machete.
I'll be surprised if this one resolves against Apple.
But I imagine constant investigations won't trend positive.
Apple does indeed have balls, and loves to walk the line.
After looking at Flash 10.1 I understand what Jobs has been saying all along about Adobe developers. There's many missing features as compared to Windows. Feature parity (including hardware acceleration) should have been the priority. Keep them out until they understand their responsibilites I say.
Apple has balls.
But the DOJ has a machete.
Maybe the DOJ should use that machete on others. BP comes to mind!