• français
  • RSS
Impact - A Blog by INM

iPhone OS 4 SDK and the Developer Agreement Changes

April 14, 2010 by Paul Oros

As you may have already seen last week, Apple announced the iPhone OS 4 SDK, which brings forward a few new, interesting and useful features. New to the iPhone, that is.

From my own light reading of the announcements, most features are actually far from innovative, it’s more about catching up to what was considered the “bare minimum expectations” of a phone, before the iPhone first appeared on the market. Features like background music, alerts from inside applications, some form of multitasking, etc. are exciting only because they were absent from the iPhone so far.

I hope someone will write the book on how Apple and Steve Jobs came to do such a daring thing with the iPhone. He was able to successfully release the innovation element first, without expectations and only deliver a technology that met base expectations after the innovation was adopted by the mass market. This is quite a feat.

The other interesting element is a change to the iPhone OS 4 SDK Developer Agreement, specifically in section 3.3.1. Here’s the updated content of the section:

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

John Gruber has more details in his article titled New iPhone Developer Agreement Bans the Use of Adobe’s Flash-to-iPhone Compiler. The title of the article hints at the relevance of the change. With this clause, Apple kills Flash to iPhone (and iPad) compilation, MonoTouch, and a few other projects that were allowing people to develop for the iPhone without having to use ObjectiveC.

It will be interesting to see if these tools will adapt by generating ObjectiveC instead of compiling executables themselves and if such code generation will be accepted by Apple.

John Gruber followed up with another piece "Why Apple Changed Section 3.3.1" which speculates why Apple would have made the change. I, for one, disagree with Gruber’s arguments. What Apple is doing here is really not fair for developers.

The iPad has been compared to a canvas. Apple is acting as if the canvas is more important than the artist. It's also implicitly saying that the artist can only work with Apple's own pencils and ink on this canvas, or else beautiful art can't be achieved. This act certainly puts the openness of the Android platform in a much better light.