There’s been a lot of controversy over Apple’s decision to ban Flash (and Java for that matter) from the iPhone since the day it was released. Now, with the iPad about to hit retail, there’s been more debate on whether this was a technical decision or not, and whether it’s a severe limitation for the devices, or a blessing. Being both a Flash developer, an iPhone OS user an open source advocate, I thought I’d weigh in on the conversation.
Before I get started though, let me point out that I’m not a fan of Flash. I think it’s a real shame that there’s no open, official standard that lets web designers do the things Flash can. Adobe has the web in an awkward stranglehold right now, and I’d love to see that change. But the reality is that Flash is an integral part of the web today.
HTML5 isn’t an option just yet
One of the main uses of Flash on the web is video. People keep forgetting however that Flash is also used extensively for other things. It is the only technology available today that allows you to scale, rotated and distort objects. It has a 3D engine (which admittedly isn’t used widely, yet) and it offers the most advanced controls over typography of any tool in a contemporary web designer’s toolbox.
Flash is used in product demos (360 views), simulations, games, data visualizations and many other areas where HTML falls short. Perhaps the upcoming release of HTML5 will allow designers to do the same things without Flash, but until HTML5-supporting browsers are widely adopted, Flash is the (only) way to go. Especially since most of the HTML5 demos I’ve seen have been built using browser-specific (non-standard) functions and were nowhere near a smooth as Flash animation has been since 1996.
And as for video, HTML5 appears to have a long way to go before it can replace Flash as the web’s preferred video player.
There’s no fundamental issue with Flash and touchscreens
This blog post has been getting a lot of attention, and rightfully so. It clearly describes why some currently available Flash content won’t work very well on touchscreen devices like the iPad. However, the types of applications that Flash is often used for, especially games, have always needed different approaches for mouse pointer based devices and touchscreens. Whether they were developed using Flash or not. Flash allows you to accommodate both interaction models, and it’s no problem at all to create touchscreen interfaces in Flash.
Flash is not buggy, slow or overly power-hungry on other devices
Steve Jobs himself has said that Flash on the iPad would kill its battery life. And I’m sure it could. It’s very easy to create a Flash movie that uses every single CPU cycle available on whatever machine it runs on. But like with all other development platforms, that’s just bad programming. Flash is capable of techniques like bitmap caching which can reduce CPU utilization dramatically. And the soon to be released 10.1 version will be capable of outsourcing most of the remaining heavy work, like decoding video, to the systems GPU. Which is probably what the iPhone’s video player does too.
I’ll admit that the current Flash player is slow (by comparison to Windows) on OSX and Linux. It’s obvious that Adobe has not always maintained these players very well. There’s been debate over whether or not Apple is partly to blame for this, but fact is that the Mac version uses ten times the resources the Windows version needs to display the same content.
That being said, on ARM based sytems (like the iPhone and the iPad), things aren’t quite so bad. I get the feeling that many of the users commenting negatively about Flash as a technology are Apple fans who’ve not been getting the performance and stability that Flash delivers on Windows.
A business decision?
I’m convinced that Apple’s ban on Flash is purely a business decision. Allowing Adobe’s technology onto their devices would in turn allow content (music, video, games, etc) to be delivered to the devices without going through Apple’s immensely successful App Store. No matter how much Adobe would improve Flash’s performance and stability, it still wouldn’t make sense for Apple to change their minds. Not with billions of dollars coming in.
On a side note, Adobe has announced that the next major version of the Flash development environment will allow Flash applications to be exported as iPhone apps. So there will be Flash on the iPhone, just not in web pages. For me, the most interesting thing about this is that it will reveal whether Flash is really as bad as Jobs says. I wonder if those apps will drain battery life and crash frequently. If they don’t, that will tell us a great deal about Apple, won’t it?