Is Adobe Flash Support Really Coming to the iPhone and iPad?

Today, someone posted a statement on Wikipedia saying:

On Mar 8, 2011, it was announced that Flash support would be coming to the iPad, iPad 2 and iPhone.

When I read that, I immediately wondered:

  • Is the battle between Apple and Adobe over?
  • Has Adobe come up with a way to install Flash without violating Apple’s iOS license?
  • Has someone released a great third-party Flash plug-in on the Apple Store?

The answer to all 3 questions is a resounding NO!!! The statement on Wikipedia is completely misleading.  The footnote citation references an article titled “Flash is coming to the iPad, iPad 2 and iPhone.”  The cited article is really about Wallaby, a tool for converting basic Flash animations to HTML 5.  Flash is not coming to the iPad, iPad 2, iPhone or iPod.  In other words, this is actually an example of HTML 5 being used to replace Flash.

I anticipate that Flash is going to decrease in popularity over the next 5 years.  I’m well aware that HTML 5 currently has a lower adoption rate than Flash Player, but that won’t last forever.  And many of the UI components built on Flash could be easily replaced with simpler controls using HTML 4 / CSS / JavaScript.

I’m not saying that HTML is a direct replacement for all the fancy animation that Flash can do.  I’m saying that a well-designed HTML/JavaScript interface is a better choice than Flash because:

  1. HTML/JavaScript works on more devices and browsers (including 90 million iPhones).
  2. HTML/JavaScript behaves like the rest of the web without special effort (example:  no complicated programming is needed to build scroll-bars that respond to a mouse wheel).
  3. Users don’t need or want super-fancy animation and “clever” interfaces.  They want something simple that gets the job done.

Overall, the Wallaby announcement is further confirmation of the conclusions in my recent article:  Top 10 Reasons Web Developers Should Avoid Flash.  I took some heat from Flash developers over that article, but I believe my recommendation is sound advice.

If you’re a Flash developer, please read my entire article (including the conclusion) and do your own research.  I’m not a “Flash hater.”  I’m an IT consultant who is trying to help people find the right tool for the job.  If “the job” is a public-facing website, Flash is usually the wrong tool (with exceptions noted in my other Flash article).

Happy coding!

