<?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>www.flashmobileblog.com</title>
	<atom:link href="http://www.flashmobileblog.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.flashmobileblog.com</link>
	<description>Mark Doherty - Flash Platform Evangelist, Mobile and Devices</description>
	<lastBuildDate>Mon, 30 Aug 2010 17:04:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>P2P Radar for Android</title>
		<link>http://www.flashmobileblog.com/2010/08/27/p2p-radar-for-android/</link>
		<comments>http://www.flashmobileblog.com/2010/08/27/p2p-radar-for-android/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 14:39:51 +0000</pubDate>
		<dc:creator>Mark Doherty</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile Content]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[P2P]]></category>

		<guid isPermaLink="false">http://www.flashmobileblog.com/?p=1167</guid>
		<description><![CDATA[A few weeks ago I published a video demonstrating the amazing P2P features in AIR2.x, running on the desktop and on Android devices. Well I have been hard at work improving this application and making it robust enough to show here in India at the Flash Platform Summit. The result is a pretty complex application [...]]]></description>
			<content:encoded><![CDATA[<p><center><object width="601" height="338"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=14480534&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=14480534&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="601" height="338"></embed></object></center></p>
<p>A few weeks ago I published a video demonstrating the amazing P2P features in AIR2.x, running on the desktop and on Android devices.  Well I have been hard at work improving this application and making it robust enough to show here in India at the Flash Platform Summit.</p>
<p>The result is a pretty complex application that enables users to establish P2P video calls.  I have used Google Maps in 3D mode and added Gesture support, Twitter for Authentication and a completely new API.</p>
<p>As promised, here is the source for you to download.  Remember that <a href="http://www.flashrealtime.com/">Tom Krcha</a> is our P2P and FMS expert, so make sure that you keep up-to-date on his blog for more elaborate uses of P2P.</p>
<h1><a href="http://www.flashmobileblog.com/wp-content/uploads/2010/08/Radar-blog.zip">DOWNLOAD</a></h1>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.flashmobileblog.com/2010/08/27/p2p-radar-for-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>X-Wing GPS Targeting</title>
		<link>http://www.flashmobileblog.com/2010/08/13/x-wing-gps-targeting/</link>
		<comments>http://www.flashmobileblog.com/2010/08/13/x-wing-gps-targeting/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 09:27:31 +0000</pubDate>
		<dc:creator>Mark Doherty</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Flash Player]]></category>

		<guid isPermaLink="false">http://www.flashmobileblog.com/?p=1140</guid>
		<description><![CDATA[Check this out from Christopher Caleb (a long time Flash mobile developer)]]></description>
			<content:encoded><![CDATA[<p><center><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="601" height="451" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=14041462&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" /><embed type="application/x-shockwave-flash" width="601" height="451" src="http://vimeo.com/moogaloop.swf?clip_id=14041462&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></center></p>
<p>Check this out from Christopher Caleb (a long time Flash mobile developer) <img src='http://www.flashmobileblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.flashmobileblog.com/2010/08/13/x-wing-gps-targeting/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Update &#8211; P2P Video Calls on Android</title>
		<link>http://www.flashmobileblog.com/2010/07/17/p2p-video-calls-on-android/</link>
		<comments>http://www.flashmobileblog.com/2010/07/17/p2p-video-calls-on-android/#comments</comments>
		<pubDate>Sat, 17 Jul 2010 10:24:05 +0000</pubDate>
		<dc:creator>Mark Doherty</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Industry News]]></category>
		<category><![CDATA[Mobile Content]]></category>
		<category><![CDATA[AIR2.5]]></category>
		<category><![CDATA[Camera]]></category>
		<category><![CDATA[Microphone]]></category>
		<category><![CDATA[NativeExtensions]]></category>
		<category><![CDATA[StageWebView]]></category>

		<guid isPermaLink="false">http://www.flashmobileblog.com/?p=1137</guid>
		<description><![CDATA[Note: These AIR features are &#8220;working&#8221;, although they may not make it into the v1 product. Note: This is not an Adobe product, but simply a feature demo that took 3 days. Any one can build P2P applications with Flash and AIR. This week I have been working on a couple of different mini-projects to [...]]]></description>
			<content:encoded><![CDATA[<p><center><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="601" height="338" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=13410620&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="601" height="338" src="http://vimeo.com/moogaloop.swf?clip_id=13410620&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></center></p>
<p><em><strong>Note</strong>: These AIR features are &#8220;working&#8221;, although they may not make it into the v1 product.</em><br />
<em><strong>Note</strong>: This is not an Adobe product, but simply a feature demo that took 3 days.  Any one can build P2P applications with Flash and AIR.</em></p>
<p>This week I have been working on a couple of different mini-projects to test out new beta features of <a href="http://labs.adobe.com/technologies/air2/android/">AIR 2.5 for Android</a>.  The engineering team are pushing out features every week, and I have to say I&#8217;m very very impressed with their efforts.  We are arguably now at feature parity with the desktop AIR releases, which is precisely the goal of the <a href="http://www.openscreenproject.org">Open Screen Project</a>.</p>
<p>In the 5/7 build we have added Camera, Microphone, <a href="http://vimeo.com/13410792">StageWebView</a> and NativeExtensions features to the beta.  Of course AIR comes with all of the Flash Player 10.1 features along with multi-touch/gestures, support for bitmap matrix caching and <a href="http://vimeo.com/13410792">Geolocation APIs</a> in addition.</p>
<p>The code isn&#8217;t exactly stable so I don&#8217;t want to release it just yet.  I hope I can finish it by next week, by which time it will have a name.  I changed the name of this demo since it&#8217;s not an Adobe Flash Platform product, which caused some confusion. There aren&#8217;t plans currently to release this as a product, however I will publish the source code for all.</p>
<p>Flash/AIR on!</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.flashmobileblog.com/2010/07/17/p2p-video-calls-on-android/feed/</wfw:commentRss>
		<slash:comments>68</slash:comments>
		</item>
		<item>
		<title>AIR2.5 StageWebView demo &#8211; OAuth Support</title>
		<link>http://www.flashmobileblog.com/2010/07/17/air2-5-stagewebview-demo-oauth-support/</link>
		<comments>http://www.flashmobileblog.com/2010/07/17/air2-5-stagewebview-demo-oauth-support/#comments</comments>
		<pubDate>Sat, 17 Jul 2010 10:21:58 +0000</pubDate>
		<dc:creator>Mark Doherty</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Mobile Content]]></category>
		<category><![CDATA[AIR2.5]]></category>
		<category><![CDATA[StageWebView]]></category>

		<guid isPermaLink="false">http://www.flashmobileblog.com/?p=1139</guid>
		<description><![CDATA[Some of you will have seen our recent series of e-seminars and blog posts about EVA, the Evangelist tool for day-to-day activities.  As you would expect, it&#8217;s a multi-screen application that uses all of our technologies where possible. In terms of production, I am responsible for the mobile implementation and for that I created a [...]]]></description>
			<content:encoded><![CDATA[<p><center><object width="601" height="338"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=13410792&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=13410792&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="601" height="338"></embed></object></center></p>
<p>Some of you will have seen our recent <a href="http://www.adobe.com/devnet/flex/events/#appinaweek">series of e-seminars</a> and blog posts about EVA, the Evangelist tool for day-to-day activities.  As you would expect, it&#8217;s a multi-screen application that uses all of our technologies where possible.</p>
<p>In terms of production, I am responsible for the mobile implementation and for that I created a number of features such as the <a href="http://www.flashmobileblog.com/2010/06/15/eva-geoservices-component-source/">GeoServices</a> library, <a href="http://www.flashmobileblog.com/2010/06/18/air-on-android-tweetrapp-video-walk-through/">Twitter widget</a> and <a href="http://www.flashmobileblog.com/2010/06/14/google-maps-evangelist-radar/">radar widget</a> &#8211; all of which I covered in previous blog posts.</p>
<p>One of the team gripes with the Twitter component is that it&#8217;s too hard to login to Twitter using the PIN based mechanism.  With that in mind I jumped at the chance to use StageWebView that is now part of the AIR 2.5 beta on Android devices.</p>
<p>Enjoy.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.flashmobileblog.com/2010/07/17/air2-5-stagewebview-demo-oauth-support/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Launching m.flash.com &amp; BBC iPlayer for Android</title>
		<link>http://www.flashmobileblog.com/2010/06/24/bbc-launch-iplayer-android-mflashcom/</link>
		<comments>http://www.flashmobileblog.com/2010/06/24/bbc-launch-iplayer-android-mflashcom/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 19:16:41 +0000</pubDate>
		<dc:creator>Mark Doherty</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Mobile Content]]></category>
		<category><![CDATA[BBC]]></category>
		<category><![CDATA[Flash Player 10.1]]></category>
		<category><![CDATA[Froyo]]></category>
		<category><![CDATA[iPlayer]]></category>
		<category><![CDATA[m.flash.com]]></category>

		<guid isPermaLink="false">http://www.flashmobileblog.com/?p=1131</guid>
		<description><![CDATA[m.flash.com We have released Flash Player 10.1 to our OEM partners in what has been an incredible engineering effort working with our Open Screen Project partners.  One of the problems with the Flash Player generally, is that it is invisbile.  As a user its so easy to forget that a single web technology is powering [...]]]></description>
			<content:encoded><![CDATA[<p><center><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="601" height="451" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=12831411&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="601" height="451" src="http://vimeo.com/moogaloop.swf?clip_id=12831411&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></center></p>
<p><strong>m.flash.com</strong></p>
<p>We have released Flash Player 10.1 to our OEM partners in what has been an incredible engineering effort working with our Open Screen Project partners.  One of the problems with the Flash Player generally, is that it is invisbile.  As a user its so easy to forget that a single web technology is powering billions of videos, games, Rich Internet Applications and now desktop applications with AIR.</p>
<p>So we have been working with the worlds leading content providers, alongside our OEM partners to create experiences that shine.  With that, we&#8217;ve aggregated these together over at <a href="http://m.flash.com">m.flash.com</a> so that you can enjoy them on your mobile phones.  I think it will really help to sell those mobile and device projects that we&#8217;ve all been thinking about.</p>
<p><strong>iPlayer</strong></p>
<p>If I&#8217;m honest, this is the one that I have been most excited about, and this week the BBC <a href="http://www.bbc.co.uk/blogs/bbcinternet/2010/06/bbc_iplayer_on_mobile_a_new_ve.html">launched</a> iPlayer 3.0. with support for Android Froyo devices and Flash Player 10.1.  As I live in the UK, and I know many of you don&#8217;t, let&#8217;s take a look at just how huge the service has become.</p>
<p>Simply put, iPlayer is like Hulu for BBC content providing video on demand services for UK citizens.  Using the service we can watch BBC content that we&#8217;ve missed, across 10 TV channels and 11 radio stations.  On top of that, we can also watch TV live using iPlayer online to work around poor terrestrial signals &#8211; or in my case, a tiny television <img src='http://www.flashmobileblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>In perspective (BBC iStats for May 2010)</strong></p>
<ul>
<li>130m radio and television streams watched, across PCs, consoles and mobile phones</li>
<li>13m live streams were broadcast, including a huge amount of live radio proportional to video streams</li>
<li>6.5m video/radio requests from mobile phones</li>
<li>Peak usage tracks linear broadcast usage almost exactly &#8211; the shape of things to come <img src='http://www.flashmobileblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ul>
<p>Currently the iPlayer is available on the Nintendo Wii, PS3, Mac, Windows, Linux, Symbian, Windows Mobile and iOS devices.  As you would expect, when it comes to scaling the iPlayer platform across all of these devices, the task is huge.  That&#8217;s where Flash comes in, if you look at the list above (and more still) we have demonstrated Flash on all of them.</p>
<p>When you test your Flash-enabled site, why not let me know?  Let&#8217;s add it to m.flash.com <img src='http://www.flashmobileblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.flashmobileblog.com/2010/06/24/bbc-launch-iplayer-android-mflashcom/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>AIR on Android: TweetrApp Video walk-through</title>
		<link>http://www.flashmobileblog.com/2010/06/18/air-on-android-tweetrapp-video-walk-through/</link>
		<comments>http://www.flashmobileblog.com/2010/06/18/air-on-android-tweetrapp-video-walk-through/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 20:14:44 +0000</pubDate>
		<dc:creator>Mark Doherty</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Creative Suite 5]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Mobile Content]]></category>
		<category><![CDATA[AS3Crypto]]></category>
		<category><![CDATA[EVA]]></category>
		<category><![CDATA[Flash Builder 4]]></category>
		<category><![CDATA[Flash Player 10.1]]></category>
		<category><![CDATA[Tweetr]]></category>

		<guid isPermaLink="false">http://www.flashmobileblog.com/?p=1124</guid>
		<description><![CDATA[This the final video in my EVA series focusing on the widgets that I have created for the App in a week seminars.  As you&#8217;ll discover, it&#8217;s really very simple to create a Twitter client, and to integrate Twitter services into new or existing content to add a social element. EVA&#8217;s social widget was created [...]]]></description>
			<content:encoded><![CDATA[<p><center><object width="601" height="338"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=12680055&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=12680055&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="601" height="338"></embed></object></center></p>
<p>This the final video in my EVA series focusing on the widgets that I have created for the <a href="http://www.adobe.com/devnet/flex/events/#appinaweek">App in a week</a> seminars.  As you&#8217;ll discover, it&#8217;s really very simple to create a Twitter client, and to integrate Twitter services into new or existing content to add a social element.</p>
<p>EVA&#8217;s social widget was created using the <a href="http://wiki.swfjunkie.com/tweetr">Tweetr</a> component library from <a href="http://blog.swfjunkie.com/about/">Sandro Ducceschi</a> at Swfjunkie.com.  He has done an incredible job to build out a complete API for Actionscript 3 developers, taking care of the horrors of Open Authentication and connecting to the Twitter API.  It&#8217;s really as simple as creating a few objects and an application token, Sandro has also provided <a href="http://wiki.swfjunkie.com/tweetr:index">great tutorial videos</a>.</p>
<p>Tweetr requires the open source <a href="http://code.google.com/p/as3crypto/">AS3Crypto</a> component library, a package of classes that help with encryption for client/server applications.  In this case Tweetr relies on AS3Crypto for the Open Authentication communication, another great example of how great the community is.</p>
<p>Finally, I spent a very long time trying to find a suitable List component for this application.  There are many great sets of components out there, not least of which is Flex.  Of course <a href="http://labs.adobe.com/technologies/flex/mobile/">Flex on Mobile devices</a> is going to take some time, so I was glad to finally come across <a href="http://flepstudio.org">FlepStudio.org</a> and the <a href="http://flepstudio.org/forum/flepstudio-utilities/4973-tipper-vertical-scroller-iphone-effect.html">Tipper component</a>.</p>
<p>If you want to learn more about mobile optimization then drop by the mobile pages at the <a href="http://www.adobe.com/devnet/devices/?view=getstarted">Developer Connection</a>.  Also coming up in June are some great e-seminars where you&#8217;ll learn more about <a href="http://www.adobe.com/cfusion/event/index.cfm?event=detail&amp;id=1664665&amp;loc=en_us">going multi-screen.</a></p>
<h1><a href="http://www.flashmobileblog.com/wp-content/uploads/2010/06/TwitterApp.zip">Download TwitterApp</a></h1>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.flashmobileblog.com/2010/06/18/air-on-android-tweetrapp-video-walk-through/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Flash Builder Profiler &#8211; Fixing Memory Leak on ExternalInterface</title>
		<link>http://www.flashmobileblog.com/2010/06/17/flash-builder-profiler-memory-leak-on-externalinterface/</link>
		<comments>http://www.flashmobileblog.com/2010/06/17/flash-builder-profiler-memory-leak-on-externalinterface/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 18:50:56 +0000</pubDate>
		<dc:creator>Mark Doherty</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Devices]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Mobile Content]]></category>
		<category><![CDATA[Flash Builder 4]]></category>
		<category><![CDATA[Flash Player 10.1]]></category>
		<category><![CDATA[Flash Profiler]]></category>

		<guid isPermaLink="false">http://www.flashmobileblog.com/?p=1108</guid>
		<description><![CDATA[One of the most common problems with Flash applications are memory leaks, programming flaws that cause Flash Player to loose access to memory that it could recycle otherwise.  In the mobile space it&#8217;s crucial to understand memory management to get the most out of the Flash Player, and ultimately to ensure a smooth ride for [...]]]></description>
			<content:encoded><![CDATA[<p><center><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="601" height="338" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=12650731&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="601" height="338" src="http://vimeo.com/moogaloop.swf?clip_id=12650731&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></center></p>
<p>One of the most common problems with Flash applications are memory leaks, programming flaws that cause Flash Player to loose access to memory that it could recycle otherwise.  In the mobile space it&#8217;s crucial to understand memory management to get the most out of the Flash Player, and ultimately to ensure a smooth ride for your consumers.</p>
<p><strong>Flash Player memory management</strong></p>
<p>Flash Player makes use of automatic memory management, to help you to create applications with ease and with less code.  In fact the Flash Player uses a pretty simple mechanism that determines how many times you have referenced a particular object.  Once an object has nothing referencing it then it can be garbage collected &#8211; predictably it&#8217;s called &#8220;reference counting&#8221;.</p>
<p>The following is a great example of reference counting in action, notice that I have created a Geolocation object (geo) and added updateHandler as a listener function for update events.  This counts as a reference against updateHandler:</p>
<p><code>var geo:Geolocation = new Geolocation();<br />
geo.addEventListener(GeolocationEvent.UPDATE, updateHandler);</code></p>
<p><code>function updateHandler(event:GeolocationEvent):void<br />
{<br />
geo=null;<br />
</code><code>trace(event.longitude);</code><br />
<code> }</code></p>
<p>The updateHandler function marks the geo object null, tagging it for deletion by the garbage collector which is great.  The problem is that the geo object still has a reference to updateHandler, and therefore the geo object cannot be deleted until we remove the listener and free the reference up.</p>
<p><code>function updateHandler(event:GeolocationEvent):void<br />
{<br />
geo.removeEventListener(GeolocationEvent.UPDATE, updateHandler);<br />
geo=null;<br />
trace(event.longitude);<br />
}</code></p>
<p>Memory leaks are easy to create in Flash, and even harder to debug later.  It&#8217;s therefore essential to build your applications with memory in mind and use all tools at your disposal to keep checking for leaks, slow performance, and run away code.</p>
<p><strong>Flash Builder Profiler</strong></p>
<p><a href="http://www.adobe.com/products/flashbuilder/">Flash Builder 4</a> ships with a new feature called the Profiler and in the video below I&#8217;ll show you how to use it to solve a memory leak.  Now don&#8217;t be fooled, this memory leak took a few hours to solve in reality &#8211; these aren&#8217;t easy problems to solve.</p>
<p>In fact I found two memory leaks, the first is the ExternalInterface.addCallback holding onto a function reference.  The other is more complex, and I have marked it &#8220;Flash Player Bug&#8221; as I believe this is a problem with the runtime itself.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.flashmobileblog.com/2010/06/17/flash-builder-profiler-memory-leak-on-externalinterface/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>EVA GeoServices Video Walkthrough</title>
		<link>http://www.flashmobileblog.com/2010/06/15/eva-geoservices-component-source/</link>
		<comments>http://www.flashmobileblog.com/2010/06/15/eva-geoservices-component-source/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 18:33:59 +0000</pubDate>
		<dc:creator>Mark Doherty</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Mobile Content]]></category>
		<category><![CDATA[AIR2]]></category>
		<category><![CDATA[Flash Player 10.1]]></category>
		<category><![CDATA[GeoServices Component]]></category>

		<guid isPermaLink="false">http://www.flashmobileblog.com/?p=1082</guid>
		<description><![CDATA[Continuing the EVA blog series I&#8217;d like to introduce you to the GeoServices component for your Flash projects.  In the video I walk through the various parts of the component, including the GeoService class and how this is implemented in EVA itself. After reviewing the code I realised that it wasn&#8217;t produced with sharing in [...]]]></description>
			<content:encoded><![CDATA[<p><center><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="601" height="338" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=12592812&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="601" height="338" src="http://vimeo.com/moogaloop.swf?clip_id=12592812&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></center></p>
<p>Continuing the EVA blog series I&#8217;d like to introduce you to the <code>GeoServices</code> component for your Flash projects.  In the video I walk through the various parts of the component, including the <code>GeoService</code> class and how this is implemented in EVA itself.</p>
<p>After reviewing the code I realised that it wasn&#8217;t produced with sharing in mind, so I have created this component for you to use in your Flash Projects using <a href="http://www.adobe.com/products/flash/">Flash Professional CS5 </a>or <a href="http://www.adobe.com/products/flashbuilder/">Flash Builder 4</a>.</p>
<p>It would be great to get your feedback and thoughts for new features!</p>
<h1><a href="http://www.flashmobileblog.com/wp-content/uploads/2010/06/GeoServices2.zip">Download</a></h1>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.flashmobileblog.com/2010/06/15/eva-geoservices-component-source/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Maps: Evangelist Radar</title>
		<link>http://www.flashmobileblog.com/2010/06/14/google-maps-evangelist-radar/</link>
		<comments>http://www.flashmobileblog.com/2010/06/14/google-maps-evangelist-radar/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 22:42:40 +0000</pubDate>
		<dc:creator>Mark Doherty</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Mobile Content]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[AIR on Android]]></category>
		<category><![CDATA[EVA]]></category>
		<category><![CDATA[Flash Player 10.1]]></category>
		<category><![CDATA[Google Maps API]]></category>

		<guid isPermaLink="false">http://www.flashmobileblog.com/?p=1071</guid>
		<description><![CDATA[As promised, here is the first of a few blog posts to discuss the creation of Eva for mobile phones from our App in a Week series.  If you missed any of the great sessions from the team you can watch them on-demand here. One of the requirements for the EVA application was to produce [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flashmobileblog.com/wp-content/uploads/2010/06/Screen-shot-2010-06-14-at-17.47.27.png" rel="lightbox[1071]" title="Screen shot 2010-06-14 at 17.47.27"><img class="aligncenter size-full wp-image-1072" title="Screen shot 2010-06-14 at 17.47.27" src="http://www.flashmobileblog.com/wp-content/uploads/2010/06/Screen-shot-2010-06-14-at-17.47.27.png" alt="" width="522" height="404" /></a></p>
<p>As promised, here is the first of a few blog posts to discuss the creation of <a href="http://www.flashmobileblog.com/2010/06/10/eva-on-android-app-in-a-week/">Eva for mobile phones</a> from our <a href="http://www.adobe.com/devnet/flex/events/#appinaweek">App in a Week</a> series.  If you missed any of the great sessions from the team you can watch them on-demand <a href="http://www.adobe.com/devnet/flex/events/#appinaweek">here</a>.</p>
<p>One of the requirements for the EVA application was to produce a radar that would enable us to know where our team mates are.  This feature would be presented as a widget in the EVA application, and you can see it running <a href="http://www.flashmobileblog.com/demo/Eva.html">here</a>.  You can login as a guest as your username and then press &#8220;Radar&#8221;, and the result looks like this..</p>
<p><a href="http://www.flashmobileblog.com/wp-content/uploads/2010/06/Screen-shot-2010-06-14-at-20.42.43.png" rel="lightbox[1071]" title="Screen shot 2010-06-14 at 20.42.43"><img class="aligncenter size-full wp-image-1074" title="Screen shot 2010-06-14 at 20.42.43" src="http://www.flashmobileblog.com/wp-content/uploads/2010/06/Screen-shot-2010-06-14-at-20.42.43.png" alt="" width="478" height="420" /></a></p>
<p>As you can see from the &#8220;powered by Google&#8221; logo, I chose to use the Google Maps API for Flash.  In fact I went all out and created a widget that displays the map in 3D and plots our locations using custom markers around the world.  It goes without saying that the Google Map product is amazing and made possible in Flash by a special API created especially for Flash.</p>
<p>Now, when I was creating this I didn&#8217;t know that Google planned to open up their <a href="http://code.google.com/apis/latitude/">Latitude API</a>.  Latitude, in case you don&#8217;t know, is part of the Google Maps product on mobile phones that allows you to share your location with your friends and vice versa.  It has a number of great features that help you to create applications that can share sensitive location information &#8211; and keep the data under the control of the user.</p>
<p><strong>Google Maps API for Flash</strong></p>
<p>For a few years now Google have provided an API for Flash developers, so that we might integrate Google Maps into our applications in the browser with Flash/Flex or using the AIR runtime.  To get setup all you need to do is to <a href="http://code.google.com/apis/maps/flash">download the SDK</a> and place it within the components panel of Flash and drag the component onto the stage.</p>
<p>Once you have your FLA setup then you can begin coding, and my personal choice is to use Flash Builder 4 as it has much better support for complex applications.</p>
<p>I have an application class called <code>RadarWidget</code> that defines the Google API key, constructs the Map in 3D.  For obvious reasons, drawing the Map in 3D is quite intensive, and to be honest I did feel that I was stretching my idea of &#8220;recommended&#8221; approaches.  In the end however I decided that the construction and optimization of the Widget was key to this post.  So to be clear, I still do recommend a static image and this is also supported by the API.</p>
<p>When the application starts up I initialize the Map and get it ready to roll, and while that&#8217;s happening a request is sent to our PHP backend to retrieve the current locations of the team using the <code>UserService</code> class.  The PHP function pulls this information from the MySQL database and sends back an array containing all of the team.</p>
<p><strong><code>getAllUsers = new UsersService(handleGetUsersRequest);<br />
getAllUsers.call(UsersService.GET_ALL_USERS,null);</code></strong></p>
<p>Each of these array items becomes a User object and they handle the loading of their avatar images, before calling back into the <code>RadarWidget</code> class to add this avatar to the map.  The <code>CustomMarker</code> class extends the <code>com.google.maps.overlays.Marker</code> provided by the API.  Markers provide an extensibility mechanism for the Google Maps API, one where an <code>Overlay</code> can be anything from a user image, to your local Starbucks, weather and even a completely new terrain map.</p>
<p><strong><code>var marker:CustomMarker = new CustomMarker(user,<br />
new MarkerOptions({<br />
icon: user.image,<br />
hasShadow: true,<br />
distanceScaling: true,<br />
clickable:true,<br />
iconOffset: new Point(-user.image.width / 2, -user.image.height)<br />
}));</code></strong></p>
<p>In this same class, when a user taps on an Evangelist avatar you&#8217;ll notice that a pop-up appears to indicate their current location.  To achieve this I have used the Google <code>ClientGeocoder</code>, which is an API than provides an array of Placemarks close to the Latitude and Longitude provided.</p>
<p><code> <strong>popup = new Popup(currentMarker.user.user_realname, placemarks[0].address);<br />
popup.cacheAsBitmap=true;//The popup is a vector, so let's cache it while it's up</strong></code></p>
<p><strong> var opts:InfoWindowOptions = new InfoWindowOptions();<br />
opts.pointOffset= new Point(-45, -110);<br />
opts.hasShadow=true;<br />
opts.customContent = popup;<br />
currentMarker.openInfoWindow(opts);</strong></p>
<p>The precision is limited to their street and city, although ultimately this component could easily be extended to include live Tweets etc.</p>
<p><strong>Optimization Challenge!!<br />
</strong></p>
<p>After a series of optimizations I managed to get this API to work pretty well on the Nexus One running in AIR and Flash Player 10.1.  The framerate achieved could be considerably improved and that&#8217;s my challenge to you!</p>
<p>My optimized version for Eva is <a href="http://www.flashmobileblog.com/demo/Eva.html">here</a> and my challenge to you is to get used to the API such that you can achieve between 13-15FPS from this component running on the Nexus One.</p>
<p>I have deliberately switched on various problematic rendering features and made it a little tricky.  The goal here is for you to practice at bringing desktop code into the mobile environment &#8211; and making it ship quality.</p>
<p>All you need is Flash Professional CS5, Flash Builder 4 and a Google Maps API Key.</p>
<h1><a href="http://www.flashmobileblog.com/wp-content/uploads/2010/06/RadarWidget-large.zip">Download</a></h1>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.flashmobileblog.com/2010/06/14/google-maps-evangelist-radar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe AIR2 Launch &#8211; Helisso Source</title>
		<link>http://www.flashmobileblog.com/2010/06/11/adobe-air2-launch-helisso-source/</link>
		<comments>http://www.flashmobileblog.com/2010/06/11/adobe-air2-launch-helisso-source/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 17:22:44 +0000</pubDate>
		<dc:creator>Mark Doherty</dc:creator>
				<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Adobe AIR 2]]></category>
		<category><![CDATA[Flash Platform]]></category>

		<guid isPermaLink="false">http://www.flashmobileblog.com/?p=1061</guid>
		<description><![CDATA[To celebrate the launch of AIR2 for Mac, Windows and Linux in this blog post I am providing the full source and build chain for Helisso.  In case you missed the blog post&#8230; Helisso is a packaging tool that allows you to package your AS2 Flash applications that target Flash Lite.  Under the hood Helisso [...]]]></description>
			<content:encoded><![CDATA[<p><center><object width="601" height="338"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=12596101&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=12596101&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="601" height="338"></embed></object></center></p>
<p style="text-align: left;">
<p style="text-align: left;">To celebrate the launch of AIR2 for Mac, Windows and Linux in this blog post I am providing the full source and build chain for <a href="http://www.flashmobileblog.com/2010/03/03/helisso-a-packager-for-symbian-devices/">Helisso</a>.  In case you missed the blog post&#8230;</p>
<p style="text-align: left;">Helisso is a packaging tool that allows you to package your AS2 Flash applications that target Flash Lite.  Under the hood Helisso uses a combination of Python compiled binaries, OpenSSL and an AS3 based cab packager written by our engineering team.</p>
<p style="text-align: left;">In the source you are going to find a huge swathe of code, everything from the Symbian stub applications source to the template Windows application and Python sources.  Prepare to be blown away by the amount of work that went into this <img src='http://www.flashmobileblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: left;"><a href="http://www.flashmobileblog.com/wp-content/uploads/2010/06/Screen-shot-2010-06-11-at-18.30.56.png" rel="lightbox[1061]" title="Screen shot 2010-06-11 at 18.30.56"><img class="aligncenter size-full wp-image-1069" title="Screen shot 2010-06-11 at 18.30.56" src="http://www.flashmobileblog.com/wp-content/uploads/2010/06/Screen-shot-2010-06-11-at-18.30.56.png" alt="" width="277" height="298" /></a></p>
<p><strong>What is it?</strong></p>
<ul>
<li>A packaging utility that can produce SIS packages for S60 devices</li>
<li>This new version supports Windows Mobile 5/6 devices</li>
<li>It targets the Flash Lite 3.x runtime</li>
<li>It runs on Windows and Mac OS, all versions</li>
</ul>
<p><strong>AIR2</strong></p>
<p>Helisso would not have been possible without AIR2, for the simple reason that the time investment in creating two separate applications would have been too great.  Ask yourself, how many examples of SIS or CAB packaging have you seen on Mac OS?  (clue: none!)</p>
<p>Within the application source you&#8217;ll discover a class called PackagerService that makes use of the AIR2 <a href="http://www.adobe.com/devnet/air/flex/articles/air_screenrecording.html?devcon=f2a">NativeProcess API</a>.  This is a HUGE boon for development on platforms using native code, for the first time with AIR it&#8217;s possible to make use of applications and services running natively on the OS.</p>
<p>In the case of Helisso, we use NativeProcess to run the Python compile binary Wrap.app and Wrap.exe.  Although in the case of the Mac we use a simple script called doWrap.sh, which has the wonderful task of ensuring that we use the correct version of Python on the Mac.  So this will be a particular point of interest for the Python developers among you.</p>
<p><strong>Flash Catalyst</strong></p>
<p>At the time that I began work on the user interface we were testing <a href="http://www.adobe.com/products/flashcatalyst/">Flash Catalyst CS5</a>, so I thought it appropriate to use this for my project.  I began the work in <a href="http://www.adobe.com/products/fireworks/">Fireworks CS5</a> and then moved to <a href="http://www.adobe.com/products/photoshop/compare/">Photoshop CS5</a> for some optimization and to generate the PSD.</p>
<p>From there I was able to produce the simple UI and skin my very first Flex 4 application.  If you haven&#8217;t tried this then I cannot recommend it enough, the process is ridiculously simple and you can get started in no time.</p>
<p>You can learn more about Flash Catalyst <a href="http://www.adobe.com/devnet/flashcatalyst/?view=gettingstarted">over here</a>.</p>
<p><strong>Flash Builder 4</strong></p>
<p>Using Catalyst it&#8217;s possible to produce skins and define the user experience and interface for your Flex 4 applications.  Flash Catalyst will write A LOT of code for you, but to really get the most out of the Flash Platform you should know a bit of Actionscript 3.</p>
<p><a href="http://www.adobe.com/products/flashbuilder/">Flash Builder 4</a> is now a CS5 product, and its the second step to working with Flash Catalyst, allowing me to add all of the backend code.  I merely had to import the FXP file from Catalyst and I was all set after moving a few items around.  There were some minor issues with the actual display of fonts at the time, all of which are now fixed in this latest version.</p>
<p>From there I added quite a bit of code to handle the various buttons presses, error events and used our corporate &#8220;Adobe Clean&#8221; font.  So that way it actually looks consistent on Windows and Mac &#8211; as well as appearing like an Adobe application.</p>
<p><strong>Oppian</strong></p>
<p>I must also acknowledge the efforts of <a href="http://oppian.com/">Steve Hartley at Oppian</a> who worked tirelessly on this project.  Many of you have noticed the &#8220;much faster SIS package installations&#8221; and various other super-tweaks applied to make the end-user experience amazing.</p>
<h1><strong>End User Installation<br />
</strong></h1>
<ul>
<li><a href="https://acrobat.com/#d=cswWEOOLItxxlM7E3nFn7g">Mac Build</a></li>
<li><a href="https://acrobat.com/#d=yhokR20ihcxTErt2VUhCCw">Windows Build</a></li>
</ul>
<h1><strong>Helisso Source Installation</strong></h1>
<p><a href="http://www.flashmobileblog.com/helisso.zip">Unzip Helisso source</a><br />
<a href="http://fpdownload.adobe.com/pub/flex/sdk/builds/flex4/flex_sdk_4.1.0.16076.zip">Unzip the Flex4/AIR2 SDK </a></p>
<p>Place the Flex/AIR SDK into the helisso\SDK\ folder so that it looks like this..</p>
<p style="text-align: center;"><img class="size-full wp-image-1062  aligncenter" title="Screen shot 2010-06-11 at 17.54.43" src="http://www.flashmobileblog.com/wp-content/uploads/2010/06/Screen-shot-2010-06-11-at-17.54.43.png" alt="" width="408" height="119" /></p>
<p>Add this SDK to Flash Builder preferences, it should look like this&#8230;</p>
<p style="text-align: center;"><img class="size-full wp-image-1063  aligncenter" title="Screen shot 2010-06-11 at 17.56.05" src="http://www.flashmobileblog.com/wp-content/uploads/2010/06/Screen-shot-2010-06-11-at-17.56.05.png" alt="" width="634" height="402" /></p>
<p>Mac users are now all setup because Python and OpenSSL are baked into the OS.  Windows users need to install Python and OpenSSL separately, so follow closely <img src='http://www.flashmobileblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>Python</strong><br />
The installer is located in Helisso\tools\build\pc\installs\python-2.6.4.msi<br />
Run this installer and use the default settings</p>
<p><strong>OpenSSL</strong><br />
Unzip the file Helisso\tools\build\pc\installs\openssl-0.9.8h-1-bin.zip<br />
Rename the folder to OpenSSL and move it to a root folder, you might want to put it in the same location as Python</p>
<p><strong>Add Python and OpenSSL to the Path variable</strong><br />
Check out this <a href="http://www.youtube.com/watch?v=PdWw3Mo-zrY">video</a> that shows you how to add an Environment variable and find the Environment variables dialog <span style="color: #ff0000;">(watch carefully)</span><br />
You merely have to add <span style="color: #ff0000;">C:\Python24;C:\OpenSSL\bin</span> to the end of the string</p>
<p>I hope you enjoy looking at the code and playing with all of these Flash Platform tools.  Let me know if you have any questions regarding Helisso and about your AIR 2 projects and ideas.</p>
<p>Mark</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://www.flashmobileblog.com/2010/06/11/adobe-air2-launch-helisso-source/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
