A lot of people have taken note of the following passage in the iPhone 4 developer agreement:
Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited.
It’s clear that Apple isn’t going to allow Flash to run on the iPhone, so Adobe came up with a creative alternative — a tool that lets you convert Flash into a native iPhone application. Packager for iPhone is to be included with Flash Professional CS5. Now Apple has made it known that applications created in this manner will not be approved for inclusion in the iPhone App Store.
Why would Apple make this rule? Perhaps there’s a technical reason, but my guess is this is pure cutthroat business. To create applications for the iPhone, you have to use Objective C. If you want to port the same application to Android, you have to rewrite it in Java. If Adobe and other tools vendors come up with applications that translate from ActionScript to Objective C and to Android’s flavor of Java, suddenly it’s much easier for developers to maintain their applications on multiple platforms. It looks like Apple wants to make sure that being multi-platform stays expensive, and that people just stick with building applications for today’s dominant platform — iPhone.
April 8, 2010 at 5:50 pm
Actually it does not build native iphone-apps. The full Flash-runtime is linked in as a library.
April 8, 2010 at 8:41 pm
This wording is so general it could be applied to any function, method, or library I include in my app, whether developed by myself or another company.
April 8, 2010 at 10:46 pm
The curiosity I have about the clause is the eventual suitability for MacRuby to be used for iPhone development. It’s not iPhone capable now, on account of garbage collection, but it was still something nice to dream about having available.
April 9, 2010 at 9:20 am
I know this shouldn’t be a shock after other platform-protecting moves by Apple, but it still surprises – the strength of the brand is so strong.