A few weeks ago, I decided to take a rather large fiscal plunge and pick up my own copy of the Adobe Production Suite CS4. It’s a great, albeit pricey, package including various pieces of industry standard video, web, and motion graphics production software like Photoshop, Illustrator, Flash, Premiere, After Effects, and more.
I was, of course, somewhat peeved when I discovered I’d chosen to make my purchase a mere period of weeks before the release of CS5. But hey, no big deal; the changes between these versions couldn’t possibly be too dramatic. Could they?
Of course, I then find out about all the wonderful new features in CS5, including Photoshop’s awesome new “content aware” tools:
Hyperbolic parody aside, one of the other more intriguing features is Flash CS5′s compile for iPhone capability. It implies that someone may be able to use Flash to create a multi-platform application, deliverable on the internet and the iPhone without having to redo the application in Objective-C, C++, or C. As someone who is more experienced with ActionScript/Flash than those more traditional programming languages, I found myself intrigued.
I then discovered, however, the recent hubbub around the internet regarding Apple’s latest revision to their iPhone developer agreement. In particular, the changes to section 3.3.1 that came packaged with the new OS4 beta SDK (Software Development Kit). The section used to read:
Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
But now reads:
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).
Translation: build with our methods or don’t build at all.
This section now prohibits the use of any third-party compiler or development platform that doesn’t have the explicit approval of Apple. This continues a consistent trend of xenophobic company policies that have become all but expected of the contemporary Apple.
I can, however, understand why such policies are in place. For example, Apple refuses to allow its Operating Systems to be run on non-Apple hardware, a decision that forces those who enjoy the Mac GUI and infrastructure to buy Apple. Likewise, iPhone developers having to jump through Apple’s hoops corrodes the ability of competitors to profit off of creating developer tools for the platform. It also gives Apple a strong method of enforcing quality controls.
The downside? A closed ship can get stuffy. Applications developed for multiple platforms (not just the iPhone) are far less likely to dance to the tune. For example, there’s a good chance that Firefox (which I need not point out is wildly popular with Mac users) may not be developed on OS4. Likewise, singular pathways for development can stifle innovation as much as they prevent substandard apps.
The reaction among the developer community seems largely negative, though it is yet to be seen if this is simply irritation or the type of thing that will cause more than a few defections to Android. If the latter proves to be the case, then Apple may have to “think different” (see what I did there?).
For now, at least, I don’t have to feel quite as bad about being stuck with CS4.
Categories Digital Media
Because of the “coincidental” timing with the launch of CS5, few are looking further than Flash as a target. There is, however, historical precedent to indicate an impending change in architecture.
When Apple indicated to developers that they had to start using XCode rather than the previous leader in mac development tools (Metroworks CodeWarrior), it was an unspoken herald of the change from PowerPC chips to the Intel architecture. Two years later, when the change was announced, devs using XCode were putting out Universal Binaries on day one. CodeWarrior users were left in the dust. One possible implication that could be drawn as a result is a switch to a new type of processor.
Either way, I’m more than a bit annoyed after having done some poking around in PhoneGap and Unity, both of which are now on somewhat dubious ground. I still think there might be more to it than just riling Adobe, however.
I don’t follow, though. Apple is not suggesting that users provide different/specific code in their applications. They’re banning the use of compilers in general. The end result of an app created in Objective C and an app created in Flash, then compiled to Objective C is the same, yes?
If so, it couldn’t have anything to do with new hardware…
To quote Yogi Berra:
“In theory, there’s no difference between theory and practice. In practice, there is.”
In theory, you’re absolutely right.