“If Flash falls out of favor, web developers will either have to develop many different versions of their web sites and native applications to take into account different HTML 5 implementations, deny access to browsers that do not support their version of HTML, or dramatically reduce the functionality of their sites in order to deliver content to the least-advanced browser.” – Itai Asseo, VP, North America Lead, Digitas Labs.
Until about three years ago, things were simple: if you wanted to deploy a website with ‘rich content’ – such as games, video, interactive animation, or sound – you used Flash. There simply was no other technology that could do it. Flash had saved us from the horror of installing multiple media codecs (remember QuickTime, Windows Media Player-plugin, and Real Audio, for example?) in our browsers and unified all its multimedia power into a single plugin.
The scripting language that Flash used had evolved into a fully-featured, strong typed OOP language (ActionScript 3), and the tools to create Flash content, such as Adobe Flash Professional, were sophisticated, mature, and easy to get to grips with.
Apple iOS: disabled
On April 3 2010, the Wi-Fi version of the first Apple iPad went on sale in the United States. A browser-enabled device with an operating system that didn’t allow the Flash plugin to be installed. iPad users visiting sites with Flash content were confronted with a blue LEGO-block with a question mark on it, which made it look like something was wrong with the site.
At the time, rich-content sites (with games, video, interactive animation, or audio) were coded in Flash, so showing off the browsing capabilities of your new beloved machine must have been quite a frustrating experience for the first iPad owners.
In a reaction, Apple’s CEO Steve Jobs came up with a statement defending his choice not to allow Flash on iOS. This “Thoughts on Flash” post drew immediate and harsh criticism, with Steve Jobs being accused of outright lying by many.
Jobs’ assertion that Flash is not open, or closed and proprietary, attracted a great deal of attention with references to open source projects that take advantage of Adobe making the Flash specification open for developers to build on.
Various members of the industry have claimed that Steve Jobs rejected Flash on the iPhone for business reasons, rather than the technical reasons he mentions in his letter:
|“||Allowing Flash—which is a development platform of its own—would just be too dangerous for Apple, a company that enjoys exerting total dominance over its hardware and the software that runs on it. Flash has evolved from being a mere animation player into a multimedia platform capable of running applications of its own. That means Flash would open a new door for application developers to get their software onto the iPhone: Just code them in Flash and put them on a web page. In so doing, Flash would divert business from the App Store, as well as enable publishers to distribute music, videos and movies that could compete with the iTunes Store.||”|
|Why Apple Won’t Allow Adobe Flash on iPhone, Wired Magazine, (2008)
|“||This is not about technology. The criticisms from Apple about Flash can also be applied to many other systems that Apple has not directly opposed. Therefore Apple’s stance appears driven by their business need to protect the iPhone platform against the threat of a cross-platform competitor.||”|
|Why Adobe Flash on mobile isn’t dead –Ray Valdes, V.P. of Gartner Research (2010)
|“||[Apple is] very, very keen to keep control of the end-to-end experience and therefore having a separate runtime in the form of Adobe is a problem, One could argue it could be detrimental to Apple’s business model because there’s a lot of Adobe games – or games that are delivered in Flash – which are free and therefore that would detract from people downloading [paid gaming content] from the App Store.||”|
|Ben Wood, Director at CCS Insight
But Apple’s marketing hype was so strong that many Apple consumers actually believed that not being able to view Flash content made their machine more sophisticated and improved their user experience.
At the same time, Apple began pushing HTML5 as a replacement technology for Flash. Again, Apple marketing managed to make consumers believe that “anything that can be done in Flash, can be done with HTML5.” If you look at this HTML5 – Flash comparison table, you’ll see that even today, HTML5 has a very long way to go before it catches up with Flash.
Industry-wide, budgets for Flash projects started to dry up, while at the same time, the Flash platform gained incredible new features in monthly updates. In the end, it wasn’t any shortcoming of Flash technology, but Apple’s protectionist hype, and the early-adopting Apple yay-sayers that drove Flash out of the mobile browser.
HTML5: content delivery fragmentation
Three years later, and also three years of HTML5- and Flash platform development later, we are looking at this landscape:
- HTML5 is struggling to incorporate comparable functionality to what was present in the feature-set of Flash when Adobe aquired it from MacroMedia in 2005, and still uses Flash as a guideline for features that are yet to be implemented
- most modern browsers support most HTML5 specifications, which means that most browsers don’t support some of them, and none support all of them. In order to find out which features you can use more or less safely, you could use this insane checklist. That list may look completely different tomorrow
- HTML5 and audio: you need to provide your audio file in multiple formats for these to work, namely in Ogg Vorbis and AAC. Ogg is basically an open-source, patent-free, royalty-free version of MP3. Great! Unfortunately Internet Explorer and Safari don’t support it. AAC is also great, but FireFox doesn’t support it.
- In June 2010, hardware decoding of video content became available in Flash Player and AIR
- September 2010: Apple lifts restrictions for apps in the in the AppStore that are built using ActionScript3 (AIR apps, to be specific). In my opinion, this is proof that not allowing Flash on iOS is simply corporate protectionism.
- In October 2011, Flash Player and AIR gained access to hardware-accelerated graphics rendering on all supported platforms, including Windows, MacOS, Android and iOS, through the Stage3D APIs. AIR applications are now indistinguishable from native apps – performance-wise.
In a lot of scenarios, HTML5 video can (and sometimes even must) be used and it can look absolutely great. However, there are some drawbacks, which are also the reason why major video-delivery sites such as YouTube still rely on Flash (when they can):
- you need to supply your video in various formats to cater to all browsers and fallbacks. H264 and WebM cover all browsers (except Firefox 3.6 which needs Ogg Theora). HTML5 video embed code looks something like this, notice the ‘type’ attribute:
<video poster="movie.jpg" controls> <source src="movie.webm" type='video/webm; codecs="vp8.0, vorbis"'/> <source src="movie.ogg" type='video/ogg; codecs="theora, vorbis"'/> <source src="movie.mp4" type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"'/> <p>This is fallback content</p> </video>
- HTML5 doesn’t and won’t support DRM. Video content played in HTML5 will end up as an unprotected video file in the user’s browser cache, ready for redistribution. If you want to make money from the playback of your video content, you can’t use HTML5.
- There’s no full-screen support. The HTML5 version of YouTube has a full-screen button that expands the browser to fill your screen.
- Video with dynamic bitrate (for streaming on unstable connections) is not supported by HTML5
Besides content delivery- and browser fragmentation as a result from the mass-migration from Flash to HTML5, content creators now also need to be aware of increasing device fragmentation, both in technical specs and operating system versions. Device fragmentation means that devices come in many forms, and since the introduction of ‘smart’ mobile devices, fragmentation has grown exponentially.
Staying Up to Date
Only a couple of months ago, Apple did not fail to point out that over 80 percent of the iOS user base was then running the latest iOS version, compared to the mere 7 percent of Android users who had access to the latest Android OS version (which was then Ice Cream Sandwich), when the majority was still running the previous version.
There’s just one little problem with that. Sure, many iOS users can say they’ve upgraded to the latest OS and all, but it’s not like the ones with the older models get to enjoy all of the features of the latest OS. Most often, the hardware limitations prevent it from being so. In this case, the OS version simply becomes a statistic and not really a practical measure of a manufacturer or publisher being able to give its user base the most current features it can offer.
And then there’s Android. There are just so many devices out on the market, and more see the light of day faster than you can say Jelly Bean. With every incremental update to Android, it just makes fragmentation seem worse than it actually is. For example, Galaxy S III users on 4.1 right now aren’t sweating because there’s no 4.2 just yet. It’s not that major of an update, but the ‘fragmentation’ is giving the whole ecosystem a bad name.
Gadgets and their physical attributes
Another aspect of fragmentation is the devices themselves, or at least when it comes to their physical attributes, sizes and shapes and all that. You might have a utilitarian business phone, a mega-screened entertainment phone, a full-size tablet, and whatnot—in this age, there are phones of different shapes and sizes.
The iPhone has pretty much stuck to the same form factor until the relatively radical change that came with the 4-inch iPhone 5. You have your constant full-sized iPads, with the introduction of a new smaller iPad Mini, which isn’t really much of a problem as it makes use of the same aspect ratio as the older iPads. Android, meanwhile, has thousands of devices with different screen sizes, resolutions, setups, and spec sheets. So yeah, on this end, you can pretty much say the Google OS really is fragmented. Some would argue that choice is a good thing, as some people prefer their 4.7-inch or 5-plus-inch powerhouses but others would prefer more compact packages. Still, this affects the optimization of apps, as well as the effort that developers have to exert to ensure quality and usability in their endeavors.
One codebase to rule them all
Now, what if you wanted to deliver your User Experience as consistently as possible across all this fragmentation? What if you want to focus on effectively delivering your content, and not on the headaches of making it compatible with the overwhelming spectrum of device configurations out there?
Enter the Adobe runtimes: AIR (Adobe Integrated Runtime) and yes: Flash.
The Flash platform has always been about delivering engaging content as consistently as possible across as wide a range as possible of devices. It was in the early 2000’s, and it still is. The Flash runtime, either as a browser plug-in or as an AIR mobile application, is designed to take care of device specifics, allowing developers to focus on content and user experience.
Those runtimes have a built-in detection for the exact capabilities of the device they’re running on, including device OS versions, screen real-estate and (graphical) processing power, and it isn’t hard for developers to adapt their ActionScript3 code to those varying circumstances.
The Flash plugin is installed in the vast majority of desktop browsers (around 98%, as it has been for years), and the Adobe AIR runtime enables developers to package the same code into native apps for iPhone, iPad, Kindle Fire, Nook Tablet, and other Android™ devices, reaching the mobile app stores for over 500 million devices.
UPDATE: LinkedIn drops HTML5 app because HTML5 tools aren’t mature: “… There are tools, but they’re at the beginning. People are just figuring out the basics.” http://venturebeat.com/2013/04/17/linkedin-mobile-web-breakup/