BT
x Your opinion matters! Please fill in the InfoQ Survey about your reading habits!

Reactions and Consequences of the iPhone Developer License Change

by Abel Avram on Apr 12, 2010 |

There is a report saying that Apple has changed the iPhone Developer License to prohibit applications written in other languages than Objective-C, C or C++ or accessing the API “through an intermediary translation or compatibility layer or tool”. Reactions abound and this change is likely to have rippling effects across the industry.

iPhone SDK 3.2 or earlier, which is needed in order to develop applications for iPhone, iPad or iPod Touch, has a clause specified in the iPhone Developer Program License Agreement (DPLA) that reads like this:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.

The newest iPhone OS is 4.0 and its SDK is currently in beta, being available to registered developers. Among other changes to the DPLA, which is confidential, a report by John Gruber mentions that the 3.3.1 clause has changed to this:

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

This basically means that applications written for iPhone must be written in Objective-C, C, C++, or JavaScript and cross-compilers are prohibited. There a multitude of companies that might be affected by this change. Also, the license’s text is not very clear leading to all sorts of speculations.

One company that seems directly affected by Apple’s move is Adobe which has just released Adobe Creative Suite 5 (CS5) on the market. One of CS5’s main features advertised by Adobe was the ability to export Flash FLA files to IPA, creating applications that can be deployed on iPhone, according to John Loiacono, Head of Adobe’s Creative Solutions business unit:

We are ecstatic to announce that we’re enabling you to use your Flash development tools to build applications and compile them to run natively on the iPhone.

Such applications do not have code compiled at runtime, and are supposed to go through the same approval process as other applications sold through App Store, but Apple’s update to the developer license changes everything.

Kevin Lynch, CTO Adobe, commented on the new license condition:

Yesterday Apple released some proposed changes to their SDK license restricting the technologies that developers can use. […]

We intend to still deliver this capability in CS5 and it is up to Apple whether they choose to allow or disallow applications as their rules shift over time.

Unity 3D has a game development tool allowing developers to create games targeting multiple platforms. There are hundreds of applications written for iPhone with this tool, and some are best sellers on App Store. Alex Blewitt mentions Unity as one of those affected by the change:

Unity As a 3D tool, this is used on multiple platforms and can accelerate game development. However, this is a “compatibility layer or tool” which is verboten.

Gruber is not sure Unity is affected:

I originally thought this would ban games written using Unity3D, but perhaps not — Unity3D produces a complete Xcode project and Objective-C source files, so it’s more like a pre-processor than a cross-compiler. Hard to tell. If you forced me to bet, though, the fact that developers are writing C# code puts Unity3D on the wrong side of this rule.

Unity 3D itself does not know what to say. They have contacted Apple and are waiting for clarification.

Our current best guess is that we’ll be fine. But it would obviously be irresponsible to guarantee that. What I can guarantee is that we’ll continue to do everything in our power to make this work, and that we will be here to inform you when we know more – as soon as we know more.

There are many other tools affected by the license change like MonoTouch, TitaniumPhoneGap, or Ansca Corona. They issued pretty similar statements, mentioning they do not know exactly what Apple intends with the license change, and they show their confidence that everything will be fine:

MonoTouch: We are reaching out to Apple for clarification on their intention, and believe there is plenty of room for course-correction prior to the final release of the 4.0 SDK. […]

If Apple's motives are technical, or are intended to ensure the use of the Apple toolchain, MonoTouch should have little difficulty staying compliant with the terms of the SDK. MonoTouch runs only on Mac OS X, and integrates tightly with XCode and the iPhone SDK.

Appcelerator about Titanium: It’s our belief that we are fully in compliance with iPhone OS 4.0 ToS as we interpret them. […]

As a pre-requisite to using Titanium, developers must install the Apple iPhone SDK and Apple XCode development toolchain. They must install Titanium on a Macintosh and they must have a valid Apple Developer membership before they are even able to create a Titanium-based iPhone/iPad application.

Titanium produces a valid XCode project at application creation, generates Objective-C (and sometimes C/C++) and executes the xcodebuild to compile your XCode project into a native application using Apple’s published APIs.

PhoneGap: everyone relax about the new policy. phonegap apps are accepted by apple.

Ansca Corona: I believe that Corona will be fine, and we are committed to delivering the best tool for multi-platform game and app creation for Apple and Android devices, and we will continue to add new features to Corona and to make it better every time we put a new release out. […]

To this day, Apple has never officially or unofficially mentioned anything to us regarding non-compliance. The fact that Apple approved several Corona powered apps for the grand opening of the iPad store on April 3rd reaffirms our belief that we continue to be compliant and offer tremendous value to the iPhone/iPad ecosystem.

Many seem to be confused or even outraged by Apple’s move. Dan Grigsby, an entrepreneur and iPhone developer, has given up on iPhone:

I’m fine with Apple curating the App Store. If they want to treat the App Store as an extension of their brand, fine. If that’s their goal, they should decimate — literally — the store, stripping out the crappy-yet-inoffensive dross. But provide unrestricted, frictionless, off-store distribution a la Android.

