There are a lot of reasons why Flash is being excluded from the mobile platform today, especially on the highly anticipated Apple iPad. Before we jump into these reasons, lets take a look back in time.
Origins
At the time when Flash was released by Macromedia in 1996 after its purchase of FutureWave, Apple stock hit $18 a share, Google had just been developed as a research project in Stanford, Windows IE 3 launched and Intel released the 200MHz P6.
Over the next 10 years, the prevalent computer form was the desktop and then the laptop. It is of course important to note that during this period, computer processors speeds grew from 200MHz up to 3.00GHz and they got smaller and more efficient. However, the focus was still on creating more powerful computers at the expense of battery life because they were still going into desktops or laptops that had 2 - 3 hours battery life and spent most of their times plugged in.
The Smartphone
In the smartphone world, 2006 was the year of the Motorola Q, Blackberry Pearl and Nokia E62. The battle was for which phone could do email the best as the smartphone was first defined by the Palm Treo and then the Blackberry devices. If you read through the CNET Nokia E62 review, this paragraph jumps up about the web experience on the phone.
The E62's browser will present you with a thumbnail of the full Web page so that you can easily navigate to a certain point on the site, rather than having to scroll all over the place.
Another interesting thing to note is that Cingular (now AT&T) was just building its 3G network and browsing the web on your phone was still not an important feature at the time and mobile web browsers were still trying to make the experience good any way they could.
Then came 2007 and Apple introduced the iPhone with a full, true mobile web browser, not a gimmick like the E62 but with a larger screen than other phones, and a new innovative way to move around the page with double tap to zoom. With the introduction of the iPhone came a flurry of other devices with improved web browsers, 3G connections and multimedia applications. The most important thing the iPhone led to was the fact that the mobile web was now a big part of the average consumers need on smartphones. I may be wrong but before the iPhone, I was using a Sony Ericsson M600i that would just load a large version of a web page and I would have to navigate my way around it using a small screen. This made browsing the web a chore, and I don't believe I know anyone who would say different about their previous web mobile experiences.
When the first iPhone was released, it didn't have Flash and not many people noticed, but as browsing the web became an expectation and major part of cell phones, something else began to happen. People everywhere would try to go to a website and not be able to see its contents because it was a Flash site. I remember this experience and thought something was wrong with the EDGE connection till I realized what the reason was later on my laptop. Now the the legendary Apple tablet, the iPad has been released to try and completely make us dependent on a mobile platform, but wait... it doesn't have Flash!!! Really???
This was the reaction of many people who proclaim this as the reason they will not be buying an iPad when it is finally available. The reason being a Tablet computer which has internet browsing as one of its major features can't show a lot of websites out there especially Hulu. The Hulu point is irrelevant because they will definitely make either a web optimized version or an app based on H.264 playback. Most of the Flash web however will be left in Limbo.
Flash Today
Lets take a look at the requirements for Adobe Flash Player 10 and tell me what you notice. On a Mac, the recommended minimum requirement for standard and HD video playback is a Power PC 1.8GHZ or an Intel Core Duo 1.33GHz with 256MB of RAM and 64MB of VRAM. Now lets compare this to the only certain fact we know about the iPad in that it runs on a 1GHz Apple A4 ARM processor. I think of this akin to downloading a movie on 56K. it will work, you will eventually get the movie but in this day and age the speed would be a disappointment. A few years ago, taking a few hours to download a movie was acceptable but now expectations have changed and people want to be able to download full movies on their phones almost immediately. My point is that running Flash on this device will not meet expectations. It will run slowly and if it does perform, it will force the processor to use a lot of power thereby drastically reducing battery life.
Flash performs well on a lot of netbooks by accessing accelerated graphics options using the GPU and other hardware accelerations such as Quartz and Open GL. These are not fully available on a mobile device like the iPad, especially not to a third party application or web plug in.
The point is that Flash over the years has grown to be a resource heavy application which can thrive on our even more powerful desktops and laptops. The mobile hardware though is still young. If you take into account that you couldn't run Windows Vista on a machine from 1996 with a 200MHz processor, you understand that at this point mobile processors and graphics cards are not ready for this type of application. This is why we are building new optimized apps for all our mobile devices and not just porting them from the desktop. Why is this consideration not being taken with Flash, because it is a web app and people don't realize that it runs just like a desktop application with access to hardware and a "background application".
In the future as more people buy mobile devices and the processors get faster and smaller as well as more efficient, we will begin to see even more powerful mobile applications. At this point, a resource heavy application like Flash will be okay. Heck we might even port over the full Photoshop application on a device like the iPad.
Another problem is one I pointed out in an earlier post after reading this article about the way Flash applications are built. The focus again is on the use of a mouse to navigate the site with hover capabilities and a separate click function. On a touch screen, this ability is negated which will lead to broken actions and UI elements. The things you expect from using your iPhone wont work on a Flash based site or application and this would be a problem for the average user. The expectation that because it runs on your desktop it should run on a mobile device is just not true yet. This is why even Apple is rebuilding all their applications for their mobile devices and all desktop applications are rebuilding their applications. Even now if you have an iPhone app, you will probably want to build an iPad specific app because although it runs the same iPhone OS, it is a different platform altogether.
Flash Mobile Options
What Flash needs is to step back and re-evaluate its options. I believe they have two options.
Flash Lite
Adobe has something called Flash Lite and the requirements here are less than that needed for Flash 10 but definitely doesn't have all the features. This player could however be made to load optimized iPhone, iPad and other mobile device Flash sites and content. This Lite player application would have a new set of API ActionScript functions to create touch screen gesture based applications. Developers would then rebuild their sites based on this new touch based unified system and create something that is in line with gestures used on touch screen devices today, especially if this is the future of the computer. Then when a mobile device goes to a Flash based site, it will automatically revert to the Lite site created by the developer and the experience would be as expected (depending on it being bug free of course).
Flash App
If you are browsing the web on mobile Safari and come across a YouTube video, you just click and the video launches in the YouTube app. The same happens if you open an iTunes link or an app link, you are taken to the respective iTunes or app store application. The iPad will definitely contain this type of behavior allowing for links between apps.
Adobe can take advantage of this by building a Flash player application (not sure if this is feasible) so when you open up a page with Flash content, it provides you an icon like the YouTube play icon. Upon pushing this, you are taken to the iPad optimized app where the application can use resources like Open GL SE available to all apps.
So
At this point, Flash is not available on any major mobile platform and it is definitely because of hardware and software constraints. In order to keep battery life high and performance at an expected level, Flash is being excluded. It may soon be added to Android and possibly Windows Series 7 phones, but the highly complicated web sites and applications built for native computers won't feel as expected and will bring more complaints from users. The apps we have for our mobile platforms have been built to meet our expectations. Yes the iPad brings even higher expectations especially to at least have Flash but I still feel Flash (the way it is mainly used today) isn't an application built for the mobile platform. Adobe should take Flash Lite and build it up for the mobile platform the right way. Keep resource use low with high performance and a new API to keep applications at an acceptable mobile platform level.