An Adobe Flash developer on why the iPad can’t use Flash
February 20th, 2010
Daniel Eran Dilger
Morgan Adams, an interactive content developer who knows a lot about building Flash, wrote in with an interesting perspective on Flash and the iPad. The remainder of this piece is his comments on the subject.
Inside Apple’s iPad: Adobe Flash
I’m biased. I’m a full-time Flash developer and I’d love to get paid to make Flash sites for iPad. I want that to make sense—but it doesn’t. Flash on the iPad will not (and should not) happen—and the main reason, as I see it, is one that never gets talked about:
Current Flash sites could never be made work well on any touchscreen device, and this cannot be solved by Apple, Adobe, or magical new hardware.
That’s not because of slow mobile performance, battery drain or crashes. It’s because of the hover or mouseover problem.
Many (if not most) current Flash games, menus, and even video players require a visible mouse pointer. They are coded to rely on the difference between hovering over something (mouseover) vs. actually clicking. This distinction is not rare. It’s pervasive, fundamental to interactive design, and vital to the basic use of Flash content. New Flash content designed just for touchscreens can be done, but people want existing Flash sites to work. All of them—not just some here and there—and in a usable manner. That’s impossible no matter what.
All that Apple and Adobe could ever do is make current Flash content visible. It would be seen, but very often would not work. Users would hate that broken promise much more than they hate gaps in pages, missing banner ads, and the need to download a game once from the App Store instead of re-downloading it every time they visit a Flash game page.
* Video players where the controls appear on mouseover and hide otherwise. (This seems to be the norm, in fact. Whereas a click on the same video does something different: usually Pause. Try Hulu for instance.)
* Games where you steer with the mouse without clicking (extremely common).
* Menus that popup up subpage links when you mouse over a main button, vs. going directly to a main category page when you click.
* Buttons that have important explanations/summaries on mouseover, which you need to understand before deciding what to click.
* Functions that use mouseover to preview and click to commit; such as choosing hair colors for an avatar: you mouse over the colors until your character looks the way you like, and then you click to commit.
* Maps and diagrams that don’t use click at all, but pop up info as you mouse around.
* Numerous other custom mouseover functions that “just work” with a mouse and need no explanation.
None of these things can work right with a finger (or traditional stylus) because on a touchscreen, pointing at something without clicking isn’t a mouseover: it’s just holding your finger vaguely in the air. The device doesn’t even know it’s happening.
In addition, some Flash sites rely on right-clicks (such as for security settings), and many rely on a physical keyboard. Especially games, which are the main kind of content people want from Flash. (I’d say video, except video can easily be done without Flash, and sites are increasingly doing so. Much of the video missing from your favorite Flash site is probably easily found on YouTube anyway.) Games often use realtime key control, requiring a distinction between a single press and a long hold, and including the need for chording. For instance: holding right arrow continuously to walk, while simultaneously hitting the space bar to fire, and either hitting up-arrow once to jump or holding up-arrow longer to jump higher. A touchscreen keyboard can’t handle these kinds of rapid, precise combinations well. And the keyboard would block the game view, too. Games on a touchscreen need controls suitable for a touchscreen (and/or tilt).
The only potential “solutions” to the mouseover problem are terrible ones:
A) The best case: every Flash app on every site is re-thought by its designers and re-coded by its programmers (if they’re even still available), just for touchscreens. They wouldn’t use mouseovers any more—or else they’d have dual versions of all Flash content, so that mouse users could still benefit from the mouseovers they are used to. That’s a ton of work across the Web, for thousands of parties, and just isn’t going to happen. Plus, with many sites, mouseovers are so fundamental that the very concept of the site would be altered, creating a whole different experience that would annoy and confuse the site’s existing users. (And would this be any easier than simply re-designing without Flash at all? Not always.)
B) Gestures, finger gymnastics or extra physical buttons are created that simulate mouseover—which is absurd since mouseovers, by their nature, are meant to be simpler than a click/tap, not more complex. And meant to be natural, not something new to learn. Not a whole set of habits that violates our desktop habits. And any additional complexity is unworkable when it comes to games: you need to react quickly and simply, not remember when to hold the Simulate Mouseover button, or use three fingers, or whatever. The game itself is enough to deal with. Anything on top of that takes away fun.
D) Have a visible mouse pointer near your finger, and not interact with things directly. Use Apple track-pad style tap-and-drag gestures, as seen in some VNC clients. This kind of indirect control violates the very principle of direct touch manipulation. This is making the touchscreen be something “like a laptop but worse” and has little reason to exist. And again, you’d have to keep remembering whether you were in direct touch mode or “drag the arrow” mode, and which parts of the page behaved in which way.
E) Require extra force for a “real” tap. So you’d have to learn habits for a light tap vs. a hard tap. This extra complexity is non-intuitive, cramp-inducing, and easy for the user to get wrong (even with click feedback, as in RIM’s failed BlackBerry SurePress experiment). This complicates the whole device just for the sake of one browser plugin, and makes it more expensive to build.
So it’s not just that Apple has refused to support Flash. It cannot, logically, be done. A finger is not a mouse, and Flash sites are designed to require a mouse pointer (and keyboard) in fundamental ways. Someday that may change, and every Flash site could be redesigned with touch-friendly Flash. But that doesn’t make Flash sites work now.
Even if slow performance, battery drain and crashes weren’t problems with Flash (and they truly are), nothing can give users of any touchscreen, from any company, an acceptable experience with today’s Flash sites. The thing so many complainers want is simply an impossibility.
By the way, imagine my embarrassment as a Flash developer when my own animated site wouldn’t work on the newfangled iPhone! So I sat down and made new animations using WebKit’s CSS animation abilities. Now desktop users still see Flash at adamsi.com, but iPhone users see animations too. It can be done.
Morgan Adams, adamsimmersive
interactive design and games