<?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>Leonardo França &#187; Flex</title>
	<atom:link href="http://www.leonardofranca.com.br/index.php/category/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.leonardofranca.com.br</link>
	<description>Consultor e Desenvolvedor Flash Platform (Adobe AIR/Flex/Flash/Flash Media Server/PHP/Java/.NET)</description>
	<lastBuildDate>Wed, 01 Feb 2012 13:56:45 +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>Usando a API de atualização do Adobe AIR</title>
		<link>http://www.leonardofranca.com.br/index.php/2011/08/18/usando-a-api-de-atualizacao-do-adobe-air/</link>
		<comments>http://www.leonardofranca.com.br/index.php/2011/08/18/usando-a-api-de-atualizacao-do-adobe-air/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 21:10:50 +0000</pubDate>
		<dc:creator>Leonardo França</dc:creator>
				<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.leonardofranca.com.br/?p=349</guid>
		<description><![CDATA[Uma das funcionalidade que mais me foi útil no Adobe AIR, foi a adição de uma API mais bem elaborada para fazer atualização automatica de meus aplicativos. Isso pode ser muito importante porque nem todos os usuários tem tempo(ou vontade) &#8230; <a href="http://www.leonardofranca.com.br/index.php/2011/08/18/usando-a-api-de-atualizacao-do-adobe-air/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.leonardofranca.com.br/wp-content/uploads/2011/03/adobe_air_2_0-e1300250202414.jpg" alt="" title="adobe_air_2_0" width="120" height="120" class="alignleft size-full wp-image-1679" />Uma das funcionalidade que mais me foi útil no <strong>Adobe AIR</strong>, foi a adição de uma API mais bem elaborada para fazer atualização automatica de meus aplicativos. Isso pode ser muito importante porque nem todos os usuários tem tempo(ou vontade) de voltar no site do aplicativo para baixar a última versão.<span id="more-349"></span><br />
Isso já é rotina para sistemas operacionais e softwares que usamos no dia-a-dia como o <strong>Mozilla Firefox</strong> e o <strong>Google Chrome</strong>(que nem pede permissão para atualizar né senhor Google).</p>
<p>A partir do <strong>Adobe AIR</strong> 1.5, temos a classe <strong><a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/air/update/ApplicationUpdater.html">ApplicationUpdater</a></strong> e <strong><a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/air/update/ApplicationUpdaterUI.html">ApplicationUpdaterUI</a></strong> que tem como objetivo, definir o básico de funcionalidade de atualização para os aplicativos feitos com <strong>Adobe AIR</strong></p>
<p>Gerenciar as atualizações pode ser complicado e o <strong>AIR update framework</strong> possui as API's necessarias para que você faça isso de maneira prática e funcional. O desenvolvedor pode por exemplo:</p>
<ul>
<li>Verificar atualizações por intervalo de tempo ou por requisição do usuário.</li>
<li>Baixar os arquivos de atualização da web</li>
<li>Avisar o usuário na primeira execução do software recém-instalado</li>
<li>Confirmar se o usuário deseja verificar se há atualizações</li>
<li>Exibir informações sobre a nova versão de atualização para o usuário</li>
<li>Exibir o status do download ou informação de erro para o usuário</li>
</ul>
<p>As informações são obtidas a partir de arquivos XML onde você diz qual a última versão do software, as novidades da nova versão etc. Vamos a um exemplo prático, no caso usarei o Flash Builder que já deve ter os arquivos applicationupdater.swc e applicationupdater_ui.swc como referencia na biblioteca.<br />
Começamos pelo xml chamado updateConfig.xml, que "dira" a seu aplicativo onde estão os arquivos para atualização.</p>
<div class="igBar"><span id="lxml-9"><a href="#" onclick="javascript:showPlainTxt('xml-9'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-9">
<div class="xml" style="font-family:monospace;">
<ol>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span> </div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;configuration</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://ns.adobe.com/air/framework/update/configuration/1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span> </div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://localhost:81/leonardofranca/air/updates/testeUpdate/updateDescriptor.xml<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> </div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;delay<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/delay<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> </div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div>
</li>
</ol>
</div>
</div>
</div>
<p>
Ele deve ser salvo no mesmo diretorio da sua aplicação, junto com os outros arquivos xml e swf. Agora no Flex, instanciaremos a classe ApplicationUpdateUI e setaremos o arquivo xml de configuração para que o Flex possa saber onde está a atualização.</p>
<div class="igBar"><span id="lactionscript3-10"><a href="#" onclick="javascript:showPlainTxt('actionscript3-10'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ACTIONSCRIPT3:</span>
<div id="actionscript3-10">
<div class="actionscript3" style="font-family:monospace;">
<ol>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #6699cc; font-weight: bold;">var</span> appUpdater<span style="color: #000000; font-weight: bold;">:</span>ApplicationUpdaterUI = <span style="color: #0033ff; font-weight: bold;">new</span> ApplicationUpdaterUI<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">appUpdater.configurationFile = <span style="color: #0033ff; font-weight: bold;">new</span> File<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;app:/updateConfig.xml&quot;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">appUpdater.initialize<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #009900;">//via ActionScript</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #009900;">//appUpdater.updateURL = &quot; http://example.com/updates/update.xml&quot;; </span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #009900;">//appUpdater.delay = 1;</span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>O arquivo updateDescriptor.xml é onde fica setado a versão em si da atualização do seu aplicativo e onde você pode colocar a descrição das novidades da atualização.</p>
<div class="igBar"><span id="lxml-11"><a href="#" onclick="javascript:showPlainTxt('xml-11'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-11">
<div class="xml" style="font-family:monospace;">
<ol>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span> </div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;update</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://ns.adobe.com/air/framework/update/description/2.5&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span> </div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;versionNumber<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>0.0.2<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/versionNumber<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> </div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://localhost:81/leonardofranca/air/updates/testeUpdate/testeUpdate_0.0.2.air<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> </div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #339933;">This version has fixes for the following knowns issues:</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #339933;">*First issue</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #339933;">*Second issue &nbsp;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #339933;"> &nbsp;]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/update<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Basicamente é isso, vamos só implementar a chamada para que ao abrir o aplicativo, ele verifique se existe atualização.</p>
<div class="igBar"><span id="lmxml-12"><a href="#" onclick="javascript:showPlainTxt('mxml-12'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">MXML:</span>
<div id="mxml-12">
<div class="mxml" style="font-family:monospace;">
<ol>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><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></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;s:WindowedApplication</span> xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> </span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> </span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xmlns:mx=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span> creationComplete=<span style="color: #ff0000;">&quot;windowedapplication1_creationCompleteHandler(event)&quot;</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Script</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&lt;!<span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span></span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; import air.update.ApplicationUpdaterUI;</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; import air.update.events.UpdateEvent;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; import mx.events.FlexEvent;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; private var appUpdater:ApplicationUpdaterUI;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; protected function windowedapplication1_creationCompleteHandler<span style="color: #66cc66;">&#40;</span>event:FlexEvent<span style="color: #66cc66;">&#41;</span>:void</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#123;</span></span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; appUpdater = new ApplicationUpdaterUI<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; appUpdater.configurationFile = new File<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;app:/updateConfig.xml&quot;</span><span style="color: #66cc66;">&#41;</span>;</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; appUpdater.addEventListener<span style="color: #66cc66;">&#40;</span>ErrorEvent.ERROR, onError<span style="color: #66cc66;">&#41;</span>;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; appUpdater.addEventListener<span style="color: #66cc66;">&#40;</span>UpdateEvent.INITIALIZED, handlerInit<span style="color: #66cc66;">&#41;</span>;</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; appUpdater.initialize<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //via ActionScript</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //appUpdater.updateURL = <span style="color: #ff0000;">&quot; http://example.com/updates/update.xml&quot;</span>; </span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //appUpdater.delay = <span style="color: #cc66cc;color:#800000;">1</span>;</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; protected function onError<span style="color: #66cc66;">&#40;</span>event:ErrorEvent<span style="color: #66cc66;">&#41;</span>:void</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#123;</span></span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; trace<span style="color: #66cc66;">&#40;</span>event.text<span style="color: #66cc66;">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; protected function handlerInit<span style="color: #66cc66;">&#40;</span>event:UpdateEvent<span style="color: #66cc66;">&#41;</span>:void</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#123;</span></span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; appUpdater.checkNow<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Script</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Declarations</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp; <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></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Declarations</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:WindowedApplication</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
</ol>
</div>
</div>
</div>
<p>
Criei uma segunda versão do meu aplicativo de teste para demonstração, deveremos ter o seguinte resultado:<br />
<div id="attachment_1940" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.leonardofranca.com.br/wp-content/uploads/2011/08/update_application_air.jpg"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2011/08/update_application_air-300x215.jpg" alt="Check for update" title="update_application_air" width="300" height="215" class="size-medium wp-image-1940" /></a><p class="wp-caption-text">Clique para ampliar</p></div></p>
<p>Caso o usuário queira verificar se existe alguma atualização do aplicativos, basta clicar no botão "check for upadates. O arquivo atualizado é baixado e instalado.<br />
<div id="attachment_1945" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.leonardofranca.com.br/wp-content/uploads/2011/08/update_application_air2.jpg"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2011/08/update_application_air2-300x213.jpg" alt="" title="update_application_air2" width="300" height="213" class="size-medium wp-image-1945" /></a><p class="wp-caption-text">Clique para ampliar</p></div><br />
<div id="attachment_1946" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.leonardofranca.com.br/wp-content/uploads/2011/08/update_application_air3.jpg"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2011/08/update_application_air3-300x213.jpg" alt="" title="update_application_air3" width="300" height="213" class="size-medium wp-image-1946" /></a><p class="wp-caption-text">Clique para ampliar</p></div><br />
<div id="attachment_1947" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.leonardofranca.com.br/wp-content/uploads/2011/08/update_application_air4.jpg"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2011/08/update_application_air4-300x213.jpg" alt="" title="update_application_air4" width="300" height="213" class="size-medium wp-image-1947" /></a><p class="wp-caption-text">Clique para ampliar</p></div></p>
<p>Referências:<br />
<a href="http://help.adobe.com/en_US/air/build/WS9CD40F06-4DD7-4230-B56A-88AA27541A1E.html">http://help.adobe.com/en_US/air/build/WS9CD40F06-4DD7-4230-B56A-88AA27541A1E.html</a><br />
<a href="http://www.adobe.com/devnet/air/flex/quickstart/articles/update_framework.html">http://www.adobe.com/devnet/air/flex/quickstart/articles/update_framework.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonardofranca.com.br/index.php/2011/08/18/usando-a-api-de-atualizacao-do-adobe-air/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adobe LiveCycle Collaboration Service</title>
		<link>http://www.leonardofranca.com.br/index.php/2011/07/31/adobe-livecycle-collaboration-service/</link>
		<comments>http://www.leonardofranca.com.br/index.php/2011/07/31/adobe-livecycle-collaboration-service/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 19:27:41 +0000</pubDate>
		<dc:creator>Leonardo França</dc:creator>
				<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[LCCS]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe Flex]]></category>

		<guid isPermaLink="false">http://www.leonardofranca.com.br/?p=1132</guid>
		<description><![CDATA[A Adobe lançou um serviço anteriormente conhecido com o codinome de Cocomo(Common Collaboration Model), logo em seguida passou a se chamar Adobe Flash Collaboration Service e agora é oficialmente parte da família LiveCycle, sendo chamado de Adobe LiveCycle Collaboration Service. &#8230; <a href="http://www.leonardofranca.com.br/index.php/2011/07/31/adobe-livecycle-collaboration-service/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.leonardofranca.com.br/wp-content/uploads/2011/07/livecycle_collaboration_service_mnemonic_no_shadow.png"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2011/07/livecycle_collaboration_service_mnemonic_no_shadow.png" alt="" title="livecycle_collaboration_service_mnemonic_no_shadow" width="110" height="110" class="alignleft size-full wp-image-1814" /></a>A Adobe lançou um serviço anteriormente conhecido com o codinome de Cocomo(Common Collaboration Model), logo em seguida passou a se chamar Adobe Flash Collaboration Service e agora é oficialmente parte da família LiveCycle, sendo chamado de <strong>Adobe LiveCycle Collaboration Service</strong><span id="more-1132"></span>.<br />
O LCCS tem como objetivo funcionar como um SAAS(Software as a Service) para simplificar e facilitar o desenvolvimento de aplicativos RIA baseados em multimidia. Permite que os arquitetos e desenvolvedores possam criar experiências de usuário mais envolvente e mais dinâmicas oferecendo suporte a multi-user, colaboração em real time para novos ou já existentes aplicativos RIA. </p>
<p>Alguns destaques:</p>
<ul>
<li>Facilmente integrar chat, whiteboard, webcam e VoIP.</li>
<li>Desenvolver e implementar rapidamente aplicações com um SDK bem completo e com muito exemplos.</li>
<li>Bibliotecas para Adobe Flash e Flash Builder, para rodar no Flash Player 9 ou Flash Player 10(Alguns recursos como P2P só funcionam a partir do Flash Player 10).</li>
<li>Gerenciar usuários e os dados da sessão.</li>
<li>Construir suas aplicações em nuvem</li>
</ul>
<p><a href="http://www.leonardofranca.com.br/wp-content/uploads/2011/07/modal.jpg"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2011/07/modal-300x164.jpg" alt="" title="modal" width="300" height="164" class="aligncenter size-medium wp-image-1843" /></a></p>
<p>Para começar a usar o LCCS, basta acessar o portal <a href="https://afcs.acrobat.com/">LCCS Developer Portal</a> e entrar com seu login ou cadastrar-se. O portal serve para você administrar instancias das suas aplicações, você pode acompanhar o número de conexões, banda usada etc.</p>
<p><strong>Modelo de cobrança</strong><br />
LCCS tem 3 diferentes metodos para cobrança:</p>
<ul>
<li>Live Stream Bandwidth - $0.49 per GB</li>
<li>Push Messages - $0.10 per 1000 messages</li>
<li>User Minutes - $0.01 per Hour</li>
</ul>
<p>Leia o <a href="http://www.adobe.com/products/livecycle/collaborationservice/faq/">FAQ </a>para mais detalhes. <strong>Você tem uma cota free e pode usar até 15 dolares por mês</strong>.</p>
<p>Referencias:<br />
<a href="http://www.flashrealtime.com/livecycle-collaboration-service-pricing/">http://www.flashrealtime.com/livecycle-collaboration-service-pricing/</a><br />
<a href="https://portal.collaboration.adobelivecycle.com/">https://portal.collaboration.adobelivecycle.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonardofranca.com.br/index.php/2011/07/31/adobe-livecycle-collaboration-service/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>10 motivos para não ficar de fora do Flash Camp Brasil 2011</title>
		<link>http://www.leonardofranca.com.br/index.php/2011/03/12/10-motivos-para-nao-ficar-de-fora-do-flash-camp-brasil-2011/</link>
		<comments>http://www.leonardofranca.com.br/index.php/2011/03/12/10-motivos-para-nao-ficar-de-fora-do-flash-camp-brasil-2011/#comments</comments>
		<pubDate>Sun, 13 Mar 2011 02:34:41 +0000</pubDate>
		<dc:creator>Leonardo França</dc:creator>
				<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.leonardofranca.com.br/?p=1633</guid>
		<description><![CDATA[1. Fique por dentro das últimas novidades e anúncios sobre tecnologia e design no mundo, e de quebra ainda concorra a vários brindes como programas Adobe e MUITAS outras surpresas. 2. Lidere o ramo de tecnologia em sua região e &#8230; <a href="http://www.leonardofranca.com.br/index.php/2011/03/12/10-motivos-para-nao-ficar-de-fora-do-flash-camp-brasil-2011/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_1643" class="wp-caption alignleft" style="width: 130px"><a href="http://events.actioncreations.com/flashcampbrasil/10motivos/"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2011/03/10-motivos_2.jpg" alt="" title="10-motivos_2" width="120" height="78" class="size-full wp-image-1643" /></a><p class="wp-caption-text">Flash Camp Brasil 2011</p></div><strong>1. F</strong>ique por dentro das últimas novidades e anúncios sobre tecnologia e design no mundo, e de quebra ainda concorra a vários brindes como programas Adobe e MUITAS outras surpresas.<br />
<strong>2. L</strong>idere o ramo de tecnologia em sua região e seja referência na sua equipe de TI, participando dos workshops oficiais pré-conferência com alguns dos melhores instrutores do Brasil (Flex para Java Developers, Digital Publishing Suite, Flash Catalyst ou AS 3.0 on Fire).<br />
<strong>3. A</strong>presentações inéditas de empresas de tecnologia e líderes de agências digitais premiadas no cenário mundial como Zynga (criadora do FarmVille), RIM (BlackBerry), Adobe, Gringo e Seagulls Fly, por preços muito acessíveis.<br />
<strong>4. S</strong>ol, mar e tecnologia. Desfrute de Maceió, na região Nordeste, um dos destinos turísticos brasileiros mais procurados, com belíssimas praias e uma natureza deslumbrante.<br />
<strong>5. H</strong>oje em dia empresas internacionais estão muito interessadas em conhecer os desenvolvedores e designers brasileiros. Conheça algumas dessas empresas pessoalmente.<span id="more-1633"></span></p>
<p>Confira o restante dos motivos:<br />
<a href="http://events.actioncreations.com/flashcampbrasil/10motivos/">http://events.actioncreations.com/flashcampbrasil/10motivos/</a></p>
<p>Visite o site e obtenha mais detalhes:<br />
<a href="http://www.flashcampbrasil.com.br">www.flashcampbrasil.com.br</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonardofranca.com.br/index.php/2011/03/12/10-motivos-para-nao-ficar-de-fora-do-flash-camp-brasil-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Iniciando com Adobe AIR for iOS</title>
		<link>http://www.leonardofranca.com.br/index.php/2011/03/07/iniciando-com-adobe-air-for-ios/</link>
		<comments>http://www.leonardofranca.com.br/index.php/2011/03/07/iniciando-com-adobe-air-for-ios/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 01:18:26 +0000</pubDate>
		<dc:creator>Leonardo França</dc:creator>
				<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Celulares]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[macbook pro]]></category>
		<category><![CDATA[Smartphones]]></category>
		<category><![CDATA[Tablets]]></category>

		<guid isPermaLink="false">http://www.leonardofranca.com.br/?p=1537</guid>
		<description><![CDATA[O iPhone, lançado por volta de 2007, foi revolucionario em relação a experiencia do usuário e naturalmente criou-se um novo nicho de mercado para desenvolvimento de aplicações. A App Store(loja virtual onde os aplicativos da Apple são disponibilizados) já pagou &#8230; <a href="http://www.leonardofranca.com.br/index.php/2011/03/07/iniciando-com-adobe-air-for-ios/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.leonardofranca.com.br/wp-content/uploads/2011/03/air_for_ios.png" alt="" title="air_for_ios" width="186" height="189" class="alignleft size-full wp-image-1553" />O <a href="http://sledge.boo-box.com/list/page/aVBob25lXyMjX2Jhcl8jI190YWdnaW5nLXRvb2wtd3BfIyNfMTYwODAwNg==-60" class="bbli">iPhone<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a>, lançado por volta de 2007, foi revolucionario em relação a experiencia do usuário e naturalmente criou-se um novo nicho de mercado para desenvolvimento de aplicações. A App Store(loja virtual onde os aplicativos da <a href="http://sledge.boo-box.com/list/page/QXBwbGUlMkMraVBob25lJTJDK2lQYWRfIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI18xNjA4MDA2-80" class="bbli">Apple<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a> são disponibilizados) já pagou mais de 2 bilhões de dolares aos seus desenvolvedores e com a chegada do <a href="http://sledge.boo-box.com/list/page/aVBhZCUyQytpUGhvbmVfIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI18xNjA4MDA2-68" class="bbli">iPad<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a>, esse número tende a crescer muito. Então se você quer entrar nesse nicho de mercado, precisa saber do que precisa para criar seus aplicativos para rodar no sistema operacional movél da <a href="http://sledge.boo-box.com/list/page/QXBwbGUlMkMrbWFjYm9vaytwcm9fIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI18xNjA4MDA2-76" class="bbli">Apple<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a><span id="more-1537"></span>, o iOS(antes da chegada do <a href="http://sledge.boo-box.com/list/page/aVBhZCUyQytpcGhvbmVfIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI18xNjA4MDA2-68" class="bbli">iPad<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a>, era simplesmente <a href="http://sledge.boo-box.com/list/page/aVBob25lXyMjX2Jhcl8jI190YWdnaW5nLXRvb2wtd3BfIyNfMTYwODAwNg==-60" class="bbli">iPhone<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a> OS), no qual rodam o <a href="http://sledge.boo-box.com/list/page/aVBob25lXyMjX2Jhcl8jI190YWdnaW5nLXRvb2wtd3BfIyNfMTYwODAwNg==-60" class="bbli">iPhone<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a> e <a href="http://sledge.boo-box.com/list/page/aVBhZF8jI19iYXJfIyNfdGFnZ2luZy10b29sLXdwXyMjXzE2MDgwMDY=-56" class="bbli">iPad<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a>, portanto vamos iniciando com Adobe AIR for iOS.</p>
<p>Antes de começar, precisamos de alguns esclarecimentos em relação a como irá funcionar seu aplicativo feito com Adobe AIR rodando no iOS. Você só podera criar aplicativos com Adobe AIR, não é possivel criar aplicativos que rodem no navegador com o Flash Player.</p>
<blockquote><p>
Você só podera criar aplicativos com Adobe AIR, não é possivel criar aplicativos que rodem no navegador com o Flash Player.
</p></blockquote>
<div id="attachment_1564" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.leonardofranca.com.br/wp-content/uploads/2011/03/ipad-flash-player_400x272.jpg"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2011/03/ipad-flash-player_400x272-300x204.jpg" alt="Sem Flash Player no iOS =õ(" title="ipad-flash-player_400x272" width="300" height="204" class="size-medium wp-image-1564" /></a><p class="wp-caption-text">Sem Flash Player no iOS =õ(</p></div>
<p>Com o runtime do Adobe AIR, temos o mesmo problema, não é possivel instalar o runtime do Adobe AIR da maneira que estamos acostumados a fazer no desktop ou no Android.<br />
O que a Adobe fez foi criar uma ferramenta usando o Low Level Virtual Machine (<a href="http://www.llvm.org/">LLVM</a>)  que permite que você converta seu aplicativo feito em Adobe AIR para um aplicativo nativo do iOS. A Adobe mudou o modo de compilação completamente para que seu aplicativo pudesse rodar no iOS, do modo JIT (Just in Time) para o AOT (Ahead-of-Time) permitindo que seu aplicativo em Adobe AIR pudesse ser convertido para um aplicativo nativo do iOS.</p>
<blockquote><p>
A Adobe mudou o modo de compilação completamente para que seu aplicativo pudesse rodar no iOS, do modo JIT (Just in Time) para o AOT (Ahead-of-Time) permitindo que seu aplicativo em Adobe AIR pudesse ser convertido para um aplicativo nativo do iOS.
</p></blockquote>
<blockquote><p>
LLVM é um sistema modular, o sistema compilador flexível que é amplamente utilizado em uma variedade de projetos. A principal razão que a Adobe escolheu o LLVM é a sua flexibilidade e aplicabilidade para o desenvolvimento do iOS. LLVM já é utilizado no projeto Alchemy(Alchemy = C/C++ com ActionScript 3.0).
</p></blockquote>
<blockquote><p>
A criação de aplicativos para iOS usando a Flash Platform só é possivel a partir do iOS 3.0 ou superior.
</p></blockquote>
<p><strong>Ferramentas de desenvolvimento</strong><br />
<strong>Adobe Flash CS5 Professional –</strong> Com a atualização do Packager for iPhone, você pode a partir do Adobe Flash CS5(com o Packager for iPhone instalado), criar seus aplicativos para o iOS(iPhone/iPad), teremos um novo profile chamado "AIR for iOS", gerando o arquivo ja com o tamanho padrão de 320×480. Por enquanto não existem componentes pré-programados para iOS e não é recomendado usar os já existentes no Flash.</p>
<p><strong>Adobe Flash Builder 4 (burrito) –</strong> A Adobe disponilibizou juntamente com o Flash Builder 4 (burrito), o SDK do Flex versão 4.5, com componentes otimizados para dispositivos moveis, no entanto, esses componentes ainda estão sendo otimizados para rodarem no iOS e serão disponibilizados numa futura versão do Flash Builder, mas você pode criar tranquilamente um projeto ActionScript(usando somente ActionScript 3.0 sem o SDK do Flex) e usar o compilador por linha de comando(ADT).</p>
<p><strong>Qualquer editor de texto –</strong> Você pode usar qualquer editor de texto salvando na extensão .as ou seu editor ActionScript favorito.</p>
<p><strong>Distribuição</strong><br />
Você pode gerar o instalador do seu aplicativo pelo Flash Builder(próximas versões), Flash CS5(com o Packager for iPhone instalado) ou por linha de comando usando o ADT. É gerado um aplicativo com a extensão .ipa. A distribuição pode ser feita atraves da App Store, para se tornar um publisher da App Store, basta pagar a inscrição de 99 dolares. Acompanhe esse tutorial sobre <a href="http://www.adobe.com/devnet/flash/articles/app_store_guide.html">como publicar seu aplicativo na App Store</a>.</p>
<p><strong>Acompanhe alguns tutoriais:</strong><br />
<a href="http://www.adobe.com/devnet/logged_in/abansod_iphone.html">Developing for iOS using Flash Professional </a><br />
<a href="http://www.adobe.com/devnet/flash/articles/optimize_content_ios.html">Optimizing content for Apple iOS devices</a><br />
<a href="http://www.adobe.com/devnet/flash/articles/app_store_guide.html">Guide for Apple App Store submissions </a><br />
<a href="http://www.adobe.com/devnet/flash/articles/saving_state_air_apps.html">Saving state in AIR applications for iOS devices </a><br />
<a href="http://www.adobe.com/devnet/flash/articles/screen_orientation_apis.html">Using screen orientation APIs for smartphone application development </a></p>
<p>Nos proximos artigos, mostrarei como usar alguns recursos do AIR for iOS <img src='http://www.leonardofranca.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonardofranca.com.br/index.php/2011/03/07/iniciando-com-adobe-air-for-ios/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Reportagem sobre geolocalização na revista Wide</title>
		<link>http://www.leonardofranca.com.br/index.php/2011/01/10/reportagem-sobre-geolocalizacao-na-revista-wide/</link>
		<comments>http://www.leonardofranca.com.br/index.php/2011/01/10/reportagem-sobre-geolocalizacao-na-revista-wide/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 04:56:28 +0000</pubDate>
		<dc:creator>Leonardo França</dc:creator>
				<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Nokia]]></category>

		<guid isPermaLink="false">http://www.leonardofranca.com.br/?p=1347</guid>
		<description><![CDATA[Na edição de janeiro de 2011, a revista Wide tras uma ótima reportagem feita pela Flávia Freire explicando como funciona o uso de geolocalização para desenvolvimento de aplicativos. Participo da reportagem explicando como usar geolocalização na Flash Platform (Flex, Flash, &#8230; <a href="http://www.leonardofranca.com.br/index.php/2011/01/10/reportagem-sobre-geolocalizacao-na-revista-wide/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.leonardofranca.com.br/wp-content/uploads/2011/02/capa_82_menor.jpg" alt="" title="capa_82_menor" width="100" height="135" class="alignleft size-full wp-image-1348" />Na edição de janeiro de 2011, a <a href="http://www.revistawide.com.br/index.php/">revista Wide</a> tras uma ótima reportagem feita pela Flávia Freire explicando como funciona o uso de geolocalização para desenvolvimento de aplicativos. Participo da reportagem explicando como usar geolocalização na Flash Platform (Flex, Flash, AIR) e demonstro um exemplo usando a Nokia Platform Services. Há também reportagens sobre empreendedorismo, os ganhadores do concurso Peixe Grande, as principais diferenças entre o Adobe Flash e o HTML5 e muito mais. Então comprem a revista ae galera <img src='http://www.leonardofranca.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonardofranca.com.br/index.php/2011/01/10/reportagem-sobre-geolocalizacao-na-revista-wide/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

