2 Neurones & 1 Camera

Olivier Thereaux

iPhoneOS developer agreement: it's not about Flash

For the past week, the tech community has been abuzz about the new (and beta) developers’ agreement coming with the upcoming iPhoneOS 4.0 SDK. In particular, with this statement:

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).

Among cries of anger, especially from people who were looking forward to developing using Flash technology and porting to Apple’s devices using Adobe’s upcoming Unity tool, a few heavyweights such as John Gruber and Jean-Louis Gassé both chime in, claiming it is a strategic move by Apple to control the developer ecosystem.

This from JL Gassé:

Cross-platform tools dangle the old “write once, run everywhere” promise. But, by being cross-platform, they don’t use, they erase “uncommon” features. To Apple, this is anathema as it wants apps developers to use, to promote its differentiation. It’s that simple. Losing differentiation is death by low margins. It’s that simple. It’s business. Apple is right to keep control of its platform’s future.

I would almost agree with this, except that the following statement in the agreement-to-be makes Gassé’s point moot:

or JavaScript as executed by the iPhone OS WebKit engine

HTML5 and the javascript APIs, which the new apple developer agreement specifically approve of, is precisely the epitome of “write once build anywhere”:

  1. HTML5 is an open standard
  2. the javascript API giving Webkit access to device’s innards are being standardised at W3C, too
  3. Webkit, the engine behind apple’s web capability, is open source, and widespread amongst most mobile platforms, including Google-driven Android phones… just one of the major competing platforms in the mobile market!

Is Apple really trying to stop developers following the lure of “write once, build anywhere”? Given how Android is gnawing at Apple’s share of several markets (especially in North America), and given how Apple and Google haven’t been particularly friendly of late, you’d think Apple would try to block developers from easily building for iPhone AND Android – something HTML5+JS does beautifully.

And yet, Apple is not only allowing apps to be built with HTML5+Javascript, they are actually promoting the use of these development technologies for their new iAds platform.

Two possibilities:

  1. Apple’s strategy is not really to control the developers’ ecosystem. The point of the new terms for developers is, and only is, to give Adobe the finger. Childish and silly. I don’t believe that’s the case.
  2. There are competing groups at apple, fighting for dominance. The Web geeks are scoring points with their “html5 everywhere” strategy of having the best implementation of open standards and bringing in the huge, creative mass of Web developers. On the other hand, the software geeks are trying hard to limit who can build applications for the iphone os devices: mac developers, and only mac developers. Old hands knowing the Apple HIG by heart, and early converts.

If my hunch is right, the second hypothesis is the right one, and the internal fight at Apple may turn nasty when the executives realize that the strategies of these two groups are completely at odds.

The real fight being fought is not one between Apple and Adobe. It is – within Apple’s ranks – between the Web and Software crowds.

(You know who I will root for).

Archives

In English

Essays on the web and tech, rants about media and transportation, and raves about art and the city.

En Français

Photos et récits de voyage, poèmes à la ville et au monde, et autres mondanités.


Browse by Year

… or visit the full archive.


Browse by Location

… or explore all locations.


Features and Projects