iPhone developers: Locked into Apple's walled garden

In Steve Jobs' world, smartphone developers play by his rules -- or risk getting shut out of the iPhone platform

Developers waiting for Flash or Java support on the iPhone and iPad can be thankful for one thing, at least: Apple is finally talking straight. The new license agreement for the iPhone 4.0 SDK makes it clear that neither technology is forthcoming on Apple's platform -- not now or anytime soon. But the license's wording couldn't have been any more obvious than Apple CEO Steve Jobs, who spoke at the iPhone 4.0 launch event last week. Asked by InfoWorld's Paul Krill whether his company's stance on Flash or Java would change, Jobs responded with a curt "no."

Previously, Apple and its apologists had offered various excuses why Flash and similar technologies weren't a good fit for the iPhone. At first, pundits speculated that they might pose security risks, either to the phone itself or to AT&T's mobile network. Then Jobs himself suggested Flash would run too slowly on the iPhone's ARM-based processor; Adobe protested. Now the truth is out: Developers can't use these platforms not for any technical reasons, but because Steve Jobs and his lawyers say they may not -- period.

[ Follow the latest news in software development with InfoWorld's Developer World newsletter. | Get the best iPhone apps for pros with our business iPhone apps finder. ]

According to the revised iPhone SDK license, "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)."

Such wording appears to exclude not just Flash and Java runtimes from the iPhone platform, but also cross-compilers that translate foreign platforms into iPhone binaries. That nixes technology forthcoming in Adobe's Flash CS5 and MonoTouch, a Novell tool that allows developers to compile iPhone apps from C# code.

This unprecedented move has iPhone developers in an uproar, and the situation is only likely to get uglier. Rumor has it that Adobe plans to file a lawsuit against Apple in the next few weeks, alleging anticompetitive practices. But the real question is, given such a hostile environment, why on earth would developers stick with Apple's platform?

Steve Jobs: My way or the highway
These latest restrictions are hardly the first time Apple has wielded the stick against the iPhone developer community. The iPhone App Store is notorious for rejecting apps out of hand, citing any number of reasons, not all of them technical. If you duplicate features of Apple's own apps, you're out. If your apps are deemed "too adult," they're removed from the store. Good luck contesting Apple's decision -- and without the App Store, you're basically out of business, since only jailbroken phones can install apps from other sources (and jailbreaking violates Apple's warranty).

But the new SDK license takes Apple's heavy-handedness to a new level. Under the new rules, not only are the functionality and content of your app restricted, but the very language in which it is written is subject to Apple's veto. This is a particularly Orwellian twist, considering iPhone apps are distributed as binary executables. Without looking at the original source code, no user could tell which language an app was written in. Nonetheless, Apple wants to be sure developers haven't committed the thoughtcrime of using unsanctioned tools.

1 2 Page 1
Page 1 of 2
InfoWorld Technology of the Year Awards 2023. Now open for entries!