Adobe gives up on Flash for iPhone and iPad, but leaves the door open
In an indirect yet obvious way, Section 3.3.1 of Apple's new iPhone developers' agreement binds developers to a promise that whatever they bring to the iPhone will be created exclusively for the iPhone. It effectively bans the use of cross-platform tools or middleware like Adobe Flash, by saying anything Apple approves must be coded in the company's own Objective-C, or in C or C++.
If Adobe were to have proceeded with its previous plans to forge an official, working Flash platform for iPhone, that would have been the defiant move. Instead, Mike Chambers, the company's product manager for Adobe Integrated Runtime (AIR), found himself yesterday afternoon sounding the retreat.
"We will still be shipping the ability to target the iPhone and iPad in Flash CS5," Chambers wrote. "However, we are not currently planning any additional investments in that feature."
It isn't clear to anyone, including Chambers, exactly how Apple will be able to enforce its provisions. The two possibilities are very strict policing of each and every one of its thousands of incoming App Store entries, or selective rejections that are intended to send a very clear message (similar to the record industry's former strategy of selectively prosecuting file sharers). But as Chambers said yesterday, if Apple were to be selective, the selections that would send the clearest message would more likely concern Flash than Titanium, MonoTouch, or Unity.
Adobe won't stop developers from using the tools the company already baked into its Creative Suite 5, for targeting the iPhone if they so choose, Chambers said. He just warned that if they do so, Apple may make their lives difficult. He said that personally, he'll devote the attention he would have paid to iPhone to the Android platform instead, inviting fellow Flash developers to follow suit.
To that end, in an interview with Fox Business last week, Adobe CEO Shantanu Narayen said Flash development for smartphones has reached the point where the latest versions may be released "in the second half of the year." Narayen made clear it won't be Adobe doing the releasing, but rather the companies that handle their respective platforms -- specifically Google, RIM, and Palm.
Apple's insistence on restricting development to its own tools and to an absence of middleware could have a detrimental effect on the quality of the iPhone platform over time. First, middleware such as Unity made it feasible for smaller development shops to get a handle on iPhone OS -- whether they were developing cross-platform or not -- engaged and excited an entire realm of developers who felt they could exploit the power of the platform using tools they could manage.
Unity is perhaps the most popular cross-platform game development tool that supports the iPhone platform. Like MonoTouch, its scripting engine is Mono, the open source work-alike for the .NET Framework funded by Novell. Although that scripting is essentially C#, the object-oriented C created by Microsoft (Objective-C is the object-oriented C originally conceived for the NeXT platform, brought to Apple when it reacquired Steve Jobs' services in 1996), the tools built by Unity around that platform are much more intuitive, and the language as a whole is both more popular and more widely taught. At the time of the iPhone's unveiling, the TIOBE Programming Community Index ranked Objective-C the #38 most popular language in the world, actually declining to #42 by April 2009. Today, Objective-C has risen all the way to #11, though C# (#6 and climbing) picks up new converts at about the same pace.
Objective-C's converts have apparently come rather suddenly, probably in anticipation of Apple shutting the door on approvals for apps built using other tools.
Second, Apple's move forces a decision among professional apps developers and service providers: Should they risk everything on one platform, even if it's a successful one?
That's not a decision that developers enjoy making. As Microsoft Chief Software Designer Ray Ozzie told reporters last November, from his discussions with mobile developers, he saw apps companies preferring to leverage as many platforms as they could, in order to justify the development costs they were putting in. Using widely accepted cross-platform tools helps lower those costs; using a tool that targets just one platform, and that requires specialization, raises those costs and thus reduces margins.
Ozzie foresaw a time when "app phones," as he called them (iPhone being one) were known not just for what features they contained, but what popular apps they were capable of running. And to be a popular app, you need to be available more than one place. (It's notable that Robbie Bach wasn't in the room to hear this at the time.) "If there's a market there, all the apps that count will be ported. Every app that matters will be ported to every one of them, because if there's a set of users and it costs $50,000 of consulting time to have somebody port a little app, it's going to get ported," Ozzie said. "So I just don't think there's going to be significant differentiation at the app level."
Apple's move disallows differentiation at the app level, at least on paper. But that's only if it enforces that differentiation. In a discussion among Unity developers today, developers there are hopeful that as long as their toolset can be used to produce binary code that can then be compiled by Apple's Xcode -- its prescribed iPhone OS developers' toolkit -- they will still be able to use libraries such as Unity iPhone 1.7 -- released just days ago -- to create their products.
The hope here among Unity developers is that Apple's only grievance is with the existence of middleware or JIT compilers or interpreters on its platform, which would enable developers to bypass its strictly regulated deployment channel.
That hope could have been brightened last week by the announcement from the makers of PhoneGap, an iPhone app development tool that doesn't use Objective-C, but rather enables apps to be built using common Web app languages such as JavaScript and CSS. Last Wednesday, PhoneGap announced it had communicated directly with Apple, and that it was told its tools were not in violation of Section 3.3.1.
In comments for that announcement yesterday, however, one independent Web developer whose profile lists cross-platform work, including .NET, advised PhoneGap developers to adhere to the spirit of Section 3.3.1 anyway. "Apple has strict iPhone / iPad Design Guidelines and you should follow [them] as much as you can," he wrote. "Don't do just 'porting,' that's why this Apple vs. Flash fight started and as you can see, Apple is winning! Rethink your app for the Apple devices if you can."