>
> I see Flex as a "host" agnostic GUI toolkit.

I dont agree with this assertion.  Right now, browser based Flex apps are
entirely dependent on the Flash Player which in turn depends on the browser
in which it is running.  For example, any HTTP calls that is made from
Flex/Flash Player actually goes through the browser.  That is why we are
able to use the nice functionalities like browser cache, automatic cookie
header attachment etc.  Another example is  - a flex app can make only 4
concurrent uploads/downloads from the same domain in Firefox vs. 6
concurrent uploads/downloads in the same app running inside Internet
Explorer or Safari.

What I am proposing is to go directly to the browser using
ExternalInterface + JavaScript for features that Flash Player does not
provide Flex - which turns out to be mostly non GUI related features.  This
achieves two purposes:

a.)  To an extent, try to reduce dependency on Flash Player, thus
decoupling Flex from Flash Player's release cycles and market goals.

b.)  Plug the holes that cause a disparity between the capabilities offered
by HTML5 and Flex.



> Any integration which is not
> cross platform/browser/device would have to be extracted and implemented as
> an opt-in separate library that enhances Flex functionality in that given
> area.
> Other than that, I think that having to deal with (in this context)
> dependencies with browser vendor related issues ( potential cross browser
> incompatibilities and all that ) is something that could affect the natural
> release cycle of the the SDK itself.
>

As I mentioned earlier, the key is clean abstraction and graceful
degradation.  I agree - if we are not able to achieve that I wouldnt push
for this to be included in Flex.

Instead of checking for browsers versions, lookup features support matrix
like we have to do in Javascript,  in Flex end users will be able to write
simple code like:

if(FlexBrowserCapabilities.indexedDBSupported)
{
    //write data locally
}
else
{
    //write data to server
}

if(FlexBrowserCapabilities.geoLocationSupported)
{
    //Call apis to get location
}
else
{
    //Ask user to enter zip code
}

Reply via email to