Now that a beta version of iPhone OS 4.0 and the corresponding developer tools have been released to iPhone developers, there's a new developer licence agreement to go along with them. John Gruber of Daring Fireball noticed a drastic change to section 3.3.1 of that agreement, which originally forbid the use of private frameworks, or application programming interfaces (APIs), and discouraged developers from using documented, public APIs in manner not approved by Apple. Now, it reads as follows.
With this change, Apple has amended its agreement so that software approved for the App Store has to be written in one of a select few, Apple-approved programming languages, all of which are supported by its Xcode developer tools. That seems to put the forthcoming Adobe Flash CS5 square in the crosshairs. Flash CS5's Flash Packager for iPhone promised that developers could write applications in Flash and then build them for use on the iPhone OS.
This wasn't just a feature in Flash CS5, this was the flagship feature, Adobe's foot in the door to enable its wide stable of customers to create content on an extremely successful platform. It would have helped turn Flash into a cross-platform development environment for iPhone software and other platforms, assuming it's actually capable of producing apps that are as snappy and responsive as Xcode's.
But the new terms of 3.3.1 could have far reaching complications. Extremely fine performance adjustments that can only be made in low-level assembly language appear to be off limits too. It also means that other languages like C# and Scheme are in jeopardy, and the future of cross-platform environments like Unity look uncertain. In a statement, Unity Technologies CEO David Helgason said the company has a great relationship with Apple and there was no indication that anything would change in their situation.
Apple's developer agreement forces developers to write high quality applications that look and feel like Apple software. After all, Apple doesn't want the iPad to look like any other tablet, or the iPhone to look like any other phone, and it certainly doesn't want its customers to believe that its own products perform poorly as a result of third party software or tools.
It seems unlikely that it would have come to this were it not for Adobe's decision to proceed with Flash Packager despite Apple's lack of support for Flash on the iPhone OS. Apple owns the hardware, the most critical software, and the storefront: one way or another, every software company has to bend to the whims of the platform.
Which raises the question, did Adobe expect this to play out any other way? Even media giant Condé Nast saw the writing on the wall: though it has been developing a Flash Packager version of Wired for iPad, the evident friction between Apple and Adobe made it hedge its bets and develop a version using Apple's methods as well.
Adobe is a tools company, so it has to respect the platform. Instead, it decided to work against Apple's interests. For better or for worse, Apple now appears to have totally locked Flash out of the iPhone. As a result, developers may not see a viable alternative to Xcode or HTML5 for a very, very long time.