You"ve gotta hand it to Steve Jobs. When the man decides that he wants something to be removed (in this case, Flash) from a platform he created, he really goes the extra mile to make sure he does it right. With the release of the iPhone OS 4.0 beta today came an updated developer agreement, which featured an interesting paragraph: applications that link to documented APIs through an "intermediary translation or compatibility layer" are strictly banned, according to John Gruber, which means Adobe"s Flash-to-iPhone compiler is out.
Section 3.3.1 of the updated developer agreements reads as follows: "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)." What does this mean for developers? Firstly, they"ll have to use Objective-C + the Cocoa Touch frameworks to get an app out onto the App Store. The Adobe tool mentioned previously that"ll be featured in Flash Professional CS5 won"t cut it, nor will Unity3D or MonoTouch, tools used to convert .NET and C# based applications for use on the iPhone. Essentially, it spells bad news for Windows developers aiming to make a few extra dollars on the side (assuming they don"t use Xcode, naturally).
Apple is definitely very controlling when it comes to its platforms, which is both good and bad for consumers. Whether or not Adobe will choose to include the Flash-to-iPhone ability in Flash Professional CS5 has yet to be seen, but now that this is out in the open, there won"t be much use for it if they do.