I am using HTML5 in a general sense here, but looking at the new
functionalities, I can see a few of them that Flex can benefit from.  HTML5
+ stack really is a collection of new elements like Canvas, SVG based
animation and supporting functionalities like geolocation, client
storage,etc.  Of these, I think the following features can be exposed via
JavaScript and made available as Flex APIs.  As a start, I can think of the
following:

1.  Geolocation

We know that GeoLocation is available out of the box for AIR apps.  But for
flash player based Flex apps, we can write javascript hooks and expose Flex
APIs using ExternalInterface.  We could do something nice like providing an
abstraction layer that encompasses both flash.sensors.GeoLocation and
HTML5's GeoLocation APIs.  Or, we could do something like

2.  Client Storage

Flash player has Local Shared Objects, but they default to just 100Kb
before a prompt is displayed to the user.  HTML5 client storage (per
session + across session apis) has a default of 5MB.  This one seems to be
the most easy one to implement using ExternalInterface.

3.  IndexedDB or Web SQL(?)

AIR has SQLLite, but FlashPlayer does not have something like this.  Again,
an abstraction class that lets you write/read from the browser supported
database would be cool functionality.

4.  Offline access

This feature enables apps to be run without a network connection.  We can
add a generic Cache Manifest file in html-template folder and add a
reference to it in the index-template file.  Our default Cache Manifest
file could look like this:

*Contents of ${application}.appcache*

CACHE MANIFEST
${aplication}.swf
${application}.html
/assets/images/*

The IDEs could probably add some tooling that lets developers interactively
add files to cache.

Overall, my goal is here to leverage the cool things that HTML5 brings to
the table that is not (yet) available to the Flash Player.  As long as Flex
apps runs only on the Flash Player (on the browser), we need to do
something like this to make sure that we stay competitive with HTML5.  What
better way than to leverage HTML5 itself?

These are just basic ideas and I dont know if they will work.  My biggest
concern is that there is no uniform implementation of these features across
browsers.  The key IMHO is abstraction and failing gracefully.  Please
respond with any other features you think could be brought into Flex.  Or
if you think that this is a stupid idea ;-)

I plan to start writing code to add these functionalities in my whiteboard
going forward.

Thanks,
Om

Reply via email to