I’m a principled person. Apple’s offended my principles. Consequently, I’ve decided to abandon iPhone development. I won’t work in this ask-permission environment any longer.

Tim Bray, a former Sun Director and co-editor of XML, has recently joined Google to help advancing its mobile OS because he thinks Android offers more freedom:

Apple apparently thinks you can have the benefits of the Internet while at the same time controlling what programs can be run and what parts of the stack can be accessed and what developers can say to each other.

I think they’re wrong and see this job as a chance to help prove it.

Enterprises which deploy their applications directly, and are not using the App Store, do not seem to be affected by this change. But if they are using a mixed model, deploying both directly and via the store, then they will have to comply with the license.

Some consider that Apple is just trying to make sure applications developed for iPhone are of good quality and they take advantage of iPhone’s full capabilities. Others are blaming Apple for closing down the doors on everyone who has developed an alternative to iPhone’s native tools, Xcode. But everybody waits on Apple to clarify its position. 

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Happy Shiny Fascism by Douglas Stein

It's their phone and they can do what they want. Fortunately, we don't have to live in their Worker's Paradise. Folks buy phones every two years and this phone isn't entrenched in the enterprise, so the center of development efforts could move to Android quite quickly.

Independent developers can't reliably plan a P/L when you don't know if you'll be permitted to sell through the only channel. In addition, this license change (if it stands as read) is intended to ensure that iPhone apps have a unique code base. They're hoping developers will develop for Apple first - with sanctioned Apple tools - and then not have an economic justification for porting to any other platform.

It's true that many desktop/laptop apps were (are) Microsoft-only, but that wan't the result of enforcement by Microsoft as much as it was the fact that MasOS development had different toolchains and languages and the market had overwhelmingly chosen Windows. It was rarely financially feasible to spend "2x" to get "1.2x" of the Windows market.

If Apple is so certain that it has a better platform, why not let tool developers build cross-platform tools that can let app developers leverage their skills from other platforms? Is Apple afraid that the useful and interesting (but mostly shallow and technically trivial) apps will migrate to platforms like Android (and someday Windows Phone 7) where customers can choose from many hardware vendors?

Good for Android / Java by Matt Giacomini

As said above, it is their phone they can do as they like.

I do love the irony of it though. Apple, via their Windows version of iTunes, has built THE crappiest app I have ever used on the Windows platform. Maybe their inability to develop good software for other platforms has made them assume that no one else can build good software for their platform.

All of apples iphone restrictions are probably going to help Android/Java in the future.

No compatibility layer? How should multi-platform development work? by Bojan Antonovic

How should multi-version development work? Porting will be very costly without. And what if generated code looks like the best human made code?

MDE (model driven engineering) uses code generators. Nobody, who has worked with static or dynamic abstraction, want's ever go back! Who can afford this amount of debugging effort without this tools?

This is insane! Apple wanted to beat Adobe, but 99% of good developers have to pay the price.

That way we can go back to hand written Assembler.

Steve Balmer said once: "developers, developers, developers!" Apple shouldn't forget them. iAd is not the solution for this technical problem.

Apple is just protecting their platform by Fred Rahmanian

Apple is trying to keep iPhone OS from becoming commoditized. If you have to maintain two completely different code bases to support both iPhone OS and android you are more likely to choose only the platform with more profit upshot. The fact that they will be putting the dagger in Adobe's back as a result of this change is just gravy.

FR

Re: No compatibility layer? How should multi-platform development work? by Jinbo Chen

Steve Balmer said once: "developers, developers, developers!" Apple shouldn't forget them. iAd is not the solution for this technical problem.

That's funny. The web site seems pretty against Apple.

At the end of the day, it's "customers, customers, customers".

Re: No compatibility layer? How should multi-platform development work? by Abel Avram

The web site seems pretty against Apple.

Hi Jimbo,
the article is not against Apple, and InfoQ is certainly not against Apple. The article has collected some of the most important reactions to Apple's change of the license, and some reactions happen to be negative towards Apple. That does not reflect our own view on Apple.

Apple vs. Adobe by Robert Brown

Given recent statements by Steve Jobs, I'm led to believe that this is a defensive move against Adobe Flash and future Adobe apps. blogs.zdnet.com/gadgetreviews/?p=11925

Re: Happy Shiny Fascism by Chuck Canning

It is not "their" phone. It is the consumers' phone and the consumer should be able to do as they see fit and not have an environment policed by Apple. Maybe they should have the Apple certified program. As bad as this sounds, where are the governmental bodies that are supposed to protect the interest of the consumer.

Re: Apple is just protecting their platform by Chuck Canning

They are trying to protect their current market advantage of having the largest number of applications due to the fact that they created the market, but now they have viable competitors. Unfortunately, by protecting their bottom-line, they are raping the potential profits of their developers by effectively forcing them to write an application once for iPhone and once for any other environment. Their applications are now their only competitive advantage and it appears they will do whatever they can to protect it.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

9 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT