There’s been a lot of buzz regarding Apple’s new iPhone Developer Agreement the past couple days. Just before releasing the latest iPhone OS 4 SDK beta, Apple made a significant change to Section 3.3.1- previously stating only that developers must not use undocumented API calls. Section 3.3.1 now contains a clause that prohibits iPhone apps from being developed in any other language other than Objective-C, C, C++, or JavaScript and must not compile through any “intermediary translation or compatibility layer.”
The new clause was almost certainly targeted directly at Adobe, whose popular, though arguably inefficient Flash plug-in has been locked out of Apple’s mobile platforms. A major feature of Adobe’s new Flash CS5 is the ability to package Flash projects as iPhone apps- a process which now goes against the iPhone Developer Agreement. As a result, apps created in this manner can (and will) be rejected from the App Store and Adobe just spent the last year or so of Flash R&D for nothing.
While section 3.3.1 was more than likely directed at Adobe, the question is, will other third party SDK’s be taken as collateral damage? PhoneGap, a cross platform mobile development suite, which lets users write apps for iPhone, Android, and Blackberry in JavaScript and HTML claims that their contacts at Apple have assured them their tool is not in violation. Another popular third party SDK, Ansca’s Corona, which allows users to write iPhone games in Lua- again seems like it should be out of bounds- though a blog on the company’s site claims Apple has not given them the cease and desist. In fact, none of the third party SDK’s I could find, such as MonoTouch, GameSalad, or Unity3D- all seemingly in violation of Apple’s new Terms of Service- have announced any bad news regarding iPhone OS 4. So what gives?
Well, the truth is, unlike Flash CS5, most of the aforementioned SDK’s produce 100% Objective-C code- they are more pre-compilers than true compilers. However, the vague wording of Section 3.3.1 could mean that if Apple ever wanted to pull the trigger, they would be well within their bounds to ban any or all of these third party iPhone SDK’s. Although there is something to be said about the added inefficiency and possible lack of UI uniformity of a translation layer, since they haven’t done so already I find the possibility of Apple banning such tools outright unlikely. This was, after all, probably a specific jab at Adobe in Apple’s quest to make Flash obsolete. If Apple were to expressly ban all third party SDK’s, however- from the standpoint of 99% of all iPhone developers, nothing will change. These tools are more for people coming from other development environments and those already used to XCode and Objective-C will continue to code as usual.
Despite the understandable optimism of the various SDK’s blogs- we may not get a true sense of the fallout until April 22- the deadline to agree to the new Terms of Service for an iPhone Developer Account. Even then, iPhone OS 4 is still in beta, and therefore subject to TOS changes until it is officially released in June.