A few weeks ago, I posted a video of a Mobile Trader Desktop application I built using Flex 4 and AIR for Android. I recently updated the application for Froyo (Android 2.2), and I can now share the application file and the source code.
Watch the video:
Download the Application and Source Code
- You can download the application (MobileTrader.apk) here
- You can download the source code (MobileTrader.fxp project file) here
The latest version of AIR for Android is available here.
NOTE: In this version of the application, the stock updates are simulated at the client side so that you don’t have to install the server infrastructure. Modifying the application to get the stock updates from a server is easy: use this application as an example.



Video Chat for Android in 30 Lines of Code
Here is a simple Video Chat application I built with Flex 4 and deployed on AIR for Android. The Application is just 30 lines of code and allows multiple users to join a chat room and “video chat”.
Video streaming is powered by LiveCycle Collaboration Services, a set of hosted Flash Services that enable developers to easily add real-time collaboration and social capabilities to their applications.
This application is obviously a bare-bones proof of concept. However, it is fully operational, and the same code can run on different runtime environments: AIR for Android, AIR on the Desktop, and Flash Player in the Browser. Users can participate in the same collaboration session regardless of the runtime environment they use.
Watch the video:
The 30 lines of code:
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:cs="AfcsNameSpace" currentState="logon" fontSize="28"> <fx:Script> [Bindable] private var roomURL:String = "http://connectnow.acrobat.com/YOUR_ROOM_NAME"; protected function connect():void { auth.userName = userName.text; currentState = "default"; session.login(); } </fx:Script> <s:states> <s:State name="default"/> <s:State name="logon"/> </s:states> <fx:Declarations> <cs:AdobeHSAuthenticator id="auth"/> </fx:Declarations> <s:TextInput id="userName" includeIn="logon" top="200" horizontalCenter="0"/> <s:Button label="Connect" click="connect()" includeIn="logon" top="250" horizontalCenter="0" height="50" width="150"/> <cs:ConnectSessionContainer id="session" roomURL="{roomURL}" authenticator="{auth}" autoLogin="false" width="100%" height="100%" includeIn="default"> <cs:WebCamera top="10" left="10" bottom="10" right="10"/> </cs:ConnectSessionContainer> </s:Application>