We all know that you can't run Flash on Apple's mobile devices. But now Apple is trying to make it impossible - illegal - to develop for iPhones in any other development environment but Apple's own. Oh boy.
There's one primary target this interferes with: Adobe, whose upcoming Packager for iPhone in CS5 lets you develop applications in Flash (or specifically, ActionScript 3, Flash's native scripting language) and then cross-compile them so that they work in both a browser's Flash plugin and as a standalone iPhone application.
The thinking goes like this: While applications written this way might not have the performance of applications written in Objective-C, the iPhone's native development language, they'd be good enough - and they'd allow developers who already know ActionScript to avoid having to learn a new language. (At least in theory. The game above, "THAT ROACH GAME", was made with Flash. One reviewer noted "The animation and fades must be computed with a hand calculator. The developer should consider some night classes.")
In iPhone OS4's licensing agreement, however, it appears that Apple is specifically proscribing what languages can be used to make iPhone apps.
How would Apple ever know what language was originally used if the end result is Objective-C (or C or C++)? From speaking to a Flash developer who may abandon an iPad application he has already been working on in ActionScript, most of the cross-compilers* use a set of unified libraries that are easy to recognise, even after the being compiled into iPhone apps.
In short, Apple is forcing a huge number of developers to change their development environment of choice simply to encourage them to move away from a competitor's platform. It is unclear if apps already on the App Store that have been developed using these tools will be banned.
Hello, FTC? Apple just passed Go. ** [★]
* This changed agreement affects more than just Flash developers, although it is my opinion that it is only Adobe with which Apple is concerned strategically.
** OK, this isn't an antitrust issue, per se. But it's certainly unfair.