<?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>The Space For App Developers &#187; Examples</title>
	<atom:link href="http://www.riaspace.com/category/examples/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.riaspace.com</link>
	<description>Beyond Plain Old HTML Objects</description>
	<lastBuildDate>Mon, 30 Jan 2012 10:51:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>HTML5 for App Developers: Debugger</title>
		<link>http://www.riaspace.com/2012/01/html5-for-app-developers-debugger/</link>
		<comments>http://www.riaspace.com/2012/01/html5-for-app-developers-debugger/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 20:34:01 +0000</pubDate>
		<dc:creator>Piotr Walczyszyn</dc:creator>
				<category><![CDATA[Examples]]></category>
		<category><![CDATA[Recording]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.riaspace.com/?p=3553</guid>
		<description><![CDATA[Below is the third episode of my HTML5 for App Developers series. In this episode, I cover how you can debug your JavaScript applications inside of Eclipse. Debugging is available through a set of plugins that are available for Eclipse from the ChromeDevTools project on Google Code. So, you will need either Google Chrome or Chromium to make it all [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.riaspace.com%2F2012%2F01%2Fhtml5-for-app-developers-debugger%2F">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.riaspace.com%2F2012%2F01%2Fhtml5-for-app-developers-debugger%2F&amp;style=normal&amp;b=2" height="61" width="50" />
			</a>
		</div><p><img class="alignleft size-full wp-image-3414" style="border-style: initial; border-color: initial; border-width: 0px; margin: 10px;" title="HTML5 Logo" src="http://www.riaspace.com/wp-content/uploads/2011/12/HTML5_Logo_128.png" alt="" width="128" height="128" /></p>
<p>Below is the third episode of my HTML5 for App Developers series. In this episode, I cover how you can debug your JavaScript applications inside of Eclipse.</p>
<p>Debugging is available through a set of plugins that are available for Eclipse from the <a href="http://code.google.com/p/chromedevtools/" target="_blank">ChromeDevTools</a> project on Google Code. So, you will need either Google Chrome or Chromium to make it all work.</p>
<p style="text-align: center;"><iframe title="YouTube video player" class="youtube-player" type="text/html" width="640" height="360" src="http://www.youtube.com/embed/tzvZj3w_PVY" frameborder="0" allowFullScreen="true"> </iframe></p>
<div class="shr-publisher-3553"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2012%2F01%2Fhtml5-for-app-developers-debugger%2F' data-shr_title='HTML5+for+App+Developers%3A+Debugger'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2012%2F01%2Fhtml5-for-app-developers-debugger%2F' data-shr_title='HTML5+for+App+Developers%3A+Debugger'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.riaspace.com/2012/01/html5-for-app-developers-debugger/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HTML5 for App Developers: Eclipse</title>
		<link>http://www.riaspace.com/2012/01/html5-for-app-developers-eclipse/</link>
		<comments>http://www.riaspace.com/2012/01/html5-for-app-developers-eclipse/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 18:27:48 +0000</pubDate>
		<dc:creator>Piotr Walczyszyn</dc:creator>
				<category><![CDATA[Examples]]></category>
		<category><![CDATA[Recording]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.riaspace.com/?p=3532</guid>
		<description><![CDATA[Below you will find the second episode of my HTML5 for App Developers series. In this episode, I cover how you can use Eclipse, which is a free and open source IDE, to do your HTML5, JavaScript, and CSS work. In the video, I point out a small bug that comes with Mac version of Eclipse. To download the [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.riaspace.com%2F2012%2F01%2Fhtml5-for-app-developers-eclipse%2F">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.riaspace.com%2F2012%2F01%2Fhtml5-for-app-developers-eclipse%2F&amp;style=normal&amp;b=2" height="61" width="50" />
			</a>
		</div><p><img class="alignleft size-full wp-image-3414" style="border-style: initial; border-color: initial; border-width: 0px; margin: 10px;" title="HTML5 Logo" src="http://www.riaspace.com/wp-content/uploads/2011/12/HTML5_Logo_128.png" alt="" width="128" height="128" /></p>
<p>Below you will find the second episode of my HTML5 for App Developers series. In this episode, I cover how you can use Eclipse, which is a free and open source IDE, to do your HTML5, JavaScript, and CSS work.</p>
<p>In the video, I point out a small bug that comes with Mac version of Eclipse. To download the patch you can use this <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=293398" target="_blank">link</a>. You can find Eclipse itself <a href="http://eclipse.org/downloads/" target="_blank">here</a>; I encourage you to download the Eclipse IDE for JavaScript Web Developers version.</p>
<p>&nbsp;</p>
<p style="text-align: center;"><iframe title="YouTube video player" class="youtube-player" type="text/html" width="640" height="360" src="http://www.youtube.com/embed/zcKF5SOhsS8" frameborder="0" allowFullScreen="true"> </iframe></p>
<div class="shr-publisher-3532"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2012%2F01%2Fhtml5-for-app-developers-eclipse%2F' data-shr_title='HTML5+for+App+Developers%3A+Eclipse'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2012%2F01%2Fhtml5-for-app-developers-eclipse%2F' data-shr_title='HTML5+for+App+Developers%3A+Eclipse'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.riaspace.com/2012/01/html5-for-app-developers-eclipse/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>as3c2dm getting started</title>
		<link>http://www.riaspace.com/2012/01/as3c2dm-getting-started/</link>
		<comments>http://www.riaspace.com/2012/01/as3c2dm-getting-started/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 18:28:47 +0000</pubDate>
		<dc:creator>Piotr Walczyszyn</dc:creator>
				<category><![CDATA[Examples]]></category>
		<category><![CDATA[Recording]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[ane]]></category>
		<category><![CDATA[as3c2dm]]></category>
		<category><![CDATA[C@DM]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.riaspace.com/?p=3508</guid>
		<description><![CDATA[Below you will find a recording with a tutorial of my as3c2dm ANE. Since I published this lib I have received tons of messages and comments with help requests so I hope this will work BTW this is the first video tutorial I&#8217;ve recorded from my new home studio. I still need to work a [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.riaspace.com%2F2012%2F01%2Fas3c2dm-getting-started%2F">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.riaspace.com%2F2012%2F01%2Fas3c2dm-getting-started%2F&amp;style=normal&amp;b=2" height="61" width="50" />
			</a>
		</div><p>Below you will find a recording with a tutorial of my <a href="https://github.com/pwalczyszyn/as3c2dm" target="_blank">as3c2dm</a> ANE. Since I <a href="http://www.riaspace.com/2011/09/as3c2dm-air-native-extension-to-push-notifications-with-c2dm/" target="_blank">published</a> this lib I have received tons of messages and comments  with help requests so I hope this will work <img src='http://www.riaspace.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><center><iframe title="YouTube video player" class="youtube-player" type="text/html" width="640" height="360" src="http://www.youtube.com/embed/qddHBBQHBGE" frameborder="0" allowFullScreen="true"> </iframe></center></p>
<p>BTW this is the first video tutorial I&#8217;ve recorded from my new home studio. I still need to work a bit on some light and audio presets in Premiere Pro but I think in general it&#8217;s starting to look and sound as I imagined. You can expect a short walkthrough around my studio in some of my next posts <img src='http://www.riaspace.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </p>
<div class="shr-publisher-3508"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2012%2F01%2Fas3c2dm-getting-started%2F' data-shr_title='as3c2dm+getting+started'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2012%2F01%2Fas3c2dm-getting-started%2F' data-shr_title='as3c2dm+getting+started'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.riaspace.com/2012/01/as3c2dm-getting-started/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cooklet &#8211; the most innovative cooking app built with Adobe AIR</title>
		<link>http://www.riaspace.com/2011/12/cooklet-the-most-innovative-cooking-app-built-with-adobe-air/</link>
		<comments>http://www.riaspace.com/2011/12/cooklet-the-most-innovative-cooking-app-built-with-adobe-air/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 11:02:33 +0000</pubDate>
		<dc:creator>Piotr Walczyszyn</dc:creator>
				<category><![CDATA[Examples]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Cooklet]]></category>
		<category><![CDATA[playbook]]></category>

		<guid isPermaLink="false">http://www.riaspace.com/?p=3476</guid>
		<description><![CDATA[With the holiday season just around the corner you may be wondering what and how you are going to cook (or maybe your mom or wife does ). Well here comes help: a really great looking and innovative app called Cooklet for tablets  (of course built with Adobe AIR). This app is a great addition to [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.riaspace.com%2F2011%2F12%2Fcooklet-the-most-innovative-cooking-app-built-with-adobe-air%2F">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.riaspace.com%2F2011%2F12%2Fcooklet-the-most-innovative-cooking-app-built-with-adobe-air%2F&amp;style=normal&amp;b=2" height="61" width="50" />
			</a>
		</div><p><a href="http://www.riaspace.com/wp-content/uploads/2011/12/cooklet-logo.png"><img class="alignleft size-full wp-image-3484" style="border-style: initial; border-color: initial; margin-left: 10px; margin-right: 10px; border-width: 0px;" title="cooklet logo" src="http://www.riaspace.com/wp-content/uploads/2011/12/cooklet-logo.png" alt="" width="163" height="105" /></a>With the holiday season just around the corner you may be wondering what and how you are going to cook (or maybe your mom or wife does <img src='http://www.riaspace.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ). Well here comes help: a really great looking and innovative app called <strong>Cooklet for tablets</strong>  (of course built with Adobe AIR). This app is a great addition to the <a href="http://cooklet.com" target="_blank">Cooklet.com</a> portal.</p>
<p>My favorite feature is the way you can navigate between the steps of the recipe. It is actually controlled via a front-facing camera and your hand gestures; this way your precious tab can stay clean <img src='http://www.riaspace.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Another great thing is that the cooking steps are actually read for you so you can keep your tab at a safe distance from your stove. Also the steps&#8217; text is presented with a much larger font so again it can be read from further away. The Cooklet team did really amazing job on the UI and UX of the app!</p>
<p>So go ahead and download it from <a href="https://market.android.com/details?id=air.CookletForTablets" target="_blank">Android Market</a> or <a href="http://appworld.blackberry.com/webstore/content/reviews/60772?lang=en" target="_blank">BlackBerry App World</a> (hopefully the iPad version will come soon). You can also check it out in action in the video below.</p>
<p><center><iframe title="YouTube video player" class="youtube-player" type="text/html" width="640" height="360" src="http://www.youtube.com/embed/iH-geNA79BY" frameborder="0" allowFullScreen="true"> </iframe></center></p>
<div class="shr-publisher-3476"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2011%2F12%2Fcooklet-the-most-innovative-cooking-app-built-with-adobe-air%2F' data-shr_title='Cooklet+-+the+most+innovative+cooking+app+built+with+Adobe+AIR'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2011%2F12%2Fcooklet-the-most-innovative-cooking-app-built-with-adobe-air%2F' data-shr_title='Cooklet+-+the+most+innovative+cooking+app+built+with+Adobe+AIR'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.riaspace.com/2011/12/cooklet-the-most-innovative-cooking-app-built-with-adobe-air/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HTML5 for App Developers: Dreamweaver</title>
		<link>http://www.riaspace.com/2011/12/html5-for-app-developers-dreamweaver/</link>
		<comments>http://www.riaspace.com/2011/12/html5-for-app-developers-dreamweaver/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 09:36:33 +0000</pubDate>
		<dc:creator>Piotr Walczyszyn</dc:creator>
				<category><![CDATA[Examples]]></category>
		<category><![CDATA[Recording]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://www.riaspace.com/?p=3409</guid>
		<description><![CDATA[OK, I finally found some time to give HTML5 a try. Since Adobe (my employer) is actively participating in its development, I wanted to learn more about the actual state of the technology, understand what all the hype is about, and really not fall behind. I have to be frank here. That the first three [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.riaspace.com%2F2011%2F12%2Fhtml5-for-app-developers-dreamweaver%2F">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.riaspace.com%2F2011%2F12%2Fhtml5-for-app-developers-dreamweaver%2F&amp;style=normal&amp;b=2" height="61" width="50" />
			</a>
		</div><p><img class="alignleft size-full wp-image-3414" style="border-style: initial; border-color: initial; border-width: 0px; margin: 10px;" title="HTML5 Logo" src="http://www.riaspace.com/wp-content/uploads/2011/12/HTML5_Logo_128.png" alt="" width="128" height="128" /> OK, I finally found some time to give HTML5 a try. Since Adobe (my employer) is actively participating in its development, I wanted to learn more about the actual state of the technology, understand what all the hype is about, and really not fall behind.</p>
<p>I have to be frank here. That the first three days were really hard for me I cursed a lot and pulled my hair out of my head. Well IMHO the learning curve is a bit steep, especially when you are coming from an OOP (Object-Oriented Programming) world like Flex/AS3, Java, or .NET. What I&#8217;m trying to say here is that things are just different and you need some patience to get used to it. But after those first few days I actually started enjoying it and I&#8217;m sure you will too if you give it a try.</p>
<p>So, to alleviate the pain for others that are taking their first steps with HTML5 I decided to record a series of short tutorials that should help <img src='http://www.riaspace.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  The series will be titled &#8220;HTML5 for App Developers&#8221; and I will concentrate mostly on app development aspects &#8211; so things like tooling/IDEs, debugging, HTML layouts, JavaScript frameworks, architectural and design patterns, and much, much more.</p>
<p>The first video, which you can find below, is about Adobe Dreamweaver and how you can customize it to make it a more developer-centric tool/IDE. The next one will also cover tooling and it will be about Eclipse (the free and open source IDE). I think it is extremely important that when starting with a new technology to have the whole environment set up comfortably so it doesn&#8217;t get in your way. So go ahead and enjoy the video below.</p>
<p>&nbsp;</p>
<p style="text-align: center;"><iframe title="YouTube video player" class="youtube-player" type="text/html" width="640" height="360" src="http://www.youtube.com/embed/8SpAjO68Pas" frameborder="0" allowFullScreen="true"> </iframe></p>
<div class="shr-publisher-3409"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2011%2F12%2Fhtml5-for-app-developers-dreamweaver%2F' data-shr_title='HTML5+for+App+Developers%3A+Dreamweaver'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2011%2F12%2Fhtml5-for-app-developers-dreamweaver%2F' data-shr_title='HTML5+for+App+Developers%3A+Dreamweaver'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.riaspace.com/2011/12/html5-for-app-developers-dreamweaver/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Flex 4.6 &#8211; BlueChips demo</title>
		<link>http://www.riaspace.com/2011/12/flex-4-6-bluechips-demo/</link>
		<comments>http://www.riaspace.com/2011/12/flex-4-6-bluechips-demo/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 19:32:19 +0000</pubDate>
		<dc:creator>Piotr Walczyszyn</dc:creator>
				<category><![CDATA[Examples]]></category>
		<category><![CDATA[Recording]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[BlueChips]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.riaspace.com/?p=3384</guid>
		<description><![CDATA[To celebrate the best ever release of Flex SDK marked with 4.6 version number I decided to publish source code of my little tablet demo app called BlueChips. The video below demonstrates BlueChips in action together with an overview of new Flex 4.6 components that target tablet development. You can go ahead and download the [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.riaspace.com%2F2011%2F12%2Fflex-4-6-bluechips-demo%2F">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.riaspace.com%2F2011%2F12%2Fflex-4-6-bluechips-demo%2F&amp;style=normal&amp;b=2" height="61" width="50" />
			</a>
		</div><p>To celebrate the best ever release of <strong>Flex SDK</strong> marked with <strong>4.6</strong> version number I decided to publish source code of my little tablet demo app called <strong>BlueChips</strong>. The video below demonstrates BlueChips in action together with an overview of new Flex 4.6 components that target tablet development. You can go ahead and download the source code from <a href="https://github.com/pwalczyszyn/BlueChips" target="_blank">github</a> and do whatever you want with it <img src='http://www.riaspace.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><center><br />
<iframe title="YouTube video player" class="youtube-player" type="text/html" width="640" height="360" src="http://www.youtube.com/embed/TvEpJuU74Kg" frameborder="0" allowFullScreen="true"> </iframe><br />
</center></p>
<p>If you prefer vimeo over youtube you can watch the same recording <a href="http://vimeo.com/32982854" target="_blank">here</a>.</p>
<div class="shr-publisher-3384"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2011%2F12%2Fflex-4-6-bluechips-demo%2F' data-shr_title='Flex+4.6+-+BlueChips+demo'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2011%2F12%2Fflex-4-6-bluechips-demo%2F' data-shr_title='Flex+4.6+-+BlueChips+demo'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.riaspace.com/2011/12/flex-4-6-bluechips-demo/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>as3c2dm &#8211; AIR native extension to push notifications with C2DM</title>
		<link>http://www.riaspace.com/2011/09/as3c2dm-air-native-extension-to-push-notifications-with-c2dm/</link>
		<comments>http://www.riaspace.com/2011/09/as3c2dm-air-native-extension-to-push-notifications-with-c2dm/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 16:14:08 +0000</pubDate>
		<dc:creator>Piotr Walczyszyn</dc:creator>
				<category><![CDATA[Examples]]></category>
		<category><![CDATA[Recording]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[ane]]></category>
		<category><![CDATA[as3c2dm]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Mobile]]></category>

		<guid isPermaLink="false">http://www.riaspace.com/?p=3339</guid>
		<description><![CDATA[In this short video recording you will see my new and first AIR native extension (ANE) that I created for C2DM (Android Cloud to Device Messaging Framework). C2DM allows you to push notifications to your Android applications. The cool thing about it is that your application doesn&#8217;t have to run in the background in order [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.riaspace.com%2F2011%2F09%2Fas3c2dm-air-native-extension-to-push-notifications-with-c2dm%2F">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.riaspace.com%2F2011%2F09%2Fas3c2dm-air-native-extension-to-push-notifications-with-c2dm%2F&amp;style=normal&amp;b=2" height="61" width="50" />
			</a>
		</div><p>In this short video recording you will see my new and first <a href="http://www.adobe.com/devnet/air/articles/extending-air.html" target="_blank">AIR native extension (ANE)</a> that I created for <a href="http://code.google.com/android/c2dm/" target="_blank">C2DM</a> (Android Cloud to Device Messaging Framework). </p>
<p>C2DM allows you to push notifications to your Android applications. The cool thing about it is that your application doesn&#8217;t have to run in the background in order to receive messages. In this case, my ANE creates a notification with a specified ticker, title and text. When the user taps on the notification it runs an AIR application and passes the sent message text that is displayed in the app. Check out the magic for yourself in the video below.</p>
<p><center><br />
<iframe src="http://player.vimeo.com/video/29786936" width="540" height="360" frameborder="0"></iframe><br />
</center></p>
<p>The source code is available <a href="https://github.com/pwalczyszyn/as3c2dm" target="_blank">here</a>. You can also download the packaged ANE and the C2DM Messanger app from <a href="https://github.com/downloads/pwalczyszyn/as3c2dm/as3c2dm.ane" target="_blank">here</a> and <a href="https://github.com/downloads/pwalczyszyn/as3c2dm/C2DMMessenger.air" target="_blank">here</a>.</p>
<p>Check out some more already built ANE&#8217;s <a href="http://www.adobe.com/devnet/air/native-extensions-for-air.html" target="_blank">here</a>.</p>
<div class="shr-publisher-3339"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2011%2F09%2Fas3c2dm-air-native-extension-to-push-notifications-with-c2dm%2F' data-shr_title='as3c2dm+-+AIR+native+extension+to+push+notifications+with+C2DM'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2011%2F09%2Fas3c2dm-air-native-extension-to-push-notifications-with-c2dm%2F' data-shr_title='as3c2dm+-+AIR+native+extension+to+push+notifications+with+C2DM'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.riaspace.com/2011/09/as3c2dm-air-native-extension-to-push-notifications-with-c2dm/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>Bundling AIR 3 runtime in AIR desktop applications</title>
		<link>http://www.riaspace.com/2011/08/bundling-air-3-runtime-in-air-desktop-applications/</link>
		<comments>http://www.riaspace.com/2011/08/bundling-air-3-runtime-in-air-desktop-applications/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 15:49:35 +0000</pubDate>
		<dc:creator>Piotr Walczyszyn</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Examples]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[AIR]]></category>

		<guid isPermaLink="false">http://www.riaspace.com/?p=3290</guid>
		<description><![CDATA[At the beginning of this week a beta 2 version of the AIR 3 SDK was released. The AIR 3 SDK and AIR 3 runtime will be a major release that will bring a lot of really cool features. One of the features that I’m really excited about is Captive Runtime, which lets you package your [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.riaspace.com%2F2011%2F08%2Fbundling-air-3-runtime-in-air-desktop-applications%2F">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.riaspace.com%2F2011%2F08%2Fbundling-air-3-runtime-in-air-desktop-applications%2F&amp;style=normal&amp;b=2" height="61" width="50" />
			</a>
		</div><p><a href="http://www.riaspace.com/wp-content/uploads/2011/08/air_165x165.jpg"><img class="alignleft size-full wp-image-3300" style="border-style: initial; border-color: initial; margin-left: 10px; margin-right: 10px; border-width: 0px;" title="air_165x165" src="http://www.riaspace.com/wp-content/uploads/2011/08/air_165x165.jpg" alt="" width="165" height="165" /></a>At the beginning of this week a <strong>beta 2</strong> version of the <a href="http://labs.adobe.com/downloads/air3.html" target="_blank">AIR 3 SDK</a> was released. The AIR 3 SDK and AIR 3 runtime will be a major release that will bring a lot of really cool features. One of the features that I’m really excited about is <strong>Captive Runtime</strong>, which lets you package your applications with a bundled AIR runtime. This is something that was available for the iOS platform from day one, and now it is also supported for both Android devices and desktops.</p>
<p>I think this is a really important feature for AIR. I heard many times from our customers and the community that we need a solution that enables users to install AIR applications without administrator rights. This is a common scenario especially in the enterprise environments where users don’t have full privileges. Also in some other cases it may improve user experience as there is no need to ask the user to install an additional runtime. It will also help when you need to distribute your application on a CD or other media that doesn’t let you use the browser-based badge installer.</p>
<p>Now how do you package your app for both Windows and Mac? It&#8217;s really simple. First thing what you need to do is to download and unzip the new SDK from <a href="http://labs.adobe.com" target="_blank">Adobe Labs</a>. Next compile your application either with the command line mxmlc compiler or using Flash Builder. To do it in Flash Builder, right-click your AIR application project, select Export&#8230; -&gt; Flash Builder -&gt; Release Build, and complete just the first step of this wizard without finishing it. This will create a bin-release-temp folder under your project directory with a compiled SWF and app descriptor file. Now go to the command line and invoke following adt command from your project/bin-release-temp folder.</p>
<h4>On Windows:</h4>
<p><code>c:\path\to\air3sdk\bin\adt.bat -package -storetype pkcs12 -keystore c:\path\to\certificate.p12 -target bundle myapp.exe myapp-app.xml -C . myapp.swf<br />
</code></p>
<h4>On Mac:</h4>
<p><code>/path/to/air3sdk/bin/adt -package -storetype pkcs12 -keystore /path/to/certificate.p12 -target bundle myapp.app myapp-app.xml -C . myapp.swf<br />
</code></p>
<p>You will receive slightly different results depending on your platform. On Mac your application is packaged into myapp.app, which is a single Mac package file. You can just double-click it to run the app. Also if you want to introspect its content you can right-click it and select the Show Package Contents option. On Windows you will get myapp.exe folder that has all the runtime files and the executable myapp.exe file in it. Now you can use your favorite installer builder to build a setup package for your application.</p>
<h4>Generated folders structure on Windows:</h4>
<p><a href="http://www.riaspace.com/wp-content/uploads/2011/08/captive-win.png"><img class="size-full wp-image-3312 alignnone" style="border-style: initial; border-color: initial; border-width: 0px;" title="captive-win" src="http://www.riaspace.com/wp-content/uploads/2011/08/captive-win.png" alt="" width="334" height="180" /></a></p>
<h4>Generated package structure on Mac:</h4>
<p><a href="http://www.riaspace.com/wp-content/uploads/2011/08/captive-mac.png"><img class="size-full wp-image-3313 alignnone" style="border-style: initial; border-color: initial; border-width: 0px;" title="captive-mac" src="http://www.riaspace.com/wp-content/uploads/2011/08/captive-mac.png" alt="" width="327" height="229" /></a></p>
<p>For Android options check out this blog <a href="http://www.tricedesigns.com/2011/08/10/air-3-0-captive-runtime/" target="_blank">post</a> by my new fellow evangelist Andy Trice.</p>
<div class="shr-publisher-3290"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2011%2F08%2Fbundling-air-3-runtime-in-air-desktop-applications%2F' data-shr_title='Bundling+AIR+3+runtime+in+AIR+desktop+applications'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2011%2F08%2Fbundling-air-3-runtime-in-air-desktop-applications%2F' data-shr_title='Bundling+AIR+3+runtime+in+AIR+desktop+applications'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.riaspace.com/2011/08/bundling-air-3-runtime-in-air-desktop-applications/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Defining custom URL schemes for your AIR mobile applications</title>
		<link>http://www.riaspace.com/2011/08/defining-custom-url-schemes-for-your-air-mobile-applications/</link>
		<comments>http://www.riaspace.com/2011/08/defining-custom-url-schemes-for-your-air-mobile-applications/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 15:15:44 +0000</pubDate>
		<dc:creator>Piotr Walczyszyn</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Examples]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[OAuth]]></category>

		<guid isPermaLink="false">http://www.riaspace.com/?p=3182</guid>
		<description><![CDATA[If you&#8217;ve ever wondered if you can register your own URL schemes for your AIR mobile applications running on iOS or Android platforms the answer is yes! Actually it is very simple and you can do it by adding few extra lines in the *-app.xml document. Once you do your application can be invoked directly [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.riaspace.com%2F2011%2F08%2Fdefining-custom-url-schemes-for-your-air-mobile-applications%2F">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.riaspace.com%2F2011%2F08%2Fdefining-custom-url-schemes-for-your-air-mobile-applications%2F&amp;style=normal&amp;b=2" height="61" width="50" />
			</a>
		</div><p>If you&#8217;ve ever wondered if you can register your own URL schemes for your AIR mobile applications running on iOS or Android platforms the answer is yes! Actually it is very simple and you can do it by adding few extra lines in the *-app.xml document. Once you do your application can be invoked directly from other applications or browser with a simple <code>&lt;a href="my-scheme:"&gt;open app&lt;/a&gt;</code> link click. </p>
<p>(Custom URL schemes are especially useful if you are doing OAuth authentication in your app and you want to redirect the user back to your application after the authorization in the browser. You can find out more about OAuth in AS3/Flex applications in my <a href="http://www.riaspace.com/2011/05/oauth-authorization-with-flash-and-flex-apps/" target="_blank">ADC tutorials</a>.)</p>
<p>To register a custom URL scheme like <code>my-scheme:</code> you simply add the following code in your *-app.xml.</p>
<h4>Android settings:</h4>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;android<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;manifestAdditions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #339933;">&lt;![CDATA[</span>
<span style="color: #339933;">        &lt;manifest android:installLocation=&quot;auto&quot;&gt;</span>
<span style="color: #339933;">            &lt;application&gt; </span>
<span style="color: #339933;">                &lt;activity&gt; </span>
<span style="color: #339933;">                    &lt;intent-filter&gt; </span>
<span style="color: #339933;">                        &lt;action android:name=&quot;android.intent.action.VIEW&quot;/&gt; </span>
<span style="color: #339933;">                        &lt;category android:name=&quot;android.intent.category.BROWSABLE&quot;/&gt; </span>
<span style="color: #339933;">                        &lt;category android:name=&quot;android.intent.category.DEFAULT&quot;/&gt; </span>
<span style="color: #339933;">                        &lt;data android:scheme=&quot;my-scheme&quot;/&gt; </span>
<span style="color: #339933;">                    &lt;/intent-filter&gt; </span>
<span style="color: #339933;">                &lt;/activity&gt; </span>
<span style="color: #339933;">            &lt;/application&gt; </span>
&nbsp;
<span style="color: #339933;">            &lt;uses-permission android:name=&quot;android.permission.INTERNET&quot;/&gt;</span>
&nbsp;
<span style="color: #339933;">        &lt;/manifest&gt;</span>
<span style="color: #339933;">    ]]&gt;</span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/manifestAdditions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/android<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h4>iOS settings:</h4>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;iPhone<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;InfoAdditions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #339933;">&lt;![CDATA[</span>
<span style="color: #339933;">		&lt;key&gt;UIDeviceFamily&lt;/key&gt;</span>
<span style="color: #339933;">		&lt;array&gt;</span>
<span style="color: #339933;">			&lt;string&gt;1&lt;/string&gt;</span>
<span style="color: #339933;">			&lt;string&gt;2&lt;/string&gt;</span>
<span style="color: #339933;">		&lt;/array&gt;</span>
&nbsp;
<span style="color: #339933;">		&lt;key&gt;CFBundleURLTypes&lt;/key&gt;</span>
<span style="color: #339933;">		&lt;array&gt;</span>
<span style="color: #339933;">			&lt;dict&gt;</span>
<span style="color: #339933;">				&lt;key&gt;CFBundleURLSchemes&lt;/key&gt;</span>
<span style="color: #339933;">				&lt;array&gt;</span>
<span style="color: #339933;">					&lt;string&gt;my-scheme&lt;/string&gt;</span>
<span style="color: #339933;">				&lt;/array&gt;</span>
<span style="color: #339933;">				&lt;key&gt;CFBundleURLName&lt;/key&gt;</span>
<span style="color: #339933;">				&lt;string&gt;com.myapp&lt;/string&gt;</span>
<span style="color: #339933;">			&lt;/dict&gt;</span>
<span style="color: #339933;">		&lt;/array&gt;</span>
&nbsp;
<span style="color: #339933;">	]]&gt;</span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/InfoAdditions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;requestedDisplayResolution<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>high<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/requestedDisplayResolution<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/iPhone<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Also you can pass additional arguments to your app from the invoking source. Arguments can be passed in the URL scheme after the colon; for example: <code>my-scheme:myparam</code>. Then in your application you can listen for <code>InvokeEvent.INVOKE</code> event on the <code>NativeApplication.nativeApplication</code> instance. The received event object contains an <code>arguments</code> property that returns an Array with the invoking scheme and parameters in the first item, so it would be <code>my-scheme:myparam</code> value. Next you can parse the value of your argument, and take some action in the application based on its value.</p>
<p>In a Flex Mobile app you can register an <code>InvokeEvent.INVOKE</code> event listener in the <code>preinitialize</code> phase as in following snippet:</p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;">&nbsp;
<span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Application</span> xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> </span>
<span style="color: #000000;">			   xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span></span>
<span style="color: #000000;">			   preinitialize=<span style="color: #ff0000;">&quot;application_preinitializeHandler(event)&quot;</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Script</span><span style="color: #7400FF;">&gt;</span></span>
		<span style="color: #000000;">&lt;!<span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span></span>
<span style="color: #000000;">			import mx.events.FlexEvent;</span>
&nbsp;
<span style="color: #000000;">			protected function application_preinitializeHandler<span style="color: #66cc66;">&#40;</span>event:FlexEvent<span style="color: #66cc66;">&#41;</span>:void</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#123;</span></span>
<span style="color: #000000;">				NativeApplication.nativeApplication.addEventListener<span style="color: #66cc66;">&#40;</span></span>
<span style="color: #000000;">					InvokeEvent.INVOKE, onInvoke<span style="color: #66cc66;">&#41;</span>;</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#125;</span></span>
&nbsp;
<span style="color: #000000;">			private function onInvoke<span style="color: #66cc66;">&#40;</span>event:InvokeEvent<span style="color: #66cc66;">&#41;</span>:void</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#123;</span></span>
<span style="color: #000000;">				// You can parse argument value from event.arguments property</span>
<span style="color: #000000;">				lblArguments.text = <span style="color: #ff0000;">&quot;Arguments: &quot;</span> + event.arguments;</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#125;</span></span>
&nbsp;
<span style="color: #000000;">		<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Script</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Declarations</span><span style="color: #7400FF;">&gt;</span></span>
		<span style="color: #000000;"><span style="color: #808080; font-style: italic;">&lt;!-- Place non-visual elements (e.g., services, value objects) here --&gt;</span></span>
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Declarations</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
	<span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Label</span> id=<span style="color: #ff0000;">&quot;lblArguments&quot;</span> horizontalCenter=<span style="color: #ff0000;">&quot;0&quot;</span> verticalCenter=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
&nbsp;
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Application</span><span style="color: #7400FF;">&gt;</span></span></pre></div></div>

<p>One caveat is that invoking other apps with the custom URL schemes from AIR apps is not possible. The AIR security model is more restrictive and it limits schemes to: <code>http:, https:, sms:, tel:, mailto:, file:, app:, app-storage:, vipaccess: and connectpro:</code>. You can find more about it <a href="http://help.adobe.com/en_US/air/html/dev/WS5b3ccc516d4fbf351e63e3d118666ade46-7cba.html" target="_blank">here</a> and <a href="http://help.adobe.com/en_US/air/reference/html/flash/net/package.html" target="_blank">here</a>.</p>
<div class="shr-publisher-3182"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2011%2F08%2Fdefining-custom-url-schemes-for-your-air-mobile-applications%2F' data-shr_title='Defining+custom+URL+schemes+for+your+AIR+mobile+applications'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2011%2F08%2Fdefining-custom-url-schemes-for-your-air-mobile-applications%2F' data-shr_title='Defining+custom+URL+schemes+for+your+AIR+mobile+applications'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.riaspace.com/2011/08/defining-custom-url-schemes-for-your-air-mobile-applications/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Creating SkinnableContainer skins for Flex mobile apps</title>
		<link>http://www.riaspace.com/2011/07/creating-skinnablecontainer-skins-for-flex-mobile-apps/</link>
		<comments>http://www.riaspace.com/2011/07/creating-skinnablecontainer-skins-for-flex-mobile-apps/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 14:03:41 +0000</pubDate>
		<dc:creator>Piotr Walczyszyn</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Examples]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.riaspace.com/?p=3123</guid>
		<description><![CDATA[Recently I was looking for an example on how to create a skin that would work with the SkinnableContainer component class in a Flex mobile application. It turned out I couldn&#8217;t find any examples available in the wild so I had to dig it out myself. So below is the approach I took, which can also work [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.riaspace.com%2F2011%2F07%2Fcreating-skinnablecontainer-skins-for-flex-mobile-apps%2F">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.riaspace.com%2F2011%2F07%2Fcreating-skinnablecontainer-skins-for-flex-mobile-apps%2F&amp;style=normal&amp;b=2" height="61" width="50" />
			</a>
		</div><p>Recently I was looking for an example on how to create a skin that would work with the <code>SkinnableContainer</code> component class in a Flex mobile application. It turned out I couldn&#8217;t find any examples available in the wild so I had to dig it out myself. So below is the approach I took, which can also work for others.</p>
<p>The first thing I found out is that there is a <code>SkinnableContainerSkin</code> class in the <code>spark.skins.mobile</code> package that extends <code>MobileSkin</code> class. This is a basic implementation that works out-of-the-box when you use <code>SkinnableContainer</code> in mobile projects. Its only behavior is setting a <code>contentGroup</code> property with a new instance of the <code>Group</code> class and drawing a background rectangle filled with color based on the <code>backgroundColor</code> style.</p>
<p>Now my goal, instead of drawing the background with AS3, was to use a custom FXG file with some rounded corners, simple stroke and gradient. The screenshot below demonstrates what I was looking for:</p>
<p style="text-align: center;"><a href="http://www.riaspace.com/wp-content/uploads/2011/07/skinnablecontainerskin.png"><img class="size-medium wp-image-3128 aligncenter" style="border-style: initial; border-color: initial; border-width: 0px;" title="skinnablecontainerskin" src="http://www.riaspace.com/wp-content/uploads/2011/07/skinnablecontainerskin-180x300.png" alt="" width="180" height="300" /></a></p>
<p>In order to achieve the example above I extended <code>SkinnableContainerSkin</code> as in the following snippet:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> spark.<span style="color: #006600;">core</span>.<span style="color: #006600;">SpriteVisualElement</span>;
	<span style="color: #0066CC;">import</span> spark.<span style="color: #006600;">skins</span>.<span style="color: #006600;">mobile</span>.<span style="color: #006600;">SkinnableContainerSkin</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MySkinnableContainerSkin <span style="color: #0066CC;">extends</span> SkinnableContainerSkin
	<span style="color: #66cc66;">&#123;</span>
		protected <span style="color: #000000; font-weight: bold;">var</span> backgroundClass:<span style="color: #000000; font-weight: bold;">Class</span>;
&nbsp;
		protected <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">background</span>:SpriteVisualElement;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> MySkinnableContainerSkin<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// Here could be a DPI dependent logic, for demo purposes it is not necessary</span>
			backgroundClass = MySkinnableContainerBackground;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		override protected <span style="color: #000000; font-weight: bold;">function</span> createChildren<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">// Adding container background</span>
			<span style="color: #0066CC;">background</span> = <span style="color: #000000; font-weight: bold;">new</span> backgroundClass;
			addChild<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">background</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// Creating content group instance</span>
			<span style="color: #0066CC;">super</span>.<span style="color: #006600;">createChildren</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		override protected <span style="color: #000000; font-weight: bold;">function</span> layoutContents<span style="color: #66cc66;">&#40;</span>unscaledWidth:<span style="color: #0066CC;">Number</span>, unscaledHeight:<span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">super</span>.<span style="color: #006600;">layoutContents</span><span style="color: #66cc66;">&#40;</span>unscaledWidth, unscaledHeight<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// Setting size of background container</span>
			setElementSize<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">background</span>, unscaledWidth, unscaledHeight<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		override protected <span style="color: #000000; font-weight: bold;">function</span> drawBackground<span style="color: #66cc66;">&#40;</span>unscaledWidth:<span style="color: #0066CC;">Number</span>, unscaledHeight:<span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">// By default SkinnableContainerSkin draws Rect with backgroundColor but this is not</span>
			<span style="color: #808080; font-style: italic;">// required in this case since background is constructed of MySkinnableContainerBackground fxg</span>
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>My FXG file content looked like this:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">'1.0'</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">'UTF-8'</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Graphic</span> <span style="color: #000066;">xmlns:fc</span>=<span style="color: #ff0000;">&quot;http://ns.adobe.com/flashcatalyst/2009&quot;</span> <span style="color: #000066;">xmlns:d</span>=<span style="color: #ff0000;">&quot;http://ns.adobe.com/fxg/2008/dt&quot;</span> </span>
<span style="color: #009900;">		 <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://ns.adobe.com/fxg/2008&quot;</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;2.0&quot;</span></span>
<span style="color: #009900;">		 <span style="color: #000066;">scaleGridLeft</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">scaleGridTop</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">scaleGridRight</span>=<span style="color: #ff0000;">&quot;90&quot;</span> <span style="color: #000066;">scaleGridBottom</span>=<span style="color: #ff0000;">&quot;90&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Rect</span> <span style="color: #000066;">radiusX</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">&quot;100&quot;</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">&quot;100&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;fill<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearGradient</span> <span style="color: #000066;">rotation</span>=<span style="color: #ff0000;">&quot;90&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;GradientEntry</span> <span style="color: #000066;">alpha</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">color</span>=<span style="color: #ff0000;">&quot;#CCCCCC&quot;</span> <span style="color: #000066;">ratio</span>=<span style="color: #ff0000;">&quot;0&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;GradientEntry</span> <span style="color: #000066;">alpha</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">color</span>=<span style="color: #ff0000;">&quot;#666666&quot;</span> <span style="color: #000066;">ratio</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/LinearGradient<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/fill<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;stroke<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SolidColorStroke</span> <span style="color: #000066;">color</span>=<span style="color: #ff0000;">&quot;#FF0000&quot;</span> <span style="color: #000066;">weight</span>=<span style="color: #ff0000;">&quot;2&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/stroke<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Rect<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Graphic<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>And the way I can use it now in my Flex mobile projects is as follows:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;s:SkinnableContainer</span> <span style="color: #000066;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">top</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">right</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">bottom</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">skinClass</span>=<span style="color: #ff0000;">&quot;MySkinnableContainerSkin&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;s:Label</span> <span style="color: #000066;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">top</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">right</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">bottom</span>=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;s:text<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam eget arcu et nibh vehicula pulvinar sit amet sit amet ligula. Duis a orci at nisi faucibus luctus. Quisque congue vulputate porttitor. Curabitur ac turpis nulla, a malesuada diam. Sed ullamcorper massa ac libero tincidunt vel ultrices odio cursus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce pharetra varius tortor id rutrum. Duis tempor, nisl sit amet scelerisque dignissim, lorem nisl vehicula leo, in auctor dolor turpis at nisl. Quisque bibendum faucibus turpis vitae pulvinar. Sed mollis risus eget turpis molestie laoreet. Aenean metus nulla, vestibulum at egestas quis, aliquet tempus lectus.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/s:text<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/s:Label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/s:SkinnableContainer<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<div class="shr-publisher-3123"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2011%2F07%2Fcreating-skinnablecontainer-skins-for-flex-mobile-apps%2F' data-shr_title='Creating+SkinnableContainer+skins+for+Flex+mobile+apps'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.riaspace.com%2F2011%2F07%2Fcreating-skinnablecontainer-skins-for-flex-mobile-apps%2F' data-shr_title='Creating+SkinnableContainer+skins+for+Flex+mobile+apps'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.riaspace.com/2011/07/creating-skinnablecontainer-skins-for-flex-mobile-apps/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

