<?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>Serge Jespers &#187; tour</title>
	<atom:link href="http://www.webkitchen.be/tag/tour/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webkitchen.be</link>
	<description>Life as an Adobe platform evangelist</description>
	<lastBuildDate>Tue, 31 Jan 2012 17:35:39 +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>Adobe at Mobile World Congress: Booth photo tour</title>
		<link>http://www.webkitchen.be/2010/02/15/adobe-at-mobile-world-congress-booth-photo-tour/</link>
		<comments>http://www.webkitchen.be/2010/02/15/adobe-at-mobile-world-congress-booth-photo-tour/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 11:47:39 +0000</pubDate>
		<dc:creator>Serge Jespers</dc:creator>
				<category><![CDATA[devices]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[barcelona]]></category>
		<category><![CDATA[booth]]></category>
		<category><![CDATA[mobile world congress]]></category>
		<category><![CDATA[mwc]]></category>
		<category><![CDATA[photo]]></category>
		<category><![CDATA[tour]]></category>

		<guid isPermaLink="false">http://www.webkitchen.be/?p=2094</guid>
		<description><![CDATA[Lots of excitement at the Adobe booth at Mobile World Congress in Barcelona. Our announcement about Flash Player 10.1 and AIR for mobile devices is definitely buzzing! Get the flash player here: http://www.adobe.com/flashplayer Photos shot with a Google Nexus One.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webkitchen.be%2F2010%2F02%2F15%2Fadobe-at-mobile-world-congress-booth-photo-tour%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webkitchen.be%2F2010%2F02%2F15%2Fadobe-at-mobile-world-congress-booth-photo-tour%2F&amp;source=sjespers&amp;style=normal&amp;service=bit.ly&amp;service_api=R_f11b21ad05448f9b4029b73b124e8d0e&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Lots of excitement at the Adobe booth at Mobile World Congress in Barcelona. Our <a href="http://www.webkitchen.be/2010/02/15/adobe-air-for-mobile-devices-at-mobile-world-congress/" target="_blank">announcement</a> about Flash Player 10.1 and AIR for mobile devices is definitely buzzing!</p>
<div id="PictoBrowser100215130248">Get the flash player here: http://www.adobe.com/flashplayer</div>
<p><script type="text/javascript" src="http://www.db798.com/pictobrowser/swfobject.js"></script><script type="text/javascript"> var so = new SWFObject("http://www.db798.com/pictobrowser.swf", "PictoBrowser", "640", "500", "8", "#EEEEEE"); so.addVariable("source", "sets"); so.addVariable("names", "MWC 2010"); so.addVariable("userName", "sergejespers"); so.addVariable("userId", "22179511@N04"); so.addVariable("ids", "72157623438794014"); so.addVariable("titles", "on"); so.addVariable("displayNotes", "on"); so.addVariable("thumbAutoHide", "off"); so.addVariable("imageSize", "medium"); so.addVariable("vAlign", "mid"); so.addVariable("vertOffset", "0"); so.addVariable("colorHexVar", "EEEEEE"); so.addVariable("initialScale", "off"); so.addVariable("bgAlpha", "90"); so.write("PictoBrowser100215130248");	</script></p>
<p>Photos shot with a Google Nexus One.</p>
<iframe id="basic_facebook_social_plugins_likebutton" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.webkitchen.be%2F2010%2F02%2F15%2Fadobe-at-mobile-world-congress-booth-photo-tour%2F&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:500px; height:75px"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.webkitchen.be/2010/02/15/adobe-at-mobile-world-congress-booth-photo-tour/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ColdFusion on tour &#8211; SOTR Europe</title>
		<link>http://www.webkitchen.be/2009/09/07/coldfusion-on-tour-sotr-europe/</link>
		<comments>http://www.webkitchen.be/2009/09/07/coldfusion-on-tour-sotr-europe/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 12:51:16 +0000</pubDate>
		<dc:creator>Serge Jespers</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[europe]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[sotr]]></category>
		<category><![CDATA[tour]]></category>

		<guid isPermaLink="false">http://www.webkitchen.be/?p=1657</guid>
		<description><![CDATA[After a very successful and fun tour though the UK, SOTR is now going to mainland Europe. Most of you  know that my love for ColdFusion is growing with every project I do using it. I think you can really only appreciate ColdFusion after getting a taste of it and SOTR is the perfect place [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webkitchen.be%2F2009%2F09%2F07%2Fcoldfusion-on-tour-sotr-europe%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webkitchen.be%2F2009%2F09%2F07%2Fcoldfusion-on-tour-sotr-europe%2F&amp;source=sjespers&amp;style=normal&amp;service=bit.ly&amp;service_api=R_f11b21ad05448f9b4029b73b124e8d0e&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="size-full wp-image-319" style="margin-right:10px" title="coldfusion.jpg-jpeg-image-253x250-pixels-1.jpg" src="http://www.webkitchen.be/wp-content/uploads/2008/09/coldfusion-jpeg-image-253x250-pixels-1.jpg" alt="coldfusion.jpg-jpeg-image-253x250-pixels-1.jpg" width="120" height="117" align="right" />After a very successful and fun tour though the UK, SOTR is now going to mainland Europe. Most of you  know that my love for ColdFusion is growing with every project I do using it. I think you can really only appreciate ColdFusion after getting a taste of it and SOTR is the perfect place to get that taste. With SOTR Europe being a free event, there really is no excuse to not be there. ;-)</p>
<p>Hope to see you in Munich, Zurich, Milan, Amsterdam, Brussels or London!</p>
<p>More info and free registration on <a href="http://www.scotch-on-the-rocks.co.uk" target="_blank">http://www.scotch-on-the-rocks.co.uk</a></p>
<iframe id="basic_facebook_social_plugins_likebutton" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.webkitchen.be%2F2009%2F09%2F07%2Fcoldfusion-on-tour-sotr-europe%2F&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:500px; height:75px"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.webkitchen.be/2009/09/07/coldfusion-on-tour-sotr-europe/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Updating AIR applications</title>
		<link>http://www.webkitchen.be/2008/06/16/updating-air-applications/</link>
		<comments>http://www.webkitchen.be/2008/06/16/updating-air-applications/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 09:54:57 +0000</pubDate>
		<dc:creator>Serge Jespers</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[onAIR Tour]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[onAIR]]></category>
		<category><![CDATA[tour]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[updater class]]></category>
		<category><![CDATA[updating]]></category>

		<guid isPermaLink="false">http://www.webkitchen.be/?p=144</guid>
		<description><![CDATA[My presentation at the On AIR tour through Europe was about signing, deploying and updating your AIR applications. If you didn&#8217;t make it to the tour or just want to read up on these topics, I wrote three separate posts about them on the train somewhere between Prague and Munich. This is probably the most [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webkitchen.be%2F2008%2F06%2F16%2Fupdating-air-applications%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webkitchen.be%2F2008%2F06%2F16%2Fupdating-air-applications%2F&amp;source=sjespers&amp;style=normal&amp;service=bit.ly&amp;service_api=R_f11b21ad05448f9b4029b73b124e8d0e&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<div class="note">My presentation at the On AIR tour through Europe was about <a href="http://www.webkitchen.be/2008/06/16/signing-air-applications" target="_blank">signing</a>, <a href="http://www.webkitchen.be/2008/06/16/deploying-air-applications/" target="_blank">deploying</a> and <a href="http://www.webkitchen.be/2008/06/16/updating-air-applications/" target="_blank">updating</a> your AIR applications. If you didn&#8217;t make it to the tour or just want to read up on these topics, I wrote three separate posts about them on the train somewhere between Prague and Munich.</div>
<p>This is probably the most important step to take when you are building your application and it should probably be the first thing you do. Let&#8217;s say someone found a bug in your application and you fixed it in a newer version. How are you going to tell users about that bug-fix if you don&#8217;t have an update mechanism in place? AIR has everything on board to make updating applications a breeze, both for you and the user of your application.<br />
<span id="more-144"></span><br />
Whenever my application starts, it&#8217;s going to load an XML file from my server. That XML file describes the version I have on my server and I even added some release notes. This XML file can be structured any way you want it to be and can hold all the information you want in there. Working with XML files in AS3.0 and Flex has become a breeze compared to how it used to be. So no more firstChild.childNode[3].grandChild.bastardChild.attribute.version.</p>
<p>My application version XML file looks like this:<br />
<code>&lt;?xml version="1.0" ?&gt;<br />
&lt;application&gt;<br />
&lt;info version="2" downloadurl="http://localhost/version2.air" /&gt;<br />
&lt;releasenotes&gt;<br />
&lt;![CDATA[Fixed some bugs in this version]]&gt;<br />
&lt;/releasenotes&gt;<br />
&lt;/application&gt; </code></p>
<p>Loading an XML file in Flex, is as simple as this one line of code:<br />
<code>&lt;mx:HTTPService<br />
id="appversion_xml"<br />
url="http://localhost/onAIR/appversion.xml"<br />
showBusyCursor="true"<br />
resultFormat="e4x"<br />
result="checkForUpdate()"/&gt;</code></p>
<p>This creates an XML object with the name &#8220;appversion_xml&#8221;. Whenever the server sends back a result, the result event is fired which calls my checkForUpdate() function. I even show a little busy cursor to show the user that there&#8217;s something happening. E4X is the preferred result format.  Now to load the XML file when my application starts, I created an init function.</p>
<pre lang="actionscript">private function init():void
{
	appversion_xml.send();
}</pre>
<p>This gets called when my application is ready. Just add this attribute to your WindowedApplication node in Flex.</p>
<pre lang="actionscript">creationComplete="init()"</pre>
<p>So the next thing you need to do when your XML file is loaded, is check if the version on your server is different from the one you have installed.</p>
<pre lang="actionscript">var descriptor:XML = NativeApplication.nativeApplication.applicationDescriptor;
var ns:Namespace = descriptor.namespaceDeclarations()[0];
currentVersion = descriptor.ns::version;</pre>
<p>This would get the version number of the version you have installed. This actually refers to your application descriptor XML file. The application descriptor file gets included in your application when you build it and is accessible through NativeApplication.nativeApplication.applicationDescriptor.</p>
<p>The version number that I got back from the server will be available in:</p>
<pre lang="actionscript">appversion_xml.lastResult..info.@version;</pre>
<p>Now I need to add a quick note here. The application version designator can be anything you want it be. It can be just a simple number but it can just as well be something like v3.79.3.222.beta.1.5.67.78. However, I find it a lot easier to use just plain and simple increasing numbers. These are a lot easier to compare to each other and thus make it a lot simpler for you to code.</p>
<pre lang="actionscript">if(Number(updateVersion) &gt; Number(currentVersion)) {
	//update available
}</pre>
<p>Now that&#8217;s a lot easier than having to create your own logic to compare your version designators.</p>
<p>So now that we know the version on my server is newer than the one I have installed so we have two options. You could just do the update without any user intervention, or you might want to let the user known that there is an update available and let him decide what he wants to do. In my demo application, I popup a little utility window that also displays the release notes from the XML file but you can let the user know about the options in however way you see fit.</p>
<p>We&#8217;re almost there. Now that we know the user wants to update the application we can go ahead and do so.<br />
So the first thing we need to do, is download the new update to the local machine. Since we are using AIR we have access to the desktop and so we can do this automatically. In the code below, I create a new instance of a URLStream and attach an eventListener to it. Whenever the URLStream is done, it&#8217;s going to execute the code to store it on the user&#8217;s machine. In this case we are going to store the update in the applicationStorageDirectory and rename it to update.air. Next we create a new instance of the Updater class and call it&#8217;s update method specifying the path to our update and its version number.</p>
<pre lang="actionscript">private function downloadUpdate(file:String):void
{
   downloadStream = new URLStream();
   downloadStream.addEventListener(Event.COMPLETE, function(evt:Event):void {
      myUpdateWin.statusText = "Downloading and installing the update";

      var appData:ByteArray = new ByteArray();
      downloadStream.readBytes(appData, 0, downloadStream.bytesAvailable);

      var updateFile:File = File.applicationStorageDirectory.resolvePath("upgrade.air");
      var fileStream:FileStream = new FileStream();

      fileStream.open(updateFile, FileMode.WRITE);
      fileStream.writeBytes(appData, 0, appData.length);
      fileStream.close();

      var appUpdate:Updater = new Updater();
      appUpdate.update(updateFile, updateVersion);
   });
   downloadStream.load(new URLRequest(file));
}</pre>
<p>The update method of the Updater class will close the application, launch the AIR installer to install the update and then relaunch the application. All without any intervention from the user! Completely transparent and easy for the end user.</p>
<p>That&#8217;s how easy it is to do it but to make it even easier, we&#8217;ve just <a href="http://labs.adobe.com/wiki/index.php/Adobe_AIR_Update_Framework" target="_blank">released an update framework</a> to simplify things even more. This framework works for both Flash/Flex based applications and Javascript/HTML based apps.</p>
<iframe id="basic_facebook_social_plugins_likebutton" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.webkitchen.be%2F2008%2F06%2F16%2Fupdating-air-applications%2F&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:500px; height:75px"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.webkitchen.be/2008/06/16/updating-air-applications/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Deploying AIR applications</title>
		<link>http://www.webkitchen.be/2008/06/16/deploying-air-applications/</link>
		<comments>http://www.webkitchen.be/2008/06/16/deploying-air-applications/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 09:53:02 +0000</pubDate>
		<dc:creator>Serge Jespers</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[onAIR Tour]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[custom badge]]></category>
		<category><![CDATA[deploy]]></category>
		<category><![CDATA[deploying]]></category>
		<category><![CDATA[install badge]]></category>
		<category><![CDATA[onAIR]]></category>
		<category><![CDATA[tour]]></category>

		<guid isPermaLink="false">http://www.webkitchen.be/?p=142</guid>
		<description><![CDATA[My presentation at the On AIR tour through Europe was about signing, deploying and updating your AIR applications. If you didn&#8217;t make it to the tour or just want to read up on these topics, I wrote three separate posts about them on the train somewhere between Prague and Munich. You created your AIR file&#8230; [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webkitchen.be%2F2008%2F06%2F16%2Fdeploying-air-applications%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webkitchen.be%2F2008%2F06%2F16%2Fdeploying-air-applications%2F&amp;source=sjespers&amp;style=normal&amp;service=bit.ly&amp;service_api=R_f11b21ad05448f9b4029b73b124e8d0e&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<div class="note">My presentation at the On AIR tour through Europe was about <a href="http://www.webkitchen.be/2008/06/16/signing-air-applications" target="_blank">signing</a>, <a href="http://www.webkitchen.be/2008/06/16/deploying-air-applications/" target="_blank">deploying</a> and <a href="http://www.webkitchen.be/2008/06/16/updating-air-applications/" target="_blank">updating</a> your AIR applications. If you didn&#8217;t make it to the tour or just want to read up on these topics, I wrote three separate posts about them on the train somewhere between Prague and Munich.</div>
<p>You created your AIR file&#8230; so now what? The easiest thing to do is to upload the file to your server and put a link to it on your website. But this is not very user-friendly for whoever is going to download and install your application. In some cases, when your server isn&#8217;t configured to handle AIR files, it may even fail altogether. That&#8217;s why we created the concept of install badges. Install badges are basically a small Flash application that handles download and install in such a way that it becomes very easy for the end user to install your application.<br />
<span id="more-142"></span><br />
There are 3 different flavors of the install badge: The standard version, the &#8220;currently in beta&#8221; version and the custom install badge.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-149" style="border: 1px solid black;" title="defaultbadge" src="http://www.webkitchen.be/wp-content/uploads/2008/06/defaultbadge.jpg" alt="" width="216" height="127" /></p>
<p>The standard install badge is part of the <a href="http://www.adobe.com/products/air/tools/sdk/" target="_blank">AIR SDK</a>. If you download and extract that zip file, there&#8217;s a folder called samples that includes a ready-to-go sample. Just change some parameters in the source of the html, upload the files and your AIR file to your server and you&#8217;re done. I have to be honest and tell you that I don&#8217;t really like the standard badge. It&#8217;s fine if you just want a simple install badge but the beta badge is so much better.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-147 aligncenter" title="betabadge" src="http://www.webkitchen.be/wp-content/uploads/2008/06/betabadge.jpg" alt="" width="219" height="183" /></p>
<p>The beta badge is available on <a href="http://labs.adobe.com/wiki/index.php/AIR_Badge" target="_blank">Adobe Labs</a>. It is actually created by Grant Skinner. The first thing you notice when you launch the sample, is that it has a much cooler/smooth look. But this badge also has a bunch of extra features that the default badge doesn&#8217;t have. For one, this badge can determine if the application is already installed and then prompt the user to launch the application right from within the browser. It also detects if the user has the correct version of the runtime installed; if not, it will offer to download it. This badge also allows you to add a little bit of support information when the user clicks on the question-mark icon. But my favorite feature is that this badge uses SWFObject which is my preferred way of adding SWF content to a web page. If you compare the source of the default and beta badge, you&#8217;ll see that SWFObject and the way it handles FlashVars is a lot more readable compared to the name-value pairs in the default badge.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-148" title="custombadge" src="http://www.webkitchen.be/wp-content/uploads/2008/06/custombadge.jpg" alt="" width="250" height="344" /></p>
<p>The third option would be to build your own install badge. Don&#8217;t worry&#8230; you don&#8217;t have to start from scratch. The sources for both the default and beta badge are available so you can use these as the basis for your own. It&#8217;s as simple as that ;-) The great thing is that this can be anything you want to it to be and can have all the features you want it to have &#8217;cause well&#8230; you are building it. If you want to ping your server whenever someone starts the install of your application for instance, that is absolutely possible.</p>
<iframe id="basic_facebook_social_plugins_likebutton" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.webkitchen.be%2F2008%2F06%2F16%2Fdeploying-air-applications%2F&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:500px; height:75px"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.webkitchen.be/2008/06/16/deploying-air-applications/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Signing AIR applications</title>
		<link>http://www.webkitchen.be/2008/06/16/signing-air-applications/</link>
		<comments>http://www.webkitchen.be/2008/06/16/signing-air-applications/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 09:30:17 +0000</pubDate>
		<dc:creator>Serge Jespers</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[onAIR Tour]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[certificate]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[deploying]]></category>
		<category><![CDATA[onAIR]]></category>
		<category><![CDATA[signing]]></category>
		<category><![CDATA[tour]]></category>
		<category><![CDATA[updating]]></category>

		<guid isPermaLink="false">http://www.webkitchen.be/?p=143</guid>
		<description><![CDATA[My presentation at the On AIR tour through Europe was about signing, deploying and updating your AIR applications. If you didn&#8217;t make it to the tour or just want to read up on these topics, I wrote three separate posts about them on the train somewhere between Prague and Munich. First of all, why is [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.webkitchen.be%2F2008%2F06%2F16%2Fsigning-air-applications%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.webkitchen.be%2F2008%2F06%2F16%2Fsigning-air-applications%2F&amp;source=sjespers&amp;style=normal&amp;service=bit.ly&amp;service_api=R_f11b21ad05448f9b4029b73b124e8d0e&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<div class="note">My presentation at the On AIR tour through Europe was about <a href="http://www.webkitchen.be/2008/06/16/signing-air-applications" target="_blank">signing</a>, <a href="http://www.webkitchen.be/2008/06/16/deploying-air-applications/" target="_blank">deploying</a> and <a href="http://www.webkitchen.be/2008/06/16/updating-air-applications/" target="_blank">updating</a> your AIR applications. If you didn&#8217;t make it to the tour or just want to read up on these topics, I wrote three separate posts about them on the train somewhere between Prague and Munich.</div>
<p>First of all, why is signing an application important? Easy. When your application is unsigned or signed with a self-signed certificate, the user will get two red icons on the install screen. The first one is related to your code signing certificate. It&#8217;s telling you that the &#8220;publisher is unknown&#8221; which is very normal since we have no idea who actually signed this application.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-121 aligncenter" title="unknown" src="http://www.webkitchen.be/wp-content/uploads/2008/05/unknown.jpg" alt="" width="354" height="42" /></p>
<p>When you do get a code signing certificate and sign the application with it, the icon will turn green or in some cases yellow. The yellow icon will appear when you are using the file I/O API.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-120 aligncenter" title="known" src="http://www.webkitchen.be/wp-content/uploads/2008/05/known.jpg" alt="" width="354" height="31" /></p>
<p><span id="more-143"></span><br />
So where do you get a code signing certificate? Well, maybe you already have one. If you already bought one to sign Java or Cocoa applications for instance, chances are that this certificate is 100% compatible and you can use that. To make sure, check that your certificate is a Class 3 code signing certificate and you should be ready to go. If you don&#8217;t have, there&#8217;s a number of companies like Thawte.com that actually sell these. But if you upload your application to the <a href="http://www.adobe.com/go/marketplace" target="_blank">Adobe AIR marketplace</a>, you may get a complimentary code signing certificate from us. More info <a href="http://www.adobe.com/products/air/assets/popup/thawte_popup.html" target="_blank">here</a>.</p>
<p>I&#8217;m mainly using Flex for AIR development but the workflow is very similar in Flash or Dreamweaver. In case of Flex, you are actually going to build a release version of your application. To do that, you click the &#8220;export release build&#8221;-button. That will popup a little wizard window. In the first window, you can specify where you want to save your .AIR file. In this case, I&#8217;m saving it on the desktop.<br />
<a href="http://www.adobe.com/go/marketplace" target="_blank"></a></p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-145 aligncenter" title="exportreleasebuild" src="http://www.webkitchen.be/wp-content/uploads/2008/06/exportreleasebuild.jpg" alt="" width="450" height="407" /></p>
<p>When you click &#8220;next&#8221;, Flex will ask you to specify which digital certificate you want to use. If you don&#8217;t have one but still want to build a .AIR file for testing, click on the &#8220;create&#8221; button. When you fill out all the details of that form, you can save that self signed certificate so you don&#8217;t have to fill out that form every time. I saved mine in my home folder. Once you have created it, you can easily reuse it by just entering your password.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-146 aligncenter" title="exportreleasebuild2" src="http://www.webkitchen.be/wp-content/uploads/2008/06/exportreleasebuild2.jpg" alt="" width="450" height="407" /></p>
<p>If you already have a code signing certificate, you can browse to the location you saved it to use it. Click &#8220;finish&#8221; and your AIR file is going to be baked. That&#8217;s it.</p>
<iframe id="basic_facebook_social_plugins_likebutton" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.webkitchen.be%2F2008%2F06%2F16%2Fsigning-air-applications%2F&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:500px; height:75px"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.webkitchen.be/2008/06/16/signing-air-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

