Change in iPhone developer terms puts Flash in crosshairs

Australian Macworld staff
11 April, 2010
View more articles fromthe author

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 license 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:

“3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).” [emphasis added to highlight new text]

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 store-front: 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.

Adobe’s response?

Adobe’s official response to the new license terms had thus far been measured. A spokeswoman sent back the message, by email: “We are aware of Apple’s new SDK language and are looking into it. We continue to develop our Packager for iPhone OS technology, which we plan to debut in Flash CS5.”

Adobe evangelist Lee Brimelow wasn’t so restrained: “Go screw yourself Apple,” he wrote on his personal Web site, The Flash Blog.

Apple’s action “is a frightening move that has no rational defense other than wanting tyrannical control over developers and more importantly, wanting to use developers as pawns in their crusade against Adobe,” he also wrote.

Brimelow’s blog has a disclaimer stating the opinions expressed there are his own and not those of Adobe. The WHOIS Internet domain name information service backs this claim, listing Brimelow, not Adobe, as the owner of Though Adobe has confirmed that Brimelow works for the company.

Adobe, evidently, was at least aware of the blog post just as it went live. The second paragraph mentions that a line was edited out on behalf of Adobe. The earlier version of the post apparently stated that “What is clear is that Apple has timed this purposely to hurt sales of CS5.”

Brimelow’s blog post closes with a final jab: “Comments disabled as I’m not interested in hearing from the Cupertino Comment SPAM bots.”

Apple’s reasoning?

Of course, it doesn’t end there. Greg Slepak of The Tao Effect wrote to Steve Jobs to express his disappointment with the change. His email finishes with a fairly insensitive analogy to send a cancer survivor: “I love your product, but your SDK TOS [terms of service] are growing on it like an invisible cancer.”

Jobs replied, referring Slepak to John Gruber’s post ‘Why Apple Changed Section 3.3.1‘. “We think John Gruber’s post is very insightful and not negative,” writes Jobs. Here’s an excerpt from the article:

“[F]rom Apple’s perspective, changing the iPhone Developer Program License Agreement to prohibit the use of things like Flash CS5 and MonoTouch to create iPhone apps makes complete sense. I’m not saying you have to like this. I’m not arguing that it’s anything other than ruthless competitiveness. I’m not arguing (up to this point) that it benefits anyone other than Apple itself. I’m just arguing that it makes sense from Apple’s perspective — and it was Apple’s decision to make.”

Not happy with that response, Slepak emailed Jobs again. The reply from Apple’s CEO was this time almost immediate:

“We’ve been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform.”

While many, including Slepak and Adobe, may not be happy with Apple’s decision to disallow apps that are compiled from non-Xcode supported programming languages, the company appears intent on maintaining a tight control on what appears on the App Store.

But what does this mean for iPhone users? Jobs might be right – Gruber’s ‘insightful’ post probably sums it up best:

“I can see two arguments here. On the one side, this rule should be good for quality. Cross-platform software toolkits have never — ever — produced top-notch native apps for Apple platforms. Not for the classic Mac OS, not for Mac OS X, and not for iPhone OS. Such apps generally have been downright crummy. On the other hand, perhaps iPhone users will be missing out on good apps that would have been released if not for this rule, but won’t now. I don’t think iPhone OS users are going to miss the sort of apps these cross-platform toolkits produce, though.”

We’d be interested to hear from iPhone users and developers on their thoughts regarding the change — jump on the forum.

Leave a Comment

Please keep your comments friendly on the topic.

Contact us