Why Flash Is Fundamentally Flawed On Touchscreen Devices
An anonymous reader passes along this excerpt from Roughly Drafted:
"I'm a full-time Flash developer and I'd love to get paid to make Flash sites for the 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 to 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. ... All that Apple and Adobe could ever do is make current Flash content visible. It would be seen, but very often would not work."
Current Flash-heavy sites do not work well on any other device either.
Welcome to the problem of confusing "web site", "application", "advertisement" and "art installation".
I'm not into Flash development, but how would that be different from javascript hover and mouseover features? I think this is a flaw for any advanced interaction feature on any touch enabled device, which means it is not limited to the Flash technology in particular.
Most flash apps don't do anything interesting with hovering, so it would be perfectly fine if the implementation just did clicking, or hovering with some weird gesture.
If there's anything I've taken from all the Apple talk on its multitouch technology, it's that gestures are everything. What if when Flash is in use, dragging your finger across the display results in "moving the cursor", while a single touch results in a click? Or why not make it function much the same as how laptop touchpads work, where a double-tap+hold equals a click and drag? I can't see that being terribly difficult for Apple or anyone making a touch-based device to implement, really.
I mean, perhaps there's more to it than that, but I can't see the concept of mouseover/hover being a huge showstopper for Flash support on touch-based devices. There are definitely ways around it, and for that matter, there's also CSS/JS mouseover/hover that works the same way. How is this handled on devices like the iPad? Is this also unusable?
Screw the rules, I have green hair!
"current Flash sites could never be made to work well on any touchscreen device"
Really? Never? Just off the top of my head, I could envision a button that put the device in "pointer" mode, maybe with scroll buttons where appropriate, and then used the movement of your finger on the touchscreen as either 1:1 or some kind of relative movement of the pointer. There are probably issues with this approach, yes, but it took me seconds to cobble together. Saying that something is impossible as a matter of user interface is silly. You can always change the UI in some way to make it possible, or even good.
The author is a retard. So a tiny tweak (clicking on the video pauses and brings up the bar) or, more simply, compile flash so that a touch and slide is a "mouseover" and "double click" is a click event. I don't think I've ever seen a flash program that wanted a double-click. I'm sure they exist.
Oh yeah, sites like starfall.com (recommended if you have preschool kids) would work just fine. It's 100% a question of Apple being unwilling to allow unauthorized code to run on their devices. There's nothing to see here.
oh yeah, you could use multi-touch when you write the program. Oops. Lazy programmer writes a blog post. big deal.
John
Just because some flash sites are not developing flash taking into account touchscreen devices (it's a new thing!) does not mean it cant be done. The whole thing seems stupid to me. It really scares me to think this person makes money developing flash sites. It seems he is totally unable to adapt, change his methods or do things better than he does. Come on! Sure there are flash files that would create problems and would need to be further developed, but to say it's fundamentally flawed because of that is bullshit.
I have a ClarionMiND. It's one of the few Intel-based MIDs that made it to the US, and with firesale pricing, the $130 for an atom-based handheld looks quite a bit better than the $699 price at launch. It runs Firefox 3 and includes flash, but flash is of only limited utility. The on-screen keyboard can't detect when it's needed inside of flash. Mouseover doesn't exist. On the other hand, many sites use mouseover in their (x)html. Facebook, for example, allows one to delete a post or comment. The delete link is hidden until you mouse over the link. For me at least, it's surprisingly intuitive to use with a mouse, but I'm completely lost with a touch-only device. I find that I spend an excessive amount of time trying to figure my way around the car crash that is the merging of a mouse-centric internet with a device interface that doesn't do enough to cover for the internet's lack of accomodation for the devices interface.
I'm in no way a supporter of Flash, but how is this any different than anything else in the browser with a :hover state? With the advent of HTML5 and the Canvas element, which does work on the iPad et al, you're going to run into the same issues if you program them the same way. Now I get his concern that Flash devs would have to rewrite a lot of their already written stuff to work on the iPad if it allowed Flash, but I fail to see how this is any different from the multitude of websites that use hover drop downs for navigation and the like.
The point that we shouldn't be relying on hover states because of the push towards touch devices is a good one but it's not an exclusive problem to Flash. The reason Flash shouldn't be on the iPad, etc, is because it's a horrible bloated and proprietary plugin, and Canvas, HTML5 video, etc can do the same thing. Flash is now a dead end technology. It's only a matter of time before it's phased out altogether.
I think what my friend here is trying to say is that perhaps it is the touchscreen input that is "fundamentally flawed." The same argument could be applied to CSS hover and javascript mouseovers. Should Apple simply dispose of Safari on the iPad, because it is "fundamentally flawed?" There are lots of sites that use css hover menus. Poor iPad users will have a bad experience with those sites, so should we then remove the browser?
We all know Apple bans Flash because it would allow third party apps that don't have to forfeit 30% of revenue to Apple. Plain and simple. All other explanations are just someone's absurd mental gymnastics to justify Apple's stupid and shortsighted iPhone OS policies.
The real reason why Apple would never allow Flash to work on one of it's mobile devices is simple. The App Store. Most of the available apps could easily be mimicked using Flash, and made easily available. This would not be a good thing for Apple's bottom line.
No, this isn't it. Their decision process goes more like this: "Flash allows people to run software on their phone that they didn't buy through the App Store. We have to reject it, but start thinking of reasons that don't sound so much like 'we are greedy bastards.'" Otherwise, where is Java? Hover is certainly not unique to Flash, and it's certainly not an unsolvable problem (trackpads solved it a long time ago), nor is it very frequently an essential interface element (usually it just gives access to some additional detail).
Slay a dragon... over lunch!
We all know Apple bans Flash because it would allow third party apps that don't have to forfeit 30% of revenue to Apple. Plain and simple. All other explanations are just someone's absurd mental gymnastics to justify Apple's stupid and shortsighted iPhone OS policies.
And how do you reconcile this opinion with all the effort that Apple has put into making it possible for offline HTML5 apps to act indistinguishably from native code apps ... and, indeed, for the first year after the iPhone's unveiling, it being Apple's official line that HTML5 apps would be the *only* third party development route available?
Sites that use flash or javascript for navigation are an abomination.
In that case, Slashdot is an abomination. It (optionally) uses XMLHttpRequest to load pieces of the comments page without requiring a refresh of the entire page. So why do you post on an abomination?
Clarification: The decision to not allow Flash is on Apple, but the problems with Flash are not.
The primary purpose of the iphone is a *phone*. The primary purpose of the ipad is a *web surfing appliance*. With regards to iphone folks are willing to deal with some limited functionality since that is not it's main goal in life. With the ipad it's unforgivable that it can't surf 70% of today's web content.
Bullshit. The real reason is that Steve Jobs will never ship code that Apple doesn't own on the iPad/iPhone.
Code you don't own results in bugs you can't fix (and Flash has oh so many bugs), resulting in Apple having to rely on another company, Adobe.
"Why touchscreen devices?" would be the way to go. The problems TFA talks about are not just limited to Flash; modern websites also rely heavily on hover states and it's not always easy to simulate them by examining the JavaScript and CSS and then trying to fake hovering by reinterpreting clicks.
We need to figure out how to properly implement hovering on devices that physically don't allow you to hover. Otherwise it's going to take years until web development catches up with the reality of half the users not being able to access half the features.
USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
Apple doesn't make much money off that 30% cut. The iTunes store brings in just enough money to cover their expenses on it, as reported every quarter in their results. They make their real profit off the hardware they sell. So I doubt Apple is blocking Flash just to keep that 30% coming in. Flash apps (if they were really all that important) would be helping to sell more hardware for Apple, without the overhead of hosting peoples apps.
Apple bans Flash because they are tired of dealing with Adobe. Only now is performance suddenly important to them, over half a decade after buying Macromedia. Only now is it critical for Adobe to try and bring real Flash to the mobile space (and not the crippled/useless Flash Lite), even though smartphones have been around a while. And Adobe is the only company that can make Flash better, since it's not an open internet specification.
Javascript/HTML rendering on the other hand was something Apple could improve without having to wait on some other company. So Apple was able to launch their iPhone product years ago with a great browser, and bring in more hardware revenue. Had they also wanted to include Flash and held back the device till it was ready, the iPhone still wouldn't have shipped. Why? Because Adobe still hasn't made a mobile release (not beta/alpha/whatever) version of Flash for any mobile device/platform. The only way real, true proper, non lite flash works on phones now is with browsers dependent on a server somewhere doing the heavy lifting.
This may just be "absurd mental gymnastics" to you, but I've at least backed part of my comment here with actual information on what Apple does with their 30% (IE, not make money with it, just using it to cover expenses), instead of speculating it's some big important thing for Apple's bottom line.
More to the point. The author is not only an idiot because he isn't smart enough to think of how to make flash work with a touch screen... He is an idiot because there has already been a very successful touchscreen device that is 100% flash. The Leapster by Leapfrog is a Flash only device. You can buy it in any Toys R Us, and has been very successful. It works just fine.
It seems that the current trend by Apple fanboys is to claim that Apple engineers are completely incompetent. Not long ago, it was the claim that Apple engineers were too incompetent to fit a microSD and battery door in an iPod sized device, while basement budget Emprex could fit them in a device half the iPod's size. Obviously this not extends to the iPad. At 50x the size, the Apple fanboys must still believe the Apple engineers are even too incompetent to fit them in that huge device.
Now, we get an article claiming that Apple engineers are so incompetent that it would be IMPOSSIBLE for them to accomplish a task that has been widely available in a child's toy for over half a decade.
if something is important, don't hide it behind hover - it's almost always bad for usability and accessibility. Any website or web application that relies on hover effects is, quite frankly, broken. {...} there should always be an alternative accessible way to navigate through an application.
Well, the same arguments could apply for Flash menu themselves. In fact, the same argument would apply for anything which isn't done 100% using an open standard such as HTML5/CSS.
Given the recent crop of environment and device which lack support for flash (well, until Gnash improves and gets ported), there's currently a lot of websites which will suffer from not being accessible enough.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
Not to mention that any developer (including would be flash game developers) can release a free app via the app store. This argument that flash apps would cut into Apple's app store revenue makes absolutely 0 sense.
Kiteboarding Gear Mention slashdot and get 10% off!
True, actually detecting the finger hovering over but not touching the screen might be pretty problematic. There have already been two ideas that I think are much better than mine. The solution used in the Storm seems the most intuitive. Slide your finger to hover, press harder to click. That would also prevent all the accidental taps I get on my Droid.