Despite Apple's new iPhone OS 4 SDK licensing agreement preventing the use of cross-compilers, Adobe launched Flash CS5 with Packager for iPhone today which aims to do just that -- let developers turn Flash apps into iPhone apps.
Adobe announced the complete CS5 suite of apps as well, including Photoshop, Illustrator, and Premiere, but the mobile world's attention remained fixed on Flash CS5 and the escalating war of words on the interwebs. While many developers are understandably upset with Apple, the countervailing trend from an Apple point of view is lining up behind the "control" and "quality" arguments. Apple doesn't want to lose control of the iPhone platform to Adobe any more than it does to Google. It wants to release the OS it wants, when it wants, and not have to worry about third-party warlords holding it, and large percentages of its app user base, hostage.
Jason Snell at Macworld puts it this way in his treatise on Apple against the world:
Apple doesn't want apps that don't feel like native iPhone apps on the iPhone. It doesn't want Adobe to aid developers in creating a world where App X for iPhone and App X for Android are indistinguishable from one another. Apple doesn't want to introduce new iPhone features and then watch as nobody takes advantage of them because Adobe hasn't updated its development system yet. Or, worse, watches as Adobe refuses to adopt them because the other operating systems don't support those features.
If iPhone apps are one of Apple's greatest assets, a lowest-common-demoninator app world is Apple's greatest nightmare. Apple wants the iPhone app experience to be created using Apple's native tools by developers who are engaged with the platform and falling over themselves to support Apple's latest features. These are the developers who were downloading and installing iPhone OS 4.0 on Thursday and poring over the documentation, getting ready to dig in and start updating their apps for this summer's release.
Louis Gerbarg of devwhy.com claims Apple has been held hostage, forced to dump APIs, change engineering plans, and otherwise been thwarted in the past by such dependencies. He also thinks Adobe shares some of the blame for the current situation:
Adobe is a large company with a significant, and complicated, relationship with Apple. They have frequent high level contacts and meetings. Adobe has known for quite some time about Apple's desire not to have Flash on the iPhone. There is no doubt in my mind that if they asked Apple to bless this they were rebuffed, and if they didn't ask the only reason they didn't was because they knew Apple would say no. In either event, they announced the product to their customers and sold them on an idea they were not in a position to deliver, hoping Apple would be unwilling to piss off developers by not fulfilling Adobe's promises. They tried to force Apple's hand by putting Apple in a position where in order stop the Flash they would have to do it publicly in front of Adobe's users. That was a bad call on Adobe's part.
Personally, in this whole thing the most distasteful part is that Adobe used its userbase and their livelihood as a bargaining chip. These kinds of high stakes negotiations have happened in the past many times. They are much more common than people think, and until the last few years Apple was more likely to be on the weaker side of the negotiation.
Hence our titular metaphor of Vader shaking his firsts, but not the real Star Wars Vader, the tiny-handed one from Episode 3 who screamed "nooooooooooo!" while shattering everything around him. That Vader.
How this ultimately turns out is anyone's guess, but if your immediate goal is to make truly great apps for the iPhone, you'll likely do better sticking to Xcode for now...