DavidTucker.net — Observations about Apple, the iPhone, PhoneGap, and the Flash Player
If you choose not to follow the link above, understand that David develops in Flash and AIR.
Observation #1 — Apple has proactively sought to eliminate any cross-platform development platform on the iPhone.
What David wants is to be able to develop once to Flash and target multiple platforms including the iPhone.
He also mentions PhoneGap and quotes a section from the iPhone SDK agreement that prohibits applications that install or launch other executable code and he links to an Ajaxian post about apps that have been rejected from the App Store because of their use of PhoneGap. But the PhoneGap site says the iPhone is supported and has a gallery of apps that are in the App Store.
It’s not clear that the PhoneGap approach is actually prohibited. As I understand it, PhoneGap wraps a WebKit shell around your code and I would think that WebKit qualifies as an Apple API or interpreter. Maybe it’s a loophole Apple would like to plug. Maybe the App Store rejections were based on a misunderstanding of what PhoneGap is. The PhoneGap situation seems unclear.
There is no doubt about Flash. Flash is unequivocally prohibited.
Observation #2 — The Flash Player hasn’t been approved because it is a threat to Apple’s App Store Revenue.
There has been much concern within the development community about the downward race in prices on the App Store. Some developers have expressed disappointment that Apple hasn’t taken steps to curb the downward pressure on prices. Yet in terms of prices Apple has been very laissez-faire.
Apple is a hardware company. The App Store could be a loss leader. I know it isn’t. But the primary purpose of the App Store is to sell iPhones, not apps.
Observation #3 — Apple is only interested in helping Mac developers.
By ‘Mac developers’ David means Mac and iPhone developers. He’s essentially restating observation 1.
I don’t expect a Windows version of Xcode any more than I expect a Mac OS X version of Visual Studio.
Since the iPhone was unveiled in January 2007 attendance at WWDC has risen dramatically because of an influx of iPhone developers. And there’s a growing trend of developers that started as iPhone developers moving into Mac development. It would seem that learning “Objective-C, Xcode, Interface Builder, Cocoa, etc…” is not a high barrier.
David says that performance and battery life issues with Flash on the iPhone are “just not true.” I see performance and stability issues with Flash in Safari on Mac OS X. If Abode is uninterested in resolving these issues on the ‘full-size’ OS why should I even imagine Flash is better on an iPhone? If David is right, Adobe isn’t helping themselves.
David concludes:
Why is [Flash] not approved? In reality – because of Apple’s revenue stream.
The revenue David is talking about is revenue from the App Store and revenue from developers. I think this conclusion is wrong.
Time for a little history. Once upon a time there was a small computer company named for a piece of fruit. It developed and marketed a wonderful new peripheral for its computers. It was called a laser printer. The laser printer created a new market segment known as desktop publishing. Part of the magic of the laser printer was a built-in interpreter for a specialized language. The language and its interpreter were developed by an even smaller company. The even smaller company was able to leverage its technology into a lingua franca and take a large piece of the desktop publishing market for itself.
Apple doesn’t want Flash on the iPhone because they don’t want to repeat the ‘mistake’ of PostScript on the LaserWriter.
So yes it is about revenue but not on the tactical scale of App Store revenue today; it’s about long term strategy.
Apple is supporting HTML 5 in Safari. It’s not about being against cross-platform development. It’s about not ceding control to another company. Everything critical in the stack must be either proprietary to Apple or be an open standard. That’s why there’s no Flash plugin and no Java VM on the iPhone. And I don’t expect there ever will be.

I for one really dislike the concept behind Flash, Silverlight, Java Applets and the likes. Looks like every year there is yet another company that creates a new closed standard full of bugs that only they control - and they try to force everyone to use it. See example, Flash, Silverlight, Java.
There are some clearly defined (if sometimes incomplete) open standards, like HTML/EcmaScript/CSS/etc... which are being defined by multiple companies and belong to no single company. IMHO Apple being against closed platforms (Flash, etc) is a push towards making the open standards better, and make tools for developing on these standards better.
If there was an application similar to Flash development environment that would output HTML5 instead of Flash, that would be a much better product from Adobe for the world to have. WebKit is open, and Apple, Google, IBM, and some other companies are trying to push (where possible) to use the open standards more.
I don't think it has anything to do with revenues ... just openness regarding technology, so that technology gets better in the long term.
Posted by: Evgeny | June 26, 2009 at 05:52 AM
@Jonathan - While we might obviously disagree on some points - you covered your points professionally and with good detail. Nice post!
Posted by: David Tucker | June 26, 2009 at 08:51 AM
@Jonathan - In regards to the points made - I do want to make on counter-point. I agree that Apple's main goal is to sell iPhones. That is a part of the reason I said that Apple is against cross-platform development. If the best mobile developers are building applications for the iPhone - who will buy something like the Palm Pre? Apple's best way to sell iPhones is to keep the best apps on the iPhone and ONLY on the iPhone.
I understand the HTML5 point as well - but Apple also knows that many applications simply cannot be done efficiently in HTML5. Also, no other phone has anywhere near the HTML5 support the iPhone does - so until other phones support it in the same way - applications are not cross-platform. I also see (this is a prediction and not fact) that Apple will limit some of the HTML5 functionality (like the local cache) and save that functionality for applications built for the SDK.
In short - Apple needs to sell iPhones and they do that by having the best apps on the iPhone - and ONLY on the iPhone.
Posted by: David Tucker | June 26, 2009 at 08:56 AM
@David - Apple shipped database support in Safari 3.1 and iPhone OS 2.0 and application cache support in Safari 4.0 and iPhone OS 2.1. I checked Apple's docs and googled but I didn't find any indication of limits. Doesn't mean there aren't of course.
Posted by: Jonathan Dodds | June 26, 2009 at 09:28 PM