<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Christophe Coenraets &#187; Air</title>
	<atom:link href="http://coenraets.org/blog/category/air/feed/" rel="self" type="application/rss+xml" />
	<link>http://coenraets.org/blog</link>
	<description>Rich Internet Applications, Flex, AIR, Java, Android</description>
	<lastBuildDate>Fri, 23 Jul 2010 14:45:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Video Chat for Android in 30 Lines of Code</title>
		<link>http://coenraets.org/blog/2010/07/video-chat-for-android-in-30-lines-of-code/</link>
		<comments>http://coenraets.org/blog/2010/07/video-chat-for-android-in-30-lines-of-code/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 14:45:06 +0000</pubDate>
		<dc:creator>Christophe Coenraets</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Froyo]]></category>

		<guid isPermaLink="false">http://coenraets.org/blog/?p=855</guid>
		<description><![CDATA[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 &#8220;video chat&#8221;. Video streaming is powered by LiveCycle Collaboration Services, a set of hosted Flash Services that enable developers [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a simple Video Chat application I built with Flex 4 and deployed on <a href="http://labs.adobe.com/technologies/air2/android/">AIR for Android</a>. The Application is just 30 lines of code and allows multiple users to join a chat room and &#8220;video chat&#8221;.</p>
<p>Video streaming is powered by <a href="http://www.adobe.com/devnet/flashplatform/services/collaboration/">LiveCycle Collaboration Services</a>, a set of hosted Flash Services that enable developers to easily add real-time collaboration and social capabilities to their applications.</p>
<p>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.</p>
<h3>Watch the video:</h3>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/B8iGb3DgWN4&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/B8iGb3DgWN4&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<h3>The 30 lines of code:</h3>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;s:Application xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot; xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot; xmlns:cs=&quot;AfcsNameSpace&quot; currentState=&quot;logon&quot; fontSize=&quot;28&quot;&gt;

	&lt;fx:Script&gt;
		[Bindable] private var roomURL:String = &quot;http://connectnow.acrobat.com/YOUR_ROOM_NAME&quot;;

		protected function connect():void {
			auth.userName = userName.text;
			currentState = &quot;default&quot;;
			session.login();
		}
	&lt;/fx:Script&gt;

	&lt;s:states&gt;
		&lt;s:State name=&quot;default&quot;/&gt;
		&lt;s:State name=&quot;logon&quot;/&gt;
	&lt;/s:states&gt;

	&lt;fx:Declarations&gt;
		&lt;cs:AdobeHSAuthenticator id=&quot;auth&quot;/&gt;
	&lt;/fx:Declarations&gt;

	&lt;s:TextInput id=&quot;userName&quot; includeIn=&quot;logon&quot; top=&quot;200&quot; horizontalCenter=&quot;0&quot;/&gt;
	&lt;s:Button label=&quot;Connect&quot; click=&quot;connect()&quot; includeIn=&quot;logon&quot; top=&quot;250&quot; horizontalCenter=&quot;0&quot; height=&quot;50&quot; width=&quot;150&quot;/&gt;

	&lt;cs:ConnectSessionContainer id=&quot;session&quot; roomURL=&quot;{roomURL}&quot; authenticator=&quot;{auth}&quot; autoLogin=&quot;false&quot; width=&quot;100%&quot; height=&quot;100%&quot; includeIn=&quot;default&quot;&gt;
		&lt;cs:WebCamera top=&quot;10&quot; left=&quot;10&quot; bottom=&quot;10&quot; right=&quot;10&quot;/&gt;
	&lt;/cs:ConnectSessionContainer&gt;

&lt;/s:Application&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://coenraets.org/blog/2010/07/video-chat-for-android-in-30-lines-of-code/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>Android Trader Desktop with Flex and AIR &#8212; Updated for Froyo + Source Code Available</title>
		<link>http://coenraets.org/blog/2010/07/android-trader-desktop-with-flex-and-air-updated-for-froyo-source-code-available/</link>
		<comments>http://coenraets.org/blog/2010/07/android-trader-desktop-with-flex-and-air-updated-for-froyo-source-code-available/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 13:58:13 +0000</pubDate>
		<dc:creator>Christophe Coenraets</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Froyo]]></category>

		<guid isPermaLink="false">http://coenraets.org/blog/?p=848</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>Watch the video:</p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/K1CC96Nk9x0&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/K1CC96Nk9x0&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<h3>Download the Application and Source Code</h3>
