I have read from Todd Prekaski's article that
"The problem for those who want to develop applications that
support both desktop and web runtime environments is that Adobe AIR
includes extra APIs that allow for local file access, SQLite
database support, native windows, and more. These APIs won't
compile into a traditional Flex web-based application destined for
web-browser distribution (SWF files that you place on a web server
and run inside the browser)."
I am wondering if there is any other alternative.
I am working on an requirement where I need to develop a web
application which works on the DB on the server side. I need a very
strong offline mode, for which I need to be able to access DB on
the client side in case there is a broken server connection. This
requirement will be further enhanced to access some hardware on the
client side as well.
Please provide your valuable suggestions and kindly let me
know if you need any further information.
I've thought about this myself and I think we'll probably
have something in the final documentation about how to do this.
You can use Capabilities.playerType to determine if you are
running an AIR ("desktop") app or not. That's a runtime thing of
You can put all of the common code in one project, say a Flex
Library (swc) project, then have a Flex web project and a Flex AIR
project for the remainder. The library code can use
Capabilities.playerType to determine what functions to call. If you
use interfaces correctly, the library code doesn't need to know how
they are implemented.