Why Adobe's mobile strategy is fundamentally flawed
Adobe's current mobile strategy is very similar today to what it always was: get the Flash Player on as many handsets as possible. Let's qualify that statement, however, with some all-important details, starting with differentiating the two types of Flash support that Adobe wants to implement on devices:
- In-browser Flash support (plugin)
- Standalone Flash application support
In-browser Flash support is good*
Getting in-browser Flash support on devices is a logical and understandable goal and Adobe is right to devote as much effort as possible into making that happen. In-browser Flash support on mobile devices means that your mobile phone can render today's web (which, like it or not, contains heaps of Flash content) faithfully and thus provide a similar experience to what is possible on the desktop.
* That said, given that Flash content is notorious for its high CPU (and thus power) usage, and given that a lot of Flash content on the web today is undesirable from the perspective of the end user (ads, intros, etc.), it would make sense for such in-browser implementations of Flash to voluntarily default to a Flash Block behavior (i.e., have Flash disabled by default with the option to activate Flash content if and when the user wants to.)
The remainder of this post will deal with Adobe's attempts to get Standalone Flash application support in mobile devices.
Flash Lite: stillborn
Adobe's initial mobile strategy, dating back to 2005, revolved around getting a cut-down version of the Flash player called Flash Lite on as many handsets as possible.
According to Adobe the number of Flash Lite devices shipped should have reached 1 billion in 2009. While that seems like a huge number, it's rather irrelevant. For one thing, there is more than one version of Flash Lite so that 1 billion number includes outdated players. Also, that number hides further segmentation in that it includes both devices that support only in-browser Flash content as well as those that support standalone Flash applications. Finally, and most importantly, Adobe failed at making it possible for developers to monetize Flash content and failed to provide compelling reasons for developers to create Flash content for Flash Lite.
Why did Flash Lite fail? Because it went for a lowest-common-denominator approach, trying to support as many devices as possible, instead of focussing on creating a great user experience on one device and expanding from there. In other words, it failed because the focus was on features (in this case: wide-range of device support) instead of user experience.
Open Screen Project: same old, same old
You would think that Adobe would learn from its failure with Flash Lite that getting your technology on a huge number of devices isn't worth the effort if no one wants to use it. Unfortunately, their strategy hasn't changed with the introduction of the Open Screen Project.
The Open Screen Project aims to remove the fragmentation created by Flash Lite and ultimately aims to have a single Flash Player (the latest one) run on every device on the planet (cue: hysterical world-domination laughter). It seems that Adobe has learned nothing from the recent failures plaguing another company with a similar strategy for its operating system: Microsoft.
Where Microsoft struggles to provide at least a mediocre user experience across the countless hardware combinations that it must support, Apple runs circles around it: Having limited itself to a handful of hardware configurations – all, furthermore, within its control – Apple can provide its users with an exemplary user experience. Apple can do this because it wisely chose to control both the hardware and the software, limit segmentation, and focus on the user experience instead of expanding effort in a fruitless quest to run on any given hardware configuration on the planet.
Adobe's Open Screen Project is a Microsoft-style, Age of Features strategy that aims to get Flash running on every mobile handset on the planet, user experience be damned. The question is: who cares if you can run the same crappy experience on every handset?
Flawed to the core
(See this post for a more detailed discussion of Write Once, Run Anywhere and how it differs from Write Once, Compile Anywhere.)
So what should Adobe be doing instead?
In its scuffles with Apple to get Flash on the iPhone, Adobe has already stumbled onto the strategy that it should be following for mobile devices: focus on tooling and Just-In-Time (JIT) compilation to native applications.
In the upcoming CS5 Suite, you will be able to use Flash CS5 to create native iPhone applications. In other words, Flash developers will be able to reuse their existing skills to build native applications for the iPhone. Native applications that will be optimized for the iPhone and, hopefully, indistinguishable in terms of device-specific support and performance from native applications compiled using Apple's own tools.
This should have been an a-ha moment for Adobe. And I did hope that it would usher in a new era of focus on Adobe's core business (tooling). Unfortunately, that doesn't seem to be case, if this short Twitter conversation with Ted is any indication:
I respect Ted greatly but what he (and Adobe) are missing here is that FPS (the frame rate an application can achieve) is just one tiny variable that affects the user experience of applications on mobile devices. How well are native features like location, multi-touch, local storage, etc., supported? A virtual machine is always going to be a couple of steps behind native applications in terms of device-specific support. It's a losing game. The focus is wrong.
The majority of Adobe's revenue comes from sales of its Creative Suite products. As such, it should be keeping its eye on the ball and adding value to the CS products as much as it can by making them the premiere toolset for creating mobile content. Getting Flash application support on handsets is not a requirement for this. Instead, Adobe should drop the huge amount of time, effort, and money that it is currently expanding on this and instead focus on enabling Flash developers to make native applications for the top mobile handsets.
Adobe's next move should be to support native application creation on Android phones like the HTC Hero and Motorola Droid and maybe even adding support to Dreamweaver for building native Palm WebOS applications.