Kick it on DotNetKicks.com [Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Top 10 Reasons Web Developers Should Avoid Flash

Subtitle:  Is Adobe Flash Still Relevant in Web 2.0?

I remember when I first saw Macromedia Flash (now Adobe Flash) more than a decade ago.  I was blown away seeing smooth animation and vector-based graphics running in a web browser.  I thought to myself, “This is the future of the web.”  And it was…  for a while…

During the early years of the Web, Flash was the only good option for animation and “sprucing up” a website.  Your choice was to either “have a boring HTML website” or use Flash, so it became wildly popular.  But today, its popularity is diminishing.  I’ll tell you why.

Here are the top 10 reasons why Flash is becoming irrelevant:

  • Device Incompatibility
  • Poor Search Engine Optimization (SEO)
  • Not an Open Web Standard
  • Better Alternatives Exist
  • Poor Maintainability
  • Complicated Client / Server Support
  • Poor Accessibility
  • Poor Usability
  • Poor Stability / Performance / Security
  • Apple Rejects Flash

Device Incompatibility

The Internet is no longer limited to desktops and laptops.  Today people access the web from mobile phones (iPhone, Android, Windows Mobile, Blackberry among others), gaming consoles (X-BOX 360, PS3, Wii), and various TV-based browsers (set-top boxes and even TV’s with built-in web browsers).  With most of these devices, Flash support is either nonexistent, or severely lacking.

Flash isn’t officially available for 64-bit browsers.  When you buy your brand-new Windows 7 laptop and open Internet Explorer (64-bit), go to the Adobe Flash Player download page. You’ll get a message saying “Flash Player 10.1 is not currently available for your 64-bit web browser.” You’re stuck either using a 32-bit browser, or using the Flash Player “Square” beta (which has been in beta for years).

Poor Search Engine Optimization (SEO)

Flash is not fully readable by search engines like Google, Bing and Yahoo.  It’s true that you can embed some meta information, but nothing comparable to real HTML content.  Search engines cannot infer the meaning, structure and relevance of a website built entirely using Flash.

Not an Open Web Standard

The Adobe Flash format is closed and proprietary.  It is not an open standard like HTML 5, CSS or JavaScript.  Adobe solely controls the future of the Flash format, its feature set and the Flash Player plug-in.  Adobe claims that 95% of website visitors have Flash Player, but third party studies show that it may be closer to 50% when factoring in all Internet-capable devices.

Better Alternatives Exist

Browsers have come a long way since Flash was introduced.  So have HTML, CSS and JavaScript.  Today, developers can take advantage of JavaScript frameworks like JQuery.  These libraries provide nice animation, effects and UI controls that facilitate a dynamic AJAX-driven Web 2.0 user experience.

Flash is not the only option for video.  HTML 5 supports embedding videos in a web browser without Flash.  The H264 video format has already been adopted by many websites, most notably YouTube.  H264 provides much better quality video than Flash (FLV format) at a smaller file size [yes, I know that Flash can play H264 videos; my point is that Flash Player won’t be required to watch H264 videos].  Many of the devices mentioned above (under “Device Incompatibility”) already support embedded video, or will support it soon.  Devices like the iPhone/iPod/iPad even have H264 decoders built into the hardware so you can watch high definition videos with minimal CPU / battery power.

Poor Maintainability

The only comprehensive tool for Flash development is Adobe Flash from (you guessed it) Adobe.  There are other shortcut tools for making Flash animations (like Swish) but only Adobe’s proprietary tools give you full control.  By comparison, there are many high-quality tools for editing HTML, CSS and JavaScript, including free and open-source options (heck, you could even use Notepad).

After you’ve released your Flash website, it’s also a hassle to maintain.  Changing a Flash animation can be complicated work, and it requires editing the original uncompiled .FLA file.  Then it has to be recompiled into a .SWF before being released back to the web server.

There are also human resource issues to consider.  Application development with Flash requires a very specific skill-set, and it’s rare to find a developer who is an expert at graphic design, animation, Action Script programming, data-driven client/server interaction, and server-side application architecture.   Even if you find a great Flash developer, this often leaves businesses stuck relying on a single person to handle all updates.  Pray that your Flash developer doesn’t leave or misplace the latest .FLA file.

Complicated Client / Server Support

Flash was created primarily for showing pretty animations in a web browser.  It was not intended to handle client/server scenarios where a database is involved.  Adobe has done a lot of work in this arena, and Flash can communicate with server-side data, but it’s a major hassle compared to other options.  Flash is generally not the best option for data-driven applications.

It is considerably faster, easier and more cost-effective to develop applications using a web language.  For example, ASP.NET and PHP can easily retrieve data from SQL Server and generate HTML for a web browser.  Flash introduces additional layers of complexity and more points of failure, making the application development process harder than it should be.

Poor Stability / Performance / Security

Flash is known to have issues in the areas of stability, performance and security.  It has been the cause of many browser crashes.  It requires a lot of CPU power, and can bring low-powered computers/devices to their knees.  I’ve seen mobile phones, netbooks and gaming consoles completely freeze simply because a user tried to watch a Flash video.  I’ll grant that Flash developers can influence performance, but it shouldn’t take an expert to make something that works well on all devices.

Poor Usability

Flash websites (i.e. the whole website is one big Flash object)  introduce several usability problems:

  1. Normal browser navigation doesn’t work. If you click on something inside the Flash animation, you can’t click the back button to return to the previous section.  This leaves users confused or frustrated.
  2. Bookmarks don’t work. You can’t bookmark a specific section of a Flash website.
  3. Touch devices aren’t fully supported. Many Flash applications rely on a mouse rollover for interaction.  This rules out most mobile phones, tablet devices and touch-screen PC’s.
  4. The “Find in page” feature doesn’t work. You can’t use the browser’s in-page search.
  5. Multilingual / localization support is complicated to implement. Any multilingual support must be built from scratch.  Automated translation tools (Google Translate, Yahoo BabelFish) do not work on Flash content.
  6. The user interface is often awkward. This is not the fault of Adobe, but of many Flash developers.  It’s common for Flash developers to add long intro animations (yawn) and special effects that look pretty but waste the user’s time.  Instead of a normal menu, a Flash developer may try to get fancy and create a spinning orb for navigation.  Simplicity = usability (look at CraigsList.com), and Flash was created to be “fancy” not “simple.”

Poor Accessibility

Because Flash .SWF files are compiled (binary, not text), screen readers cannot read them.  That is, text-based web browsers for the sight impaired do not work.  This is not a concern for some people, but large corporations and government websites care about accessibility.

Apple Rejects Flash

The most intriguing article I’ve read about the future of Adobe Flash came from Steve Jobs (founder of Apple).  His article “Thoughts on Flash” sums up the reasons why the iPhone, iPod and iPad do not (and never will) support Adobe Flash.  I’d think twice before building a website that leaves 90 million iPhones out in the cold.

Steve Jobs is not the first to reject Flash.  Industry experts have expressed concerns for many years.  Usability expert Jacob Nielson published an article in October 2000 titled “Flash: 99% Bad” stating that “99% of the time, the presence of Flash on a website constitutes a usability disease…  it encourages design abuse, it breaks with the Web’s fundamental interaction principles, and it distracts attention from the site’s core value.”

Most of the issues I’ve mentioned are also described in detail at Wikipedia’s Adobe Flash article.  Someone posted a statement on Wikipedia saying, “On Mar 8, 2011, it was announced that Flash support would be coming to the iPad, iPad 2 and iPhone.”  This is completely untrue.  The citation references an article about Wallaby, a tool for converting basic Flash animations to HTML 5.  In other words, this is actually an example of HTML 5 being used to replace Flash.

Conclusion

Flash was a cool technology, but it’s not the future of web development.  It’s time for web developers to move on.

I don’t hate Flash, and I’m not ignorant of its feature set.  I think Flash is an powerful technology with a lot of capabilities. It can be used in a lot of scenarios. I just don’t think it should be used in many of them. Flash use should be limited to instances where HTML/JavaScript/CSS can’t do the job.

I see three legitimate reasons to use Flash:

  • Display of video (until the HTML 5 standard has sufficient adoption)
  • Banner ads (because Flash sure beats GIF/JPG for advertisement)
  • Browser-based games (because Flash beats Java in this arena)

My argument is that Flash should not be used for things like:

  • Development of an entire website.
  • Development of complex data-driven applications.
  • UI components such as data grids, content rotators, tree views, input forms, etc.

Some of my readers have expressed that HTML/CSS/JavaScript/JQuery are not a substitute for all of the animation power of Flash.  I completely agree – Flash is pretty unbeatable in terms of fancy animation, transitions and effects.  My point is that users don’t care about a super-fancy interface.  They care about one that works on their device and is simple to use.

When Flash is used instead of HTML/CSS/JavaScript on a public-facing website, you are guaranteeing that some users will not be able to use it.  To me, device incompatibility is the most important reason to avoid Flash.  If you’re a web developer, you should aim to produce a site that everyone can use from any device.  Note:  This article is intended for web developers building public websites, not in-house applications (where your organization can control adoption and ensure each user has Flash).

I would rather invest my time developing a website that everyone can use, even if it’s not as fancy.  That’s my opinion, and my recommendation to my clients.  My readers are welcome to form their own opinions and make a different recommendation to their clients.

PS – Microsoft’s Silverlight has many of the same shortcomings.  My recommendation is the same:  use HTML, CSS and JavaScript instead.  Then use whichever server-side technology you like.

Kick it on DotNetKicks.com [Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]