<ul>
<li>You can download the application (MobileTrader.apk) <a href="http://coenraets.org/froyo/MobileTrader.apk">here</a></li>
<li>You can download the source code (MobileTrader.fxp  project file) <a href="http://coenraets.org/froyo/MobileTrader.fxp">here</a></li>
</ul>
<p>The latest version of AIR for Android is available <a href="http://labs.adobe.com/technologies/air2/android/">here</a>.</p>
<p>NOTE: In this version of the application, the stock updates are simulated at the client side so that you don&#8217;t have to install the server infrastructure. Modifying the application to get the stock updates from a server is easy: use <a href="http://coenraets.org/blog/2010/04/trader-desktop-performance-console-fix-source-code-and-fast-datagrid/">this application</a> as an example.</p>
]]></content:encoded>
			<wfw:commentRss>http://coenraets.org/blog/2010/07/android-trader-desktop-with-flex-and-air-updated-for-froyo-source-code-available/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Employee Directory Sample Application Using Flex and AIR for Android &#8211; Updated for Froyo</title>
		<link>http://coenraets.org/blog/2010/07/employee-directory-sample-application-using-flex-and-air-for-android-updated-for-froyo/</link>
		<comments>http://coenraets.org/blog/2010/07/employee-directory-sample-application-using-flex-and-air-for-android-updated-for-froyo/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 19:07:20 +0000</pubDate>
		<dc:creator>Christophe Coenraets</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Froyo]]></category>

		<guid isPermaLink="false">http://coenraets.org/blog/?p=835</guid>
		<description><![CDATA[I finally took the time to rebuild the Employee Directory application with the latest version of AIR for Android (available here) to run on Froyo. See the links below to download the apk and the source code. (If you are still running Eclair see my original post). The Employee Directory application demonstrates how to build [...]]]></description>
			<content:encoded><![CDATA[<p>I finally took the time to rebuild the Employee Directory application with the latest version of AIR for Android (available <a href="http://labs.adobe.com/technologies/air2/android/">here</a>) to run on Froyo. See the links below to download the apk and the source code. (If you are still running Eclair see my <a href="http://coenraets.org/blog/2010/05/sample-application-using-flex-and-air-for-android/">original post</a>).</p>
<p>The Employee Directory application demonstrates how to build Flex applications for Android using the AIR runtime.</p>
<p>Watch the video:</p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/XONwoFIQ17Q&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/XONwoFIQ17Q&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p>The key point when you look at the source code of this application is that you build Flex applications for Android the exact same way you build Flex applications for the Browser and the Desktop: same programming model, same language, same tools, same code. This application for example uses a local SQLite database on your device that you access using the same database API you&#8217;d use for any other Flex application running on the AIR runtime.</p>
<p>The other good news is that you have access to additional APIs (GPS, accelerometer), and you can integrate with other applications on your phone (dialer, SMS, email, etc).</p>
<h3>Download the Application and Source Code</h3>
<ul>
<li>You can download the application (EmployeeDirectory.apk) <a href="http://coenraets.org/froyo/EmployeeDirectory.apk">here</a></li>
<li>You can download the source code (EmployeeDirectory.fxp  project file) <a href="http://coenraets.org/froyo/EmployeeDirectory.fxp">here</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://coenraets.org/blog/2010/07/employee-directory-sample-application-using-flex-and-air-for-android-updated-for-froyo/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>&#8220;VoiceNotes for Android&#8221;: Sample App using Flex, AIR, and the Microphone API</title>
		<link>http://coenraets.org/blog/2010/07/voicenotes-for-android-sample-app-using-flex-air-and-the-microphone-api/</link>
		<comments>http://coenraets.org/blog/2010/07/voicenotes-for-android-sample-app-using-flex-air-and-the-microphone-api/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 15:42:46 +0000</pubDate>
		<dc:creator>Christophe Coenraets</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://coenraets.org/blog/?p=819</guid>
		<description><![CDATA[VoiceNotes for Android is a sample application built with Flex and deployed on Adobe AIR for Android. The application allows you to record voice messages and play them back later. It demonstrates the Microphone API introduced in the latest builds of AIR for Android. VoiceNotes for Android is based on the desktop version of VoiceNotes [...]]]></description>
			<content:encoded><![CDATA[<p>VoiceNotes for Android is a sample application built with Flex and deployed on Adobe AIR for Android. The application allows you to record voice messages and play them back later. It demonstrates the Microphone API introduced in the latest builds of AIR for Android. VoiceNotes for Android is based on the desktop version of VoiceNotes <a href="http://coenraets.org/blog/2010/06/voice-notes-updated-for-air-2-ga/">I recently blogged</a> as an AIR 2 sample.</p>
<p>Watch the video:</p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/3UAx4KpMz0E&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/3UAx4KpMz0E&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<h3>Download the Application and Source Code</h3>
<ul>
<li>You can download the application (VoiceNotes.apk) <a href="http://coenraets.org/froyo/VoiceNotes.apk">here</a></li>
<li>You can download the source code (VoiceNotes.fxp project file) <a href="http://coenraets.org/froyo/VoiceNotes.fxp">here</a></li>
</ul>
<p>If you want to compile or run the application on your device, make sure you <a href="http://labs.adobe.com/technologies/air2/android">install the latest version of the AIR for Android</a> SDK and Runtime respectively. The apk was built using the AIR for Android 20100720 build.</p>
]]></content:encoded>
			<wfw:commentRss>http://coenraets.org/blog/2010/07/voicenotes-for-android-sample-app-using-flex-air-and-the-microphone-api/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Creating a Web Server using the new Server Socket API in AIR 2</title>
		<link>http://coenraets.org/blog/2010/07/creating-a-web-server-using-the-new-server-socket-api-in-air-2/</link>
		<comments>http://coenraets.org/blog/2010/07/creating-a-web-server-using-the-new-server-socket-api-in-air-2/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 15:03:21 +0000</pubDate>
		<dc:creator>Christophe Coenraets</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://coenraets.org/blog/?p=784</guid>
		<description><![CDATA[During the Adobe AIR 2 beta, I wrote a simple Web Server application to explore the new Server Socket API available in AIR 2. Here is the updated version of the application for AIR 2 GA. The &#8220;Mini AIR Web Server&#8221; is a simplistic implementation of an HTTPServer. Needless to say that it is far [...]]]></description>
			<content:encoded><![CDATA[<p>During the Adobe AIR 2 beta, I wrote a simple Web Server application to explore the new Server Socket API available in AIR 2. Here is the updated version of the application for AIR 2 GA.</p>
<p>The &#8220;Mini AIR Web Server&#8221; is a simplistic implementation of an HTTPServer. Needless to say that it is far from being a production quality Web Server. The goal here is simply to use the well understood mechanics of a web server to learn how to use server sockets in AIR 2.0.</p>
<h2>Installation Instructions</h2>
<p>Make sure you have the AIR 2 runtime installed (you can download the AIR 2 runtime <a href="http://get.adobe.com/air/">here</a>), and install the application using the badge below:</p>
<p><div id="flashcontent4081" style="width:215px; height:180px;"><strong>Please upgrade your Flash Player</strong> This is the content that would be shown if the user does not have Flash Player 9.0.115 or higher installed.</div><script type="text/javascript">
<!-- // <![CDATA[
var so = new SWFObject("http://coenraets.org/blog/wp-content/plugins/air-badge/AIRInstallBadge.swf", "Badge", "215", "180", "9.0.115", "#FFFFFF");
so.useExpressInstall("http://coenraets.org/blog/wp-content/plugins/air-badge/expressinstall.swf");
so.addVariable("airversion", "1.0");
so.addVariable("appname", "AIR+Web+Server");
so.addVariable("appurl", "http://coenraets.org/apps/MiniAIRWebServer/MiniAIRWebServer.air");
so.addVariable("appid", "AIR+Web+Server");
so.addVariable("pubid", "");
so.addVariable("appversion", "2.0");
so.addVariable("imageurl", "http://coenraets.org/apps/MiniAIRWebServer/MiniAIRWebServer.png");
so.addVariable("appinstallarg", "installed from web");
so.addVariable("applauncharg", "launched from web");
so.addVariable("helpurl", "help.html");
so.addVariable("hidehelp", "true");
so.addVariable("skiptransition", "false");
so.addVariable("titlecolor", "#00AAFF");
so.addVariable("buttonlabelcolor", "#00AAFF");
so.addVariable("appnamecolor", "#00AAFF");
so.addVariable("str_err_airswf", "<u>Running locally?</u><br/><br/>The AIR proxy swf won't load properly when this is run from the local file system.");
so.write("flashcontent4081");
// ]]&gt; -->
</script>
</p>
<h2>Testing the Application</h2>
<p>To test the application, open a browser and test the sample HTML pages provided with the application: </p>
<ul>
<li><a href="http://localhost:8888/test1.html">http://localhost:8888/test1.html</a></li>
<li><a href="http://localhost:8888/test2.html">http://localhost:8888/test2.html</a></li>
<li><a href="http://localhost:8888/test3.html">http://localhost:8888/test3.html</a></li>
</ul>
<p><strong>NOTE:</strong> You may have to change the port number in these URLs depending on the port number you enter in the application.</p>
<p>You can add your own content in the webroot folder in the applicationStorageDirectory.</p>
<h2>Downloading the project</h2>
<p>Click <a href="http://coenraets.org/apps/MiniAIRWebServer/MiniAIRWebServer.fxp">here</a> to download the project</p>
]]></content:encoded>
			<wfw:commentRss>http://coenraets.org/blog/2010/07/creating-a-web-server-using-the-new-server-socket-api-in-air-2/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>&#8220;AIR 2 Excel&#8221; Sample App Updated for AIR 2 GA</title>
		<link>http://coenraets.org/blog/2010/06/air-2-excel-sample-app-updated-for-air-2-ga/</link>
		<comments>http://coenraets.org/blog/2010/06/air-2-excel-sample-app-updated-for-air-2-ga/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 14:25:10 +0000</pubDate>
		<dc:creator>Christophe Coenraets</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://coenraets.org/blog/?p=758</guid>
		<description><![CDATA[I updated the &#8220;AIR 2 Excel&#8221; sample application for the official AIR 2 launch. &#8220;AIR 2 Excel&#8221; demonstrates different techniques for AIR/Excel integration, including the new AIR 2 File.openWithDefaultApplication() API. In Adobe AIR 1.0 and 1.5, there were different options to &#8220;open&#8221; the data of a Flex DataGrid in Excel. For example, you could leverage [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://coenraets.org/AIR2Excel/AIR2Excel.png" alt="" /></p>
<p>I updated the &#8220;AIR 2 Excel&#8221; sample application for the official AIR 2 launch. &#8220;AIR 2 Excel&#8221; demonstrates different techniques for AIR/Excel integration, including the new AIR 2 File.openWithDefaultApplication() API.</p>
<p><span id="more-758"></span></p>
<p>In Adobe AIR 1.0 and 1.5, there were different options to &#8220;open&#8221; the data of a Flex DataGrid in Excel. For example, you could leverage the AIR native drag-and-drop support to drag rows from the DataGrid to an open Excel spreadsheet. You could also drag rows to the desktop (or anywhere on the file system) as an .xls file. These two approaches are demonstrated in my <a href="http://coenraets.org/blog/2009/03/make-and-receive-phone-calls-in-the-new-version-of-the-salesbuilder-sample-flex-application/">Salesbuilder sample application</a>. Another approach was to use a server roundtrip to download the generated .xls file from the server and force Excel to open with the data.</p>
<p>There was however no immediate way to implement a straight (client-side only) &#8220;Open in Excel&#8221; feature (aka click a button to open your DataGrid data in Excel). With AIR 2.0 and the new <strong>File.openWithDefaultApplication()</strong> method this becomes extremely easy to implement. In the sample below, I provide an example of this new feature. The sample also supports the drag-and-drop approach from the AIR application to Excel and from the AIR application to the desktop (or anywhere else on the file system). This sample uses the <a href="http://code.google.com/p/as3xls/">as3xls library</a> to create the Excel spreadsheet. View Source is enabled.</p>
<p>Make sure you have the AIR 2 runtime installed (you can download the AIR 2 runtime <a href="http://get.adobe.com/air/">here</a>), and install the application using the badge below:</p>
<p><div id="flashcontent1851" style="width:215px; height:180px;"><strong>Please upgrade your Flash Player</strong> This is the content that would be shown if the user does not have Flash Player 9.0.115 or higher installed.</div><script type="text/javascript">
<!-- // <![CDATA[
var so = new SWFObject("http://coenraets.org/blog/wp-content/plugins/air-badge/AIRInstallBadge.swf", "Badge", "215", "180", "9.0.115", "#FFFFFF");
so.useExpressInstall("http://coenraets.org/blog/wp-content/plugins/air-badge/expressinstall.swf");
so.addVariable("airversion", "1.0");
so.addVariable("appname", "AIR+2+Excel");
so.addVariable("appurl", "http://coenraets.org/AIR2Excel/AIR2Excel.air");
so.addVariable("appid", "AIR+2+Excel");
so.addVariable("pubid", "");
so.addVariable("appversion", "2.0");
so.addVariable("imageurl", "http://coenraets.org/AIR2Excel/AIR2Excel.png");
so.addVariable("appinstallarg", "installed from web");
so.addVariable("applauncharg", "launched from web");
so.addVariable("helpurl", "help.html");
so.addVariable("hidehelp", "true");
so.addVariable("skiptransition", "false");
so.addVariable("titlecolor", "#00AAFF");
so.addVariable("buttonlabelcolor", "#00AAFF");
so.addVariable("appnamecolor", "#00AAFF");
so.addVariable("str_err_airswf", "<u>Running locally?</u><br/><br/>The AIR proxy swf won't load properly when this is run from the local file system.");
so.write("flashcontent1851");
// ]]&gt; -->
</script>
</p>
<p>View Source (right click) is enabled.</p>
<p>NOTE: You can download the AIR 2 SDK <a href="http://www.adobe.com/cfusion/entitlement/index.cfm?e=airsdk">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://coenraets.org/blog/2010/06/air-2-excel-sample-app-updated-for-air-2-ga/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>&#8220;Voice Notes&#8221; Updated for AIR 2 GA</title>
		<link>http://coenraets.org/blog/2010/06/voice-notes-updated-for-air-2-ga/</link>
		<comments>http://coenraets.org/blog/2010/06/voice-notes-updated-for-air-2-ga/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 19:04:22 +0000</pubDate>
		<dc:creator>Christophe Coenraets</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://coenraets.org/blog/?p=742</guid>
		<description><![CDATA[To mark the official release of AIR 2, I&#8217;m upgrading the samples I built during the beta, starting today with &#8220;Voice Notes&#8221;. Voice Notes is a sample application that leverages the new Microphone API. The application lets you record voice notes and store them in a SQLite database so that you can replay them later. [...]]]></description>
			<content:encoded><![CDATA[<p>To mark the official release of AIR 2, I&#8217;m upgrading the samples I built during the beta, starting today with &#8220;Voice Notes&#8221;.</p>
<p>Voice Notes is a sample application that leverages the new Microphone API. The application lets you record voice notes and store them in a SQLite database so that you can replay them later.</p>
<p>Make sure you have the AIR 2 runtime installed (you can download the AIR 2 runtime <a href="http://get.adobe.com/air/">here</a>), and install the application using the badge below:</p>
<p><div id="flashcontent1993" style="width:215px; height:180px;"><strong>Please upgrade your Flash Player</strong> This is the content that would be shown if the user does not have Flash Player 9.0.115 or higher installed.</div><script type="text/javascript">
<!-- // <![CDATA[
var so = new SWFObject("http://coenraets.org/blog/wp-content/plugins/air-badge/AIRInstallBadge.swf", "Badge", "215", "180", "9.0.115", "#FFFFFF");
so.useExpressInstall("http://coenraets.org/blog/wp-content/plugins/air-badge/expressinstall.swf");
so.addVariable("airversion", "1.0");
so.addVariable("appname", "Voice+Notes");
so.addVariable("appurl", "http://coenraets.org/apps/VoiceNotes/VoiceNotes.air");
so.addVariable("appid", "Voice+Notes");
so.addVariable("pubid", "");
so.addVariable("appversion", "2.0");
so.addVariable("imageurl", "http://coenraets.org/apps/VoiceNotes/VoiceNotes.png");
so.addVariable("appinstallarg", "installed from web");
so.addVariable("applauncharg", "launched from web");
so.addVariable("helpurl", "help.html");
so.addVariable("hidehelp", "true");
so.addVariable("skiptransition", "false");
so.addVariable("titlecolor", "#00AAFF");
so.addVariable("buttonlabelcolor", "#00AAFF");
so.addVariable("appnamecolor", "#00AAFF");
so.addVariable("str_err_airswf", "<u>Running locally?</u><br/><br/>The AIR proxy swf won't load properly when this is run from the local file system.");
so.write("flashcontent1993");
// ]]&gt; -->
</script>
</p>
<p>View Source (right click) is enabled.</p>
<p>NOTE: You can download the AIR 2 SDK <a href="http://www.adobe.com/cfusion/entitlement/index.cfm?e=airsdk">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://coenraets.org/blog/2010/06/voice-notes-updated-for-air-2-ga/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sample Application using Flex and AIR for Android</title>
		<link>http://coenraets.org/blog/2010/05/sample-application-using-flex-and-air-for-android/</link>
		<comments>http://coenraets.org/blog/2010/05/sample-application-using-flex-and-air-for-android/#comments</comments>
		<pubDate>Thu, 20 May 2010 17:56:14 +0000</pubDate>
		<dc:creator>Christophe Coenraets</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://coenraets.org/blog/?p=700</guid>
		<description><![CDATA[Here is a simple Employee Directory application I wrote to demonstrate how to build Flex applications for Android using the AIR runtime. Watch the video: The key point when you look at the source code of this application is that you build Flex applications for Android the exact same way you build Flex applications for [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a simple Employee Directory application I wrote to demonstrate how to build Flex applications for Android using the AIR runtime.</p>
<p>Watch the video:</p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/XONwoFIQ17Q&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/XONwoFIQ17Q&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p>The key point when you look at the source code of this application is that you build Flex applications for Android the exact same way you build Flex applications for the Browser and the Desktop: same programming model, same language, same tools, same code. This application for example uses a local SQLite database on your device that you access using the same database API you&#8217;d use for any other Flex application running on the AIR runtime.</p>
<p>The other good news is that you have access to additional APIs (GPS, accelerometer), and you can integrate with other applications on your phone (dialer, SMS, email, etc).</p>
<h2>Download the Application and Source Code</h2>
<ul>
<li>You can download the application (EmployeeDirectory.apk) <a href="http://coenraets.org/android/EmployeeDirectory.apk">here</a></li>
<li>You can download the source code (EmployeeDirectory.fxp  project file) <a href="http://coenraets.org/android/EmployeeDirectory.fxp">here</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://coenraets.org/blog/2010/05/sample-application-using-flex-and-air-for-android/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Android Trader Application with Flex 4 and AIR</title>
		<link>http://coenraets.org/blog/2010/05/android-trader-application-with-flex-4-and-air/</link>
		<comments>http://coenraets.org/blog/2010/05/android-trader-application-with-flex-4-and-air/#comments</comments>
		<pubDate>Thu, 20 May 2010 17:27:05 +0000</pubDate>
		<dc:creator>Christophe Coenraets</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://coenraets.org/blog/?p=696</guid>
		<description><![CDATA[I recently blogged about building a Real Time Trader Desktop Application using Flex 4 and LiveCycle Data Services. I posted the source code for the AIR version and the Browser version of the application. The next logical step was to build a Mobile version. I used Flex 4 and the prerelease version of AIR for [...]]]></description>
			<content:encoded><![CDATA[<p>I recently blogged about building a <a href="http://coenraets.org/blog/2010/04/performance-tuning-real-time-trader-desktop-with-flex-and-lcds/">Real Time Trader Desktop Application using Flex 4 and LiveCycle Data Services</a>. I posted the source code for the AIR version and the Browser version of the application. The next logical step was to build a Mobile version. I used Flex 4 and the prerelease version of AIR for Android.</p>
<p>Watch the video:</p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/K1CC96Nk9x0&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/K1CC96Nk9x0&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p>I made some changes to the User Interface to work better on a smaller screen, but for the most part, this version of the application uses the same code as the browser and the desktop versions: same data feed, subscription logic, model, controller, components, etc. This made it amazingly easy to take an existing Flex application and deploy it on Android&#8230; Three different deployment targets (Browser, Desktop, Mobile), same programming model, same language, same tools, same code.</p>
<p>The developer prerelease of AIR for Android is now available. More information <a href="http://blogs.adobe.com/air/2010/05/air_android_prerelease.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://coenraets.org/blog/2010/05/android-trader-application-with-flex-4-and-air/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>&#8220;Open in Excel&#8221;: Another AIR 2 Mini Sample</title>
		<link>http://coenraets.org/blog/2009/11/open-in-excel-another-air-2-mini-sample/</link>
		<comments>http://coenraets.org/blog/2009/11/open-in-excel-another-air-2-mini-sample/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 17:44:02 +0000</pubDate>
		<dc:creator>Christophe Coenraets</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://coenraets.org/blog/?p=244</guid>
		<description><![CDATA[In Adobe AIR 1.0 and 1.5, there were different options to &#8220;open&#8221; the data of a Flex DataGrid in Excel. For example, you could leverage the AIR native drag-and-drop support to drag rows from the DataGrid to an open Excel spreadsheet. You could also drag rows to the desktop (or anywhere on the file system) [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://coenraets.org/AIR2Excel/AIR2Excel.png" alt="" /></p>
<p>In Adobe AIR 1.0 and 1.5, there were different options to &#8220;open&#8221; the data of a Flex DataGrid in Excel. For example, you could leverage the AIR native drag-and-drop support to drag rows from the DataGrid to an open Excel spreadsheet. You could also drag rows to the desktop (or anywhere on the file system) as an .xls file. These two approaches are demonstrated in my <a href="http://coenraets.org/blog/2009/03/make-and-receive-phone-calls-in-the-new-version-of-the-salesbuilder-sample-flex-application/">Salesbuilder sample application</a>. Another approach was to use a server roundtrip to download the generated .xls file from the server and force Excel to open with the data.</p>
<p>There was however no immediate way to implement a straight (client-side only) &#8220;Open in Excel&#8221; feature (aka click a button to open your DataGrid data in Excel). With AIR 2.0 and the new <strong>File.openWithDefaultApplication()</strong> method this becomes extremely easy to implement. In the sample below, I provide an example of this new feature. The sample also supports the drag-and-drop approach from the AIR application to Excel and from the AIR application to the desktop (or anywhere else on the file system). This sample uses the <a href="http://code.google.com/p/as3xls/">as3xls library</a> to create the Excel spreadsheet. View Source is enabled.</p>
<h3>Installation Instructions</h3>
<ol>
<li>Download the AIR 2.0 beta runtime <a href="http://labs.adobe.com/downloads/air2.html">here</a>.</li>
<li>Download AIR2Excel.air <a href="http://coenraets.org/AIR2Excel/AIR2Excel.air">here</a>.</li>
<li>Double-click AIR2Excel.air in Explorer or Finder to start the installation process.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://coenraets.org/blog/2009/11/open-in-excel-another-air-2-mini-sample/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
	</channel>
</rss>
