Apple Locks iPhone Developers in Its Walled Garden

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.

Some critics have argued, credibly, that recent moves by Apple seem designed to undermine Flash as an application platform. Apple and Adobe are longtime partners, but relations between the companies appear to have cooled since Adobe purchased Macromedia in 2005. Apple's decision not to support Flash on the iPad, with its generous screen, is a conspicuous sign that Adobe's platform has fallen out of favor with Apple's CEO.

It wouldn't be the first time Jobs took it upon himself to kill a platform. In a 2007 interview with the New York Times, he characterized Java as a burden for developers, claiming, "Java's not worth building in. Nobody uses Java anymore." While this statement sounds ludicrous on its face, it's certainly true in Apple's camp. Although Apple once promised to make Java a first-class citizen on Mac OS X -- and Jobs once went so far as to call Mac OS X "the best platform for Java development" -- Apple deprecated the Java API for Cocoa in 2005, leaving Objective-C as the only viable choice. It seems Apple's allergy to anything not invented in Cupertino won't let it embrace anyone else's platform for long.

Taking the blinders off
Not every developer is disappointed with the iPhone SDK's latest draconian twist. John Gruber of Daring Fireball argues that the new license terms will mean no change for most developers, and "iPhone users will be well-served by this rule." But this view applies mainly to those developers who are already comfortable doing things strictly the Apple way. "If you're an iPhone developer and you are not following Apple's advice," Gruber warns, "you're going to get screwed eventually."

Fortunately, getting screwed and being led like cattle aren't the only options for smartphone developers, just as the iPhone OS isn't the only smartphone platform on the market. A growing number of developers are waking up to the idea that Apple may not have their best interests at heart. According to a recent study by AdMob, a mobile advertising firm, 70 percent of iPhone developers plan to release apps for Google's rival Android platform in the next six months.

Among the die-hard Android supporters is Tim Bray, co-creator of XML, who recently took a job at Google as a developer advocate for the Android platform. Of Apple's iPhone ecosystem, Bray says, "I hate it. I hate it even though the iPhone hardware and software are great, because freedom's not just another word for anything, nor is it an optional ingredient."

Sadly, however, developers alone don't make a market. Consider Palm -- its WebOS platform is arguably the most attractive environment for smartphone developers, and Palm made a point of encouraging an active developer community from the start. And yet, while the iPhone App Store boasts more than 100,000 apps, Palm can claim but a few thousand, and sales of Palm handsets have been 25 percent lower than analysts forecast. This week, the other shoe dropped: Rumor has it that Palm, defeated, is now up for sale.

It seems smartphone customers don't care whether developers for their devices are free. Instead, they care about what their phones can do, and in that race Apple is far ahead. Until Android or some other platform can slow the iPhone's momentum, mobile developers are faced with an unpleasant reality: It's Steve Jobs' world. You just code in it.

This article, "iPhone developers: Locked into Apple's walled garden," originally appeared at InfoWorld.com. Read more of Neil McAllister's Fatal Exception blog and follow the latest news in software development and mobile computing at InfoWorld.com.

For comprehensive coverage of the Android ecosystem, visit Greenbot.com.

Subscribe to the Smartphone News Newsletter

Comments