Monday, October 25, 2010

Eliminating the Need for Flash

HTML5 and related technologies are getting more powerful every day and for me as a web developer it feels good that it becomes possible to build event more things that would have been the domain of "Flash Developers" a couple years ago (if not event cooler stuff). And, actually, I was using Flash myself to make things work back in those days.

Still there are two things that would still make me pick Flash as the technology of choice and I don't like that, so we should fix it!

1. Fullscreen
Fullscreen is awesome. Even Steve Jobs thinks so. I personally think we should do something really simple to fix this: window.open('/my/path', '_fullscreen')
window.open already has all the security restrictions in place that we expect from a modern browser with a built in popup blocker. There might need to be extra restrictions with respect to keyboard events (so that pressing ESC always takes you back) but even not having keyboard events at all would be fine for a start.

2. Ease of Deployment
The deployment story for Flash is awesome. Send someone a SWF file, he can play it. Yes, for more advanced use cases the file might reference a couple XML files and other asset and might need some parameters to get going but overall that's it.
If you haven't worked in big multi-Agency projects (which would be a good thing :) you might not appreciate this point as important but it really makes sense to have an exchange format for content which one can just "drop" into what is already there.
I don't personally have the perfect solution for SWF like deployment of HTML content but at least I have an idea: Putting HTML files and related assets in a ZIP file and then delivering the ZIP file to the browser which would be smart enough to unzip the file, stick it into an iframe and display everything. I played around with doing all of that with just a little bit of JavaScript. It kinda worked but is nowhere near a fully transparent abstraction.

2 comments:

Dean landolt said...

With regard to fullscreen, how would you address the common usecase -- toggling a playing video? your suggestion doesn't really address this, but perhaps it could be made to with something hacky like:

window.open(window, "_fullscreen")

None the less I like that it builds on the common html idiom.

I'd say the biggest place where flash will win for the foreseeable future is with devices (like mic/camera). I know there's work going on around a device tag -- haven't seen anything implemented though.

Helgi ├×ormar said...

For the easy deployment, what about using the Web Archive format (http://en.wikipedia.org/wiki/Webarchive) ? While it's not all that widespread and is rather Safari specific, it may be a good solution to the whole "pass it around easily".