<?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>Igor Costa</title>
	<atom:link href="http://www.igorcosta.com/blog/index.php?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.igorcosta.com/blog</link>
	<description>Ajudar aos outros da ao sucesso o verdadeiro significado</description>
	<lastBuildDate>Thu, 09 Sep 2010 20:05:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Veja ao vivo as cameras da CET do Rio de Janeiro com Flex</title>
		<link>http://www.igorcosta.com/blog/?p=1111</link>
		<comments>http://www.igorcosta.com/blog/?p=1111#comments</comments>
		<pubDate>Thu, 09 Sep 2010 20:05:41 +0000</pubDate>
		<dc:creator>Igor Costa</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[flexdev]]></category>

		<guid isPermaLink="false">http://www.igorcosta.com/blog/?p=1111</guid>
		<description><![CDATA[
			
				
			
		
Hoje o dia foi tranquilo, e como sempre, quando tem tempo livre agente ajuda abeça. Na lista flex-dev teve um rapaz perguntando como criar um monitorador de câmeras da CET do Rio de Janeiro em tempo real.
Bem, não é bem um tempo real, elas atualizam de 30 e 30 segundos e disponibilizam um link de [...]]]></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.igorcosta.com%2Fblog%2F%3Fp%3D1111"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.igorcosta.com%2Fblog%2F%3Fp%3D1111&amp;source=igorcosta&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Hoje o dia foi tranquilo, e como sempre, quando tem tempo livre agente ajuda abeça. Na lista flex-dev teve um rapaz perguntando como criar um monitorador de câmeras da CET do Rio de Janeiro em tempo real.</p>
<p>Bem, não é bem um tempo real, elas atualizam de 30 e 30 segundos e disponibilizam um link de imagem que você pode consumir facilmente. Está ai uma maneira legal de você criar serviços que ajudem a população a evitar grandes engarrafamentos e assim reduzir o consumo de combustível.</p>
<p>Pois bem, fizemos uma rápida API para o CET do rio de Janeiro. onde você pode ver o resultado abaixo. Detalhe é que se você usa um Android, você pode usar o aplicativo abaixo já direto no navegador.</p>
<p><img src="http://www.igorcosta.com/blog/wp-content/uploads/2010/09/cet-rio-flex.JPG" alt="cet-rio-flex" title="cet-rio-flex" width="328" height="574" class="alignnone size-full wp-image-1120" /><br />
<strong>Código da Aplicação.</strong></p>
<pre name="code" class="java">
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.adobe.com/flex/spark"
			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955"
			   minHeight="600" width="320" height="520" creationComplete="criarCameras()">
	<s:layout>
		<s:VerticalLayout horizontalAlign="center"/>
	</s:layout>
<!--
	/**
	* Copyright (c) 2010 RIACycle LTDA ME. www.riacycle.com
	All rights reserved.

	The MIT License - http://www.opensource.org/licenses/mit-license.php

	Permission is hereby granted, free of charge, to any person obtaining a copy
	of this software and associated documentation files (the "Software"), to deal
	in the Software without restriction, including without limitation the rights
	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
	copies of the Software, and to permit persons to whom the Software is
	furnished to do so, subject to the following conditions:

	The above copyright notice and this permission notice shall be included in
	all copies or substantial portions of the Software.

	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
	THE SOFTWARE.
	*/
	-->
	<fx:Script>
		<![CDATA[
				private function criarCameras():void
				{
					CETCameras.addCamera();
					CETCameras.atualizar(); // opcional, ele faz atualização de 30 e 30 segundos.
				}

		]]&gt;
	</fx:Script>
	<s:Label text="CET do Rio" fontSize="20"/>
	<s:ComboBox dataProvider="{CETCameras.cameras}" labelField="nome" id="cameraSelector"/>
	<mx:Image  id="camview" width="100%" height="480" source="{cameraSelector.selectedItem.camera}"/>
</s:Application>
</pre>
<p><strong>Código fonte da classe CETCameras</strong></p>
<pre name="code" class="java">
/**
 * Copyright (c) 2010 RIACycle LTDA ME. www.riacycle.com
All rights reserved.

The MIT License - http://www.opensource.org/licenses/mit-license.php

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
package
{
	import flash.events.TimerEvent;
	import flash.utils.Timer;

	import mx.collections.ArrayCollection;

	public class CETCameras
	{
		public function CETCameras()
		{
		}
		[Bindable]public static var cameras:ArrayCollection = new ArrayCollection([]);

		private static var _intervalo:Timer;
		private static var quantidade:int;

		public static function addCamera(value:int=96):void
		{
			quantidade = value;
			for(var i:uint=1;i<=quantidade;i+=1)
			{
			var cam:CameraVO = new CameraVO();
			cam.nome = "Camera " + i;
			cam.camera = "http://200.141.78.14/imagens1/"+ String(i) + ".jpg?=" + Math.ceil(Math.random()*1000);
			cameras.addItem(cam);
			}
		}
		public static function atualizar(intervaloEmSecs:int=30):void
		{
				_intervalo = new Timer(intervaloEmSecs*1000);
				_intervalo.addEventListener(TimerEvent.TIMER,gerarNovamente);
				_intervalo.start();
		}
		internal static function gerarNovamente(e:TimerEvent):void
		{
			for(var i:uint=1;i<=cameras.length-1;i+=1)
			{
				var cam:CameraVO = cameras.getItemAt(i) as CameraVO;
				cam.nome = "Camera " + i;
				cam.camera = "http://200.141.78.14/imagens1/"+ String(i) + ".jpg?=" + Math.ceil(Math.random()*1000);
				cameras.setItemAt(cam,i);
			}
		}
	}
}
</pre>
<p><strong>Código fonte do CameraVO, um Model usado para registrar a camera:</strong></p>
<pre name="code" class="java">
/**
 * Copyright (c) 2010 RIACycle LTDA ME. www.riacycle.com
 All rights reserved.

 The MIT License - http://www.opensource.org/licenses/mit-license.php

 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:

 The above copyright notice and this permission notice shall be included in
 all copies or substantial portions of the Software.

 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 */
package
{
	[Bindable]
	public class CameraVO
	{
		public function CameraVO()
		{
		}
		public var nome:String;
		public var camera:String;
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.igorcosta.com/blog/?feed=rss2&amp;p=1111</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aplicações Flex/Flash para iPhone e iPad podem ser publicadas na Apple Store</title>
		<link>http://www.igorcosta.com/blog/?p=1109</link>
		<comments>http://www.igorcosta.com/blog/?p=1109#comments</comments>
		<pubDate>Thu, 09 Sep 2010 13:28:57 +0000</pubDate>
		<dc:creator>Igor Costa</dc:creator>
				<category><![CDATA[AIR Mobile]]></category>
		<category><![CDATA[Iphone]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[AIR 1.0]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Packager]]></category>

		<guid isPermaLink="false">http://www.igorcosta.com/blog/?p=1109</guid>
		<description><![CDATA[
			
				
			
		
Quem acompanha o Twitter, viu eu falar que quem vivesse por mais 3 meses teria grandes surpresas, uma delas é a notícia que saiu hoje no site da Apple. Não que eu já tivesse essa informação de uma certa forma privilegiada, mais rumores nos corredores indicavam que a Apple estava planejando isso. Porém como boato [...]]]></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.igorcosta.com%2Fblog%2F%3Fp%3D1109"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.igorcosta.com%2Fblog%2F%3Fp%3D1109&amp;source=igorcosta&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Quem acompanha o Twitter, viu eu falar que quem vivesse por mais 3 meses teria grandes surpresas, uma delas é a notícia que <a href="http://www.apple.com/pr/library/2010/09/09statement.html">saiu hoje no site</a> da Apple. Não que eu já tivesse essa informação de uma certa forma privilegiada, mais rumores nos corredores indicavam que a Apple estava planejando isso. Porém como boato não é nada concreto, fiquei na espera para ver se era realmente verdade.</p>
<blockquote><p>
September 9, 2010<br />
Statement by Apple on App Store Review Guidelines</p>
<p>The App Store℠ has revolutionized the way mobile applications are developed and distributed. With over 250,000 apps and 6.5 billion downloads, the App Store has become the world’s largest mobile application platform and App Store developers have earned over one billion dollars from the sales of their apps.</p>
<p>We are continually trying to make the App Store even better. We have listened to our developers and taken much of their feedback to heart. Based on their input, today we are making some important changes to our iOS Developer Program license in sections 3.3.1, 3.3.2 and 3.3.9 to relax some restrictions we put in place earlier this year.</p>
<p>In particular, we are relaxing all restrictions on the development tools used to create iOS apps, as long as the resulting apps do not download any code. This should give developers the flexibility they want, while preserving the security we need.</p>
<p>In addition, for the first time we are publishing the App Store Review Guidelines to help developers understand how we review submitted apps. We hope it will make us more transparent and help our developers create even more successful apps for the App Store.</p>
<p>The App Store is perhaps the most important milestone in the history of mobile software. Working together with our developers, we will continue to surprise and delight our users with innovative mobile apps.<br />
<a href="http://www.apple.com/pr/library/2010/09/09statement.html"><br />
http://www.apple.com/pr/library/2010/09/09statement.html</a>
</p></blockquote>
<p>AEEEEEEEEEEEEEEEEEEEEEEEEEEEE!!!!! Parabéns Apple pela sua postura e transparência em não só assumir erros como também pedir desculpas e relaxar mais um pouco no protecionismo de seus produtos para desenvolvedores. Granto que o Steve Jobs agora ganhou meu respeito, mais do que já tinha sobre suas idéias.</p>
<p>As sessões 3.3.1 e 3.3.1, 3.3.2 e 3.3.9, podem aceitar LLVM, coisa que <a href="http://labs.adobe.com/technologies/packagerforiphone/">o Packager para iphone e ipad</a> da Adobe faz divinamente e o que acabou gerando um grande atrito entre ambas as empresas e uma rede de desenvolvedores dos produtos da Adobe.</p>
<p>Porém vale ressaltar que sua aplicação não deve baixar nenhum código, que ela respeite essa clausula você pode usar LLVM de Actionscript 3.0 para Objective-C é de boa.</p>
<p>Tenho certeza que a competitividade e o espírito de livre escolha imperou nessa decisão da Apple, que foi de muito bom grado. Agora se você correr rápido pode baixar gratuitamente o  <a href="http://labs.adobe.com/technologies/packagerforiphone/">Packager para iPhone e iPad</a> antes que a Adobe cobre por isso.</p>
<p>Maravilha ganhar essa notícia em plena semana.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.igorcosta.com/blog/?feed=rss2&amp;p=1109</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Flex 3 para Flex 4 : Estilos</title>
		<link>http://www.igorcosta.com/blog/?p=1101</link>
		<comments>http://www.igorcosta.com/blog/?p=1101#comments</comments>
		<pubDate>Thu, 09 Sep 2010 01:36:41 +0000</pubDate>
		<dc:creator>Igor Costa</dc:creator>
				<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Flash Catalyst]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex 3 SDK]]></category>
		<category><![CDATA[Flex 3 para Flex 4]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Flex Builder 3]]></category>
		<category><![CDATA[Flex Builder 4]]></category>
		<category><![CDATA[Flex 3]]></category>
		<category><![CDATA[Flex 4 SDK]]></category>

		<guid isPermaLink="false">http://www.igorcosta.com/blog/?p=1101</guid>
		<description><![CDATA[
			
				
			
		
Criar estilos no Flex 4 é quase igual a criar no Flex 3, atento apenas em pequenas mudanças devido essa fase de transição e suporte ao Halo. veja as mudanças.
Flex 3 para aplicar estilo na sua aplicação você fez:

1
2
3
4
5
6
7
&#60; ?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&#62;
&#60;mx : Application xmlns:mx=&#34;http://www.adobe.com/2006/mxml&#34; layout=&#34;absolute&#34;&#62;
&#160;
	&#60;mx : Style source=&#34;Estilo.css&#34;/&#62;
&#160;
&#160;
&#60;/mx&#62;

No Flex 4 você faz:

1
2
3
4
5
6
7
8
9
&#60; ?xml version=&#34;1.0&#34; [...]]]></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.igorcosta.com%2Fblog%2F%3Fp%3D1101"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.igorcosta.com%2Fblog%2F%3Fp%3D1101&amp;source=igorcosta&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Criar estilos no Flex 4 é quase igual a criar no Flex 3, atento apenas em pequenas mudanças devido essa fase de transição e suporte ao Halo. veja as mudanças.</p>
<p>Flex 3 para aplicar estilo na sua aplicação você fez:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="as3" style="font-family:monospace;">&lt; ?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx : Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot;&gt;
&nbsp;
	&lt;mx : Style source=&quot;Estilo.css&quot;/&gt;
&nbsp;
&nbsp;
&lt;/mx&gt;</pre></td></tr></table></div>

<p>No Flex 4 você faz:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="as3" style="font-family:monospace;">&lt; ?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;s :Application xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot; 
			   xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot; 
			   xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot; minWidth=&quot;955&quot; minHeight=&quot;600&quot;&gt;
	&lt;fx :Declarations&gt;
		&lt;!-- Place non-visual elements (e.g., services, value objects) here --&gt;
	&lt;/fx&gt;
	&lt;fx :Style source=&quot;Estilo.css&quot;/&gt;
&lt;/s&gt;</pre></td></tr></table></div>

<p>Absolutamente não existe diferença entre o uso de um para o outro. Esse exemplo é apenas para uso de CSS externo ao código mxml. Uma vez que você não é tão inocente em escrever o CSS da sua aplicação dentro do próprio arquivo mxml do application.</p>
<p><strong>Mudanças no namespace</strong></p>
<p>Nem tudo são flores, você achou que isso ia passar direto, você pode usar e continuar usando seus componentes do Flex 3 restrito apenas alguns, contanto que respeitem as novas regras de ciclo de vida, você não terá problemas aparente.<br />
O que mudou é que se você continuar usando seus componentes do Flex 3 com o Flex 4 para funcionar os estilos você terá que adicionar um namespace ao arquivo de CSS e também um seletor na frente de cada tag padrão do componente. Por exemplo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* CSS file */</span>
<span style="color: #808080; font-style: italic;">/* CSS file */</span>
<span style="color: #a1a100;">@namespace s &quot;library://ns.adobe.com/flex/spark&quot;;</span>
<span style="color: #a1a100;">@namespace mx &quot;library://ns.adobe.com/flex/mx&quot;;</span>
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;">/*
 Para estilizar seu componente Button do Flex 3 você tem 
que fazer isso
*/</span>
mx|Button<span style="color: #00AA00;">&#123;</span>
	  <span style="color: #808080; font-style: italic;">/* suas preferencias do CSS aqui */</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/*
	Para usar o Button do pacote Spark você usa assim
*/</span>
s|Button <span style="color: #00AA00;">&#123;</span>
	<span style="color: #808080; font-style: italic;">/* suas preferencias do CSS aqui */</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Veja que não só os css do Flex 3 ainda funcionam como também você poderá mesclar ambos os css, tanto do 4 quanto do 3.</p>
<p><strong>Suporte da ferramenta Flash Builder para CSS:</strong></p>
<p>Você estáva acostumado a ter o Flex Builder com sua facilidade absurda em criar CSS e customizar suas telas, deixando-as cute cute para seus usuários finais. Porém o time de desenvolvimento do Flash Builder (novo nome para o antigo Flex Builder), decidiu tirar o suporte ao CSS da ferramenta e obriga-lo a usar o Flash Catalyst e forcar você a ser um pouco mais ninja. Vai ver algum desenvolvedor com alma boa tenha portado o Flex 3 Style Explorer para o Flex 4 e assim facilitar novamente sua vida.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.igorcosta.com/blog/?feed=rss2&amp;p=1101</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex 3 para Flex 4: Namespaces</title>
		<link>http://www.igorcosta.com/blog/?p=1099</link>
		<comments>http://www.igorcosta.com/blog/?p=1099#comments</comments>
		<pubDate>Mon, 06 Sep 2010 17:22:52 +0000</pubDate>
		<dc:creator>Igor Costa</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex 3]]></category>
		<category><![CDATA[Flex 3 SDK]]></category>
		<category><![CDATA[Flex 3 para Flex 4]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Flex 3 para 4]]></category>

		<guid isPermaLink="false">http://www.igorcosta.com/blog/?p=1099</guid>
		<description><![CDATA[
			
				
			
		
Houve uma grande polêmica quando estavam fazendo o novo Flex 4 à mais ou menos 1 ano atrás. Quando estavam falando dos novos namespaces e prefixos. Melhorou um pouco do que eles haviam criado devido a comunidade de desenvolvedores reclamarem por causa do problema, eles voltaram atrás e fizeram direito.
No Flex 3 você tem apenas [...]]]></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.igorcosta.com%2Fblog%2F%3Fp%3D1099"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.igorcosta.com%2Fblog%2F%3Fp%3D1099&amp;source=igorcosta&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Houve uma grande polêmica quando estavam fazendo o novo Flex 4 à mais ou menos 1 ano atrás. Quando estavam falando dos novos namespaces e prefixos. Melhorou um pouco do que eles haviam criado devido a comunidade de desenvolvedores reclamarem por causa do problema, eles voltaram atrás e fizeram direito.</p>
<p>No Flex 3 você tem apenas 1 namespace original para criar aplicações Flex, que é:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;">xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot;</pre></td></tr></table></div>

<p>Ele define tudo que seu aplicativo precisa para acessar componentes e classes originais do Framework em seu todo.<br />
Só que agora é que vem um grande diferencial do que você estava acostumado a fazer no Flex 3 para o Flex 4. No Flex 4 tudo mudou, temos agora um namespace para cada parte do SDK, isso se da ao fato que temos agora uma nova forma de criar interfaces no Flex 4, através de Skins e o Flash Catalyst é um grande influenciador nesse sentido, além dos seus próprios namespaces o SDK do Flex 4 em sí, vem com vários namespaces pré-definidos, então para não prolongar mais e mais, focarei apenas no SDK.</p>
<p>No Flex 4 temos os seguintes namespaces:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;">xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot; 
xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot; 
xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot;</pre></td></tr></table></div>

<p>Tais namespaces representam cada parte do SDK por completo, os novos componentes do Flex 4 ficam no namespace com prefixo S, e os elementos core do SDK ficam no prefixo FX. Já os conhecidos componentes do Flex 3 continuaram no pacote de prefixo mx.</p>
<p>Cada namespace tem suas próprias propriedades, estilos, efeitos e vez ou outra você pode ficar empacado em achar que funciona no Flex 4, muito cuidado nesse aspecto por que mudou muita coisa mesmo para componentes do Flex 3 funcionarem perfeitamente no Flex 4.</p>
<p>Então uma aplicação típica no Flex 3 ficaria assim:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;">&lt; ?xml <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>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx</span> :Application <span style="color: #000066;">xmlns:mx</span>=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> <span style="color: #000066;">layout</span>=<span style="color: #ff0000;">&quot;absolute&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;mx</span> :Script<span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;">&lt; !<span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span></span>
&nbsp;
&nbsp;
<span style="color: #009900;">		<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>No Flex 4 uma típica aplicação ficaria assim:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;">&lt; ?xml <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>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;s</span> :Application <span style="color: #000066;">xmlns:fx</span>=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> </span>
<span style="color: #009900;">			   <span style="color: #000066;">xmlns:s</span>=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> </span>
<span style="color: #009900;">			   <span style="color: #000066;">xmlns:mx</span>=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span> <span style="color: #000066;">minWidth</span>=<span style="color: #ff0000;">&quot;955&quot;</span> <span style="color: #000066;">minHeight</span>=<span style="color: #ff0000;">&quot;600&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;fx</span> :Declarations<span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/fx<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;fx</span> :Script<span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;">&lt; !<span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span></span>
&nbsp;
<span style="color: #009900;">		<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/fx<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/s<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.igorcosta.com/blog/?feed=rss2&amp;p=1099</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex 3 para Flex 4 : Escopo do aplicativo</title>
		<link>http://www.igorcosta.com/blog/?p=1094</link>
		<comments>http://www.igorcosta.com/blog/?p=1094#comments</comments>
		<pubDate>Mon, 06 Sep 2010 17:07:57 +0000</pubDate>
		<dc:creator>Igor Costa</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex 3]]></category>
		<category><![CDATA[Flex 3 para Flex 4]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Flex 3 para 4]]></category>
		<category><![CDATA[Flex Migração]]></category>

		<guid isPermaLink="false">http://www.igorcosta.com/blog/?p=1094</guid>
		<description><![CDATA[
			
				
			
		
Uma das caracteristicas de frameworks RAD (Rapid Application Development) é a fácil abstração da API. Você deve ter em seu aplicativo Flex 2/3 de pequeno e médio porte muito uso do parentApplication, parentDocument, outerDocument. Esse mecanismo ajuda você acessar propriedades já existentes no Application principal e compartilhar métodos entre componentes, fazendo assim uma representação meia [...]]]></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.igorcosta.com%2Fblog%2F%3Fp%3D1094"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.igorcosta.com%2Fblog%2F%3Fp%3D1094&amp;source=igorcosta&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Uma das caracteristicas de frameworks RAD (Rapid Application Development) é a fácil abstração da API. Você deve ter em seu aplicativo Flex 2/3 de pequeno e médio porte muito uso do parentApplication, parentDocument, outerDocument. Esse mecanismo ajuda você acessar propriedades já existentes no Application principal e compartilhar métodos entre componentes, fazendo assim uma representação meia boca de interface.</p>
<p>Então você estava acostumado a fazer assim no Flex 3:</p>
<p>parentApplication:</p>
<p><strong>Application principal</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;">&lt; ?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;">&lt;mx :Application xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> layout=<span style="color: #ff0000;">&quot;absolute&quot;</span> xmlns:ns1=<span style="color: #ff0000;">&quot;*&quot;</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
&nbsp;
	<span style="color: #000000;">&lt;/mx<span style="color: #7400FF;">&gt;</span>&lt;mx :Script<span style="color: #7400FF;">&gt;</span></span>
		<span style="color: #000000;">&lt; !<span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span></span>
&nbsp;
&nbsp;
<span style="color: #000000;">			public var VALOR_DECLARADO:String = <span style="color: #ff0000;">&quot;Oba Flex 3/4&quot;</span>;</span>
<span style="color: #000000;">		<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;">&lt;/mx<span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;">&lt;ns1 :Teste x=<span style="color: #ff0000;">&quot;120&quot;</span> y=<span style="color: #ff0000;">&quot;38&quot;</span><span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;">&lt;/ns1<span style="color: #7400FF;">&gt;</span></span></pre></td></tr></table></div>

<p>E nos componentes você acessar a variável VALOR_DECLADO dessa forma:</p>
<p><strong>Componente acessando a variável:</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;">&lt; ?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;">&lt;mx :Panel creationComplete=<span style="color: #ff0000;">&quot;teste()&quot;</span> xmlns=<span style="color: #ff0000;">&quot;*&quot;</span> xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> width=<span style="color: #ff0000;">&quot;196&quot;</span> height=<span style="color: #ff0000;">&quot;244&quot;</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
&nbsp;
	<span style="color: #000000;">&lt;/mx<span style="color: #7400FF;">&gt;</span>&lt;mx :Script<span style="color: #7400FF;">&gt;</span></span>
		<span style="color: #000000;">&lt; !<span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span></span>
<span style="color: #000000;">			import mx.core.Application;</span>
&nbsp;
<span style="color: #000000;">			private function teste<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:void</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#123;</span></span>
<span style="color: #000000;">				this.title = parentApplication.VALOR_DECLARADO;</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#125;</span></span>
&nbsp;
<span style="color: #000000;">		<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;">&lt;/mx<span style="color: #7400FF;">&gt;</span></span></pre></td></tr></table></div>

<p>Você pode acessar tudo que quiser, desde que os métodos no Application principal esteja público.</p>
<p>No Flex 4, como temos 2 tipos de Application, seja ele mx.core.Application ou spark.core.Application, eles mudaram esse acesso, passando de uma forma simples de parentApplication para um singleton (topLevelApplication), onde você pode acessar da mesma forma que você usava, só que agora usando a classe reservada para isso FlexGlobals.</p>
<p>Então o mesmo exemplo no Flex 4 você teria isso aqui:</p>
<p><strong>Application</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;">&lt; ?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;">&lt;s :Application xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> </span>
<span style="color: #000000;">			   xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> </span>
<span style="color: #000000;">			   xmlns:mx=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span> minWidth=<span style="color: #ff0000;">&quot;955&quot;</span> minHeight=<span style="color: #ff0000;">&quot;600&quot;</span><span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;">&lt;fx :Declarations<span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;">&lt;/fx<span style="color: #7400FF;">&gt;</span></span>
&nbsp;
	<span style="color: #000000;">&lt;fx :Script<span style="color: #7400FF;">&gt;</span></span>
		<span style="color: #000000;">&lt; !<span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span></span>
<span style="color: #000000;">				public var VALOR_FLEX_4:String = <span style="color: #ff0000;">&quot;Ola Flex 4&quot;</span>;</span>
<span style="color: #000000;">		<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;">&lt;/fx<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;">&lt;/s<span style="color: #7400FF;">&gt;</span></span></pre></td></tr></table></div>

<p><strong>Componente acessando a variável VALOR_FLEX_4:</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
</pre></td><td class="code"><pre class="mxml" style="font-family:monospace;">&nbsp;
<span style="color: #000000;">&lt; ?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;">&lt;s :Panel xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> </span>
<span style="color: #000000;">		 xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> </span>
<span style="color: #000000;">		 xmlns:mx=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span> width=<span style="color: #ff0000;">&quot;400&quot;</span> height=<span style="color: #ff0000;">&quot;300&quot;</span> creationComplete=<span style="color: #ff0000;">&quot;panel1_creationCompleteHandler(event)&quot;</span><span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;">&lt;fx :Declarations<span style="color: #7400FF;">&gt;</span></span>
		<span style="color: #000000;"><span style="color: #808080; font-style: italic;">&lt;!-- Place non-visual elements (e.g., services, value objects) here --&gt;</span></span>
	<span style="color: #000000;">&lt;/fx<span style="color: #7400FF;">&gt;</span></span>
&nbsp;
	<span style="color: #000000;">&lt;fx :Script<span style="color: #7400FF;">&gt;</span></span>
		<span style="color: #000000;">&lt; !<span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span></span>
<span style="color: #000000;">			import mx.core.FlexGlobals;</span>
<span style="color: #000000;">			import mx.events.FlexEvent;</span>
&nbsp;
&nbsp;
&nbsp;
<span style="color: #000000;">			protected function panel1_creationCompleteHandler<span style="color: #66cc66;">&#40;</span>event:FlexEvent<span style="color: #66cc66;">&#41;</span>:void</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#123;</span></span>
<span style="color: #000000;">				this.title = FlexGlobals.topLevelApplication.VALOR_FLEX_4;</span>
<span style="color: #000000;">			<span style="color: #66cc66;">&#125;</span></span>
&nbsp;
<span style="color: #000000;">		<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #7400FF;">&gt;</span></span>
	<span style="color: #000000;">&lt;/fx<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;">&lt;/s<span style="color: #7400FF;">&gt;</span></span></pre></td></tr></table></div>

<p>O parentDocument continua a mesma coisa, então você não encontrará problemas relacionado a isso em seu processo de migração para o Flex 4. Saiba mais <a href="http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7e3a.html">dicas aqui</a> na documentação oficial.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.igorcosta.com/blog/?feed=rss2&amp;p=1094</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Até quando você terá projetos feitos em Flex 3 substituidos pelo Flex 4?</title>
		<link>http://www.igorcosta.com/blog/?p=1091</link>
		<comments>http://www.igorcosta.com/blog/?p=1091#comments</comments>
		<pubDate>Sun, 05 Sep 2010 02:13:54 +0000</pubDate>
		<dc:creator>Igor Costa</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Flex Builder 4]]></category>
		<category><![CDATA[Flex 4 SDK]]></category>
		<category><![CDATA[Flex SDK]]></category>

		<guid isPermaLink="false">http://www.igorcosta.com/blog/?p=1091</guid>
		<description><![CDATA[
			
				
			
		
O Twitter te deixa bem preguiçoso quando o assunto é escrever em grande volume.
Embora esse texto não tenha cunho voltado para o Twitter e sim na migração de projetos feitos com o Flex 3.x para o Flex 4. Olha, faz tempo que eu queria escrever isso.
Já teve muita gente me perguntando com dúvidas em nossos [...]]]></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.igorcosta.com%2Fblog%2F%3Fp%3D1091"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.igorcosta.com%2Fblog%2F%3Fp%3D1091&amp;source=igorcosta&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>O Twitter te deixa bem preguiçoso quando o assunto é escrever em grande volume.<br />
Embora esse texto não tenha cunho voltado para o Twitter e sim na migração de projetos feitos com o Flex 3.x para o Flex 4. Olha, faz tempo que eu queria escrever isso.</p>
<p>Já teve muita gente me perguntando com dúvidas em nossos cursos, via e-mail,etc. Se era melhor usar o Flex 4 já nos seus projetos ou continuar usando o Flex 3.x? Já teve a pergunta, eu devo aprender primeiro Flex 3 e depois pular para o Flex 4?<br />
De todas essas perguntas eu compreendo que é um receio ao novo e lhe garanto que também já tive meu pé atrás com o Flex 4. Depois que escrevi <a href="http://www.igorcosta.org/?p=325">isso</a>, para depois passar na prática a coisa foi bem feia.<br />
Só que eu queria deixar aqui minha mensagem a todos os leitores do blog e conseqüentemente a todos os desenvolvedores que conhecem o Flex. O Flex não morreu. Não apodrecerá e nem tampouco está horrível.<br />
O grande medo que você pode sentir é ouvir boatos, Ah! Ainda é instável. Ah! Ainda é bugado, Ah! Ainda estão criando.<br />
De fato todas as afirmações são corretas. Só que existe uma grande diferença entre um produto já homologado que é o caso do Flex 3.5.x SDK quanto ao Flex 4.0, Flex 4.1 e Flex 4.5.</p>
<p><strong>Vamos aos fatos</strong></p>
<p>Lascou tudo. A Adobe colocou as mãos pelos pés quando lançou o Flex 4 antes do Flash Player 10.1 e AIR 2.0 sair no mercado. Eu quando vi a troca de comentários nas correções de bugs um dia antes do lançamento eu pensei “Fudeu!”. Desculpem a palavra. Mais lançar o Flex 4 antes da finalização do Flash Player 10.1 e AIR 2.0 é um tremendo erro, não deu em outra, logo em seguida lançaram o Flex 4.1, saiba mais <a href="http://www.igorcosta.com/blog/?p=1010">aqui </a>e <a href="http://www.igorcosta.com/blog/?p=1012">aqui</a>.<br />
Ai, todos nós nos deparamos com uma crise financeira dos diabos, a Adobe demite 600 funcionários, dos quais uma grande parte do time do Flex Builder, Flex Builder QA, Flex SDK, Flex DVM, Flex DVM QA foi mandado embora. Ficando ai pouco mais de 26 pessoas para trabalhar em um PUTA projeto que é líder de mercado no segmento.</p>
<p>Passado a crise, contratações continuam,  e surge os rumores do HTML 5 que faz isso, faz aquilo, que o Flex tem que ser mobile também. Ai vem o MAX 2009 e ela apresenta o futuro do SDK do Flex que suportará dispositivos móveis, antes era chamado de <a href="http://www.igorcosta.com/blog/?p=917">Slider</a>, e agora chamado de Hero. </p>
<p>Pensei UAU! Que mudança. Agora triste por saber que o Flex 4.5 não terá nightlybuilds , aqueles builds que você adora quando vive na beira do penhasco.<br />
Tanta coisa acontecendo e eles não sabem para onde atirar, Sai o Matt Chotin gerente do SDK  e vai para uma cadeira de diretor do produto Flex e entra a Deepa antes engenheira agora gerente, pensei, agora vai. Agora vai mudar à passos largos. Enganei-me.</p>
<p>Continuou no mesmo ritmo e a passos normais, listas de discussão diminuíram o tráfego, comunidade está perdida sem saber se o Flex 4 vai vingar ou se o produto está morto. Está um verdadeiro dilema que qualquer tecnologia que chega ao topo tem. Como se manter lá? Eis a ciência do negócio.</p>
<p>Ouvi a história uma vez que a Adobe tinha aberto o código fonte do Flex SDK, tanto compiladores quanto tudo.<br />
De fato é aberto, mais já prestaram atenção que o novo SDK do Flex 4 você não consegue customizar de maneira fácil a GUI do seu sistema como era feito ainda no Flex 3?<br />
Eles nos deram o pão, mais a manteiga e a faca ainda continua deles. Sabe o que é a manteiga e a faca? Chama-se o Flash Facalyst (Oops, Flash Catalyst) e Suite de produtos CS5.<br />
Como disse, é tudo fato verídico, onde essas frases são a mais nua e crua verdade.<br />
Porém, nada está perdido, eis que surge uma luz no final do túnel, e não é o trem.</p>
<p>Acabei me empolgando e desviei do assunto. É possível aplicar o jeitinho brasileiro nisso tudo e contornar todos esses problemas? Mais é claro. Se político tem jeito de driblar a lei, por que agente não?</p>
<p><strong>Nunca desista</strong></p>
<p>É o lema, o Flex 4 fora isso que comentei, que ao meu vê são problemas administrativos de decisões erradas que podem dar em merda. O Produto em si é uma excelência. Eles conseguiram mudar muita coisa que eu acharia impossível em 1 ano e 8 meses de trabalho. Eu tava apostando que eles conseguiram uns 50%, mais no final mesmo ainda em mudanças constantes eu digo que eles chegaram a 80%.<br />
É válido migrar tudo para Flex 4.1?<br />
Sim, aprenda desde agora que o Flex 4 não é apenas uma nova versão do produto, é uma nova versão do paradigma de GUI, eles estão ajudando você a entender que sua interface é modular, flexível, customizada de acordo com as regras do negócio. O Flex 4 vai render e ficar no mercado de vez por mais 3 anos ou até mais que isso.</p>
<p><strong>E o Flex 3.x simplesmente será abandonado?</strong></p>
<p>Já começou. Onde a própria Adobe disse que ia parar. Já fazem 9 meses que eles não mexem mais no SDK, à não ser para consertar bugs antigos ou bugs que impeçam que o SDK pare de funcionar.<br />
As maiores e significativas mudanças é no SDK 4, onde eles tem um grande processo de implementação de novas idéias, de novos frameworks. Eu não deixaria de pensar em migrar um sistema antigo em Flex 2/3 para o Flex 4.</p>
<p><strong>Então eu simplesmente largo a mão do Flex 3 e passo a usar o Flex 4?</strong> </p>
<p>Não estou dizendo isso, eu digo à você que, se sua empresa ou cliente precisa usar os novos benefícios do Flex 4 como RSL avançado, customização de telas, velocidade, aumento de performance, melhorias na comunicação remota, entre outras mais de 40 grandes novidades,  então é importante que você migre para o Flex 4. E o mais importante que ela/ele tenham dinheiro para investir nisso.<br />
Agora se você está chegando agora ou se tem um projeto em vista que precisa ser feito em Flex. Eu aconselho você pular do Flex 3 e partir para o Flex 4 de imediato.<br />
Ah! Mais eu ainda tenho muita coisa em Flex 3 que demorará muito tempo para ser migrada e meu cliente não quer pagar para migração. Então aconselhe a ele que o sistema dele está fadado ao descaso não mais que 2 anos.<br />
Flex 4 tem suporte a dispositivos móveis otimizado, tem componentes que rodam 4x mais rápido que na versão anterior, é mais leve, é muito mais amigo do designer e fiel ao que o cliente gosta de usar.<br />
Então quer dizer que se eu começar a usar o Flex 4 eu vou re-escrever tudo que eu já tinha no Flex 3?<br />
Claro que não, não seja tolo, você respeitou o ciclo de vida de componentes, criou novos componentes baseados no UIComponent, etc. Então você terá uma grande chance de escrever pouca coisa.<br />
Então, vendo tudo isso, em todos os ângulos, vou ajudar vocês a entender melhor os benefícios do Flex 4, como temos ajudado <a href="http://www.riacycle.com/flex4">nossos alunos nos cursos on-line</a>, escrevendo mais a migração do Flex 3 para o Flex 4 e a experiência que tivemos nos últimos 9 meses usando o SDK.<br />
Finalizando, se você continuar vivo pelos próximos 3 meses, garanto que você terá excelentes surpresas pela frente, no ramo de Flex. Otimismo meu amigo, Otimismo. Tempo é um luxo que todos nós temos, prazos não.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.igorcosta.com/blog/?feed=rss2&amp;p=1091</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Novos cursos avançados para Flex 4 pela RIACycle</title>
		<link>http://www.igorcosta.com/blog/?p=1087</link>
		<comments>http://www.igorcosta.com/blog/?p=1087#comments</comments>
		<pubDate>Fri, 03 Sep 2010 16:59:45 +0000</pubDate>
		<dc:creator>Igor Costa</dc:creator>
				<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Dev. Software]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Flex Componentes]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Flex 4 Avançado]]></category>

		<guid isPermaLink="false">http://www.igorcosta.com/blog/?p=1087</guid>
		<description><![CDATA[
			
				
			
		
Uau, faz 5 meses desde que começamos a treinar o pessoal pela internet e de lá para cá já foram 712 alunos ao total. Obrigado a todos pelo apoio para com a RIACycle e os cursos com nossos instrutores, tem sido um verdadeiro desafio e uma tremenda animação nesse período.
De lá para cá nossos ex-alunos [...]]]></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.igorcosta.com%2Fblog%2F%3Fp%3D1087"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.igorcosta.com%2Fblog%2F%3Fp%3D1087&amp;source=igorcosta&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Uau, faz 5 meses desde que começamos a treinar o pessoal pela internet e de lá para cá já foram 712 alunos ao total. Obrigado a todos pelo apoio para com a RIACycle e os cursos com nossos instrutores, tem sido um verdadeiro desafio e uma tremenda animação nesse período.</p>
<p>De lá para cá nossos ex-alunos sempre pediam tópicos avançados, então ontem e hoje lançamos 2 novos cursos avançados pela RIACycle, que são:</p>
<p><strong>&#8220;<a href="http://www.riacycle.com/flexdp">Design Patterns para projetos Flex 4</a>&#8220;</strong><br />
<a href="http://www.riacycle.com/flexdp"><img src="http://www.igorcosta.com/blog/wp-content/uploads/2010/09/banner_design_patterns.jpg" alt="banner_design_patterns" title="banner_design_patterns" width="535" height="152" class="alignnone size-full wp-image-1088" /></a></p>
<p>Esse curso é para quem gosta de se organizar, deixar tudo nos devidos lugares, deixar seu projeto digno de ser bem interpretado pelo flash player e assim ter uma maior fluidez entre telas, comunicação com serviços remotos e deixar sua aplicação leve e robusta, de fácil manutenção.</p>
<p><strong>&#8220;<a href="http://www.riacycle.com/flex4pro">Flex 4 Profissional</a>&#8220;</strong><br />
<a href="http://www.riacycle.com/flex4pro"><img src="http://www.igorcosta.com/blog/wp-content/uploads/2010/09/banner_flex4_pro.jpg" alt="banner_flex4_pro" title="banner_flex4_pro" width="535" height="152" class="alignnone size-full wp-image-1089" /><br />
</a><br />
Esse curso é voltado para quem já conhece Flex e quer aprofundar no Flex 4 com novo ciclo de componentes, técnicas avançadas de integração contínua, gerar swfs através de ANT Build, e fazer testes unitários, digamos que seja um nível avançado do que você já conhece de Flex e quer ficar mais expert no assunto.</p>
<p>Ambos os cursos tem o objetivo de treinar você a acompanhar o ritmo de projetos de médio e grande porte da solução Flex para o mercado de Rich Internet Applications.</p>
<p>E uma das novidades desses dois cursos é que agora em sua empresa você pode matricular 1 vez até 3 funcionários e pagando menos.</p>
<p>Obrigado a todos pela confiança depositada e iremos retribuir nos cursos, com conteúdo de primeira e exemplos reais.</p>
<p>Como é festa de lançamento estamos sorteando pelo twitter 2 vagas para cada curso, você tem sorte? Então Tweet usando os hashtags #flex4pro e #flexdp.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.igorcosta.com/blog/?feed=rss2&amp;p=1087</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML 5 e Aplicações Web</title>
		<link>http://www.igorcosta.com/blog/?p=1077</link>
		<comments>http://www.igorcosta.com/blog/?p=1077#comments</comments>
		<pubDate>Sat, 14 Aug 2010 03:45:15 +0000</pubDate>
		<dc:creator>Igor Costa</dc:creator>
				<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.igorcosta.com/blog/?p=1077</guid>
		<description><![CDATA[
			
				
			
		
Eu demorei muito para escrever esse post, primeiro queria ter certeza do que eu falava, depois queria ter a convicção que não iria influenciar ninguém. Então decidi escrever abaixo sobre o que todos estão falando à respeito do HTML 5 vs. Flash vs. resto do mundo. A única certeza que eu tenho quando escrevi isso [...]]]></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.igorcosta.com%2Fblog%2F%3Fp%3D1077"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.igorcosta.com%2Fblog%2F%3Fp%3D1077&amp;source=igorcosta&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Eu demorei muito para escrever esse post, primeiro queria ter certeza do que eu falava, depois queria ter a convicção que não iria influenciar ninguém. Então decidi escrever abaixo sobre o que todos estão falando à respeito do HTML 5 vs. Flash vs. resto do mundo. A única certeza que eu tenho quando escrevi isso é que alguns estarão discordando de pontos que coloquei, outros colocarão &#8220;Obrigado&#8221;. O que de fato eu espero é que você me ajude também a ver diferentes angulos e concluir minhas teorias a respeito disso, afinal de contas o que eu escrever aqui pode virar passado em 6 meses.</p>
<p><strong>Parte Um</strong></p>
<p>O mundo de IT não é diferente do mundo geral. As regras se baseiam em ações (início,meio e fim). A unica rápida mudança que temos é que as coisas andam em velocidade 2x mais que no geral. Ações de descoberta em uma área de medicina demora cerca de 5 anos para iniciar a aplição, depois mais 2 anos para aperfeiçoa-la e assim por diante. A nossa precisa apenas de um desconfortável humor de que não está perfeito e um computador para gerar resultados rápidos. Eu acredito que não mais que 6 meses e você faz estrago. Eu acho que o poder da internet e do boca-a-boca.<br />
Então, vem a sequência disso, precisamos de uma revolução. Quando queremos dizer que algo está ruim e que não estamos mais afim de fazer aquilo, juntamos duas dúzias de pessoas e criamos uma revolução, assim por se dizer você junta a sua fome com a coragem coletiva. Eis que surge um novo &#8220;how to&#8221;, basta espalhar a informação e pessoas que estam em bem, bem distantes respondem, os chamados adeptos; Pronto você chegou onde você queria, proliferar uma idéia. Faltando apenas o toque final para que isso dê certo. Chamar nomes de peso e dividir a causa com você. Foi assim que Steve Jobs entrou como garoto propaganda do HTML 5 e CSS3.</p>
<p><strong>Parte Dois</strong></p>
<p>Tem aproximadamente <a href="http://abrevia.me/5412">7 milhões</a> de informações na internet segundo o Google. Muita coisa não? Eu acredito que não li nem 0,01% de tudo isso. Comecei a me preparar para a árdua tarefa de ler a respeito disso calmamente, sem muita pressa, primeiro passo feito foi <a href="http://en.wikipedia.org/wiki/HTML5">ler </a>no <a href="http://en.wikipedia.org/wiki/HTML5">Wikipedia</a>, depois na <a href="http://www.w3.org/TR/html5/">W3C</a>, acredite lá tem mais informação e sem banners do que qualquer outro lugar que eu conheça. E os resultados não foram assustadores. É onde começa a terceira parte deste estudo que entitulo de &#8220;Evolução&#8221;.</p>
<p><strong>Evolução</strong></p>
<p>Desde que eu entrei na internet pela primeira vez em 1997, eu apenas percebia gifs, Frontpage code. JS, HTML. Hoje é um mix de tanta tecnologia que fez dela o que é. Eu acredito que o ponta pé inicial sempre tem que existir e é necessário você ter força para sobreviver nesse mundo mesmo sendo uma linguagem de programação voltada para web. O HTML veio para ajudar a cunhar a idéia. Então a idéia pegou, mudou-se muito rápido e talvez ele não tenha acompanhado tamanha revolução ocorrida, até que tentou arduamente com o HTML 4.0.1. Só que não é fácil você definir uma linguagem que rode em diversos sistemas operacionais, que seja plataforma e que tenha variações de navegabilidade, navegadores amigo, navegadores. Eles são um saco para o HTML. Cada um quer se comportar do seu jeito. Oras mais é natural que cada um queira se comportar diferente. Alguns brigam entre si, outros tentam boicotar, outros são os bons moços e poucos são vilões.<br />
O HTML tem sido um mestre evolutivo nesse aspecto. Joga muito bem nesse meio de campo e está dando conta do recado. Então começo a perguntar onde e em quais navegadores ele está tão respeitado, é onde começo com a próxima parte chamada de &#8220;mudanças&#8221;.</p>
<p><strong>Mudanças</strong></p>
<p>As mudanças começaram em 2006 quando a Apple, Mozilla Fundation e Opera juntaram-se para melhorar a linguagem. Cada empresa seja ela seu foco lucros ou não. Tem um mútuo interesse em ser dominante na área, o que acaba sendo bom por um lado e muito pior por outro, eu já já explico isso. Voltando ao meu raciocínio, a Apple fez significantes doações para o Webkit, no qual ela usa em seus produtos Apple Safari, iOS, logicamente tais mudanças geram um preço que é cobrado pelos acionistas da empresa no balando trimestral sempre. E claro ela precisa defender isso, já que parte de seus produtos é baseado nessas significantes melhorias.</p>
<p>O HTML 4 para o 5 mudou assim:</p>
<p>Em HTML 4 você criava um documento .html da seguinte maneira.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt; !DOCTYPE html PUBLIC <span style="color: #ff0000;">&quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;</span> <span style="color: #ff0000;">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">http-equiv</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Content-Type&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/html; charset=utf-8&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span>HTML 4.x e XHTML<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">title</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Exemplo de HTML 4<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></pre></td></tr></table></div>

<p>Com o HTML 5 você cria um documento HTML assim:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt; !doctype html&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">charset</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;UTF-8&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span>HTML 5<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">title</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">meta</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Exemplo de paragrafo<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></pre></td></tr></table></div>

<p>Significativa mudança em termos digitação. Mais simples de definir o charset da página, removeram a parte chata de definir DTD do documento e também para XHML removeram os tais namespaces.<br />
A grande jogada do HTML 5 é de fato promover a web semantica, aquela história já velha e conhecida de todos do microformats. Só que em tese isso funciona perfeito, no mundo real e cruel provavelmente daqui alguns anos, hoje não.</p>
<p><strong>Inline SVG (Colando código de SVG)</strong><br />
Outra promessa que pode ser muito interessante é vetorizar o que você tiver. Imagine suportar Tudo em Inline SVG, permitir que você use um editor SVG, copie o código e jogue no novo tag <svg></svg> porém hoje não é possível em nenhum navegador existente. Quando existir você pode testar esse código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt; !doctype html&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">charset</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;UTF-8&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span>HTML 5<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">title</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">meta</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Uso de SVG com HTML 5<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
&nbsp;
    <span style="color: #009900;">&lt;svg&gt;&lt;rect x<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;136&quot;</span> y<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;170&quot;</span> fill<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#29ABE2&quot;</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;24&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;119&quot;</span><span style="color: #66cc66;">/</span>&gt;</span>
    <span style="color: #009900;">&lt;rect x<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;173&quot;</span> y<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;233&quot;</span> fill<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#009245&quot;</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;24&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;56&quot;</span><span style="color: #66cc66;">/</span>&gt;</span>
    <span style="color: #009900;">&lt;rect x<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;213&quot;</span> y<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;252&quot;</span> fill<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#ED1C24&quot;</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;24&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;37&quot;</span><span style="color: #66cc66;">/</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>svg&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></pre></td></tr></table></div>

<p>Bem fácil, não é? Uma repentina mudança para quem estava acostumado apenas a rendenizar SVG. Pois bem, continuando nossa investigação vimos que tem novos tags no HTML 5, que você pode ver na íntegra <a href="http://dev.w3.org/html5/html4-differences/#new-elements">aqui</a>.</p>
<p>Depois de ver todas as mudanças e novos tags cheguei a uma pequena conclusão das novidades. A grande bola da vez é o tag<br />
<h2>Canvas</h2>
<p>, ele é o principal responsável pelo que há de mais legal e que que levou o HTML 5 ao topo da discussão sobre o assunto. <a href="http://www.w3.org/TR/html5/the-canvas-element.html#the-canvas-element">Segundo a documentação</a> em suma, ele serve para rendenizar gráficos em tempo de execução muito usado em jogos, animações, só que rendeniza apenas em 2D.</p>
<p>Então como eu posso fazer um simples exemplo?</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
</pre></td><td class="code"><pre class="html4strinct" style="font-family:monospace;">&lt; !doctype html&gt;
&lt;html&gt;
  &lt;head&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js&quot;&gt;&lt;/script&gt;
	&lt;script type=&quot;text/javascript&quot;&gt;
&nbsp;
	$(document).ready(function () {
			desenharBarras();
	});
&nbsp;
	function desenharBarras()
	{
		cronometro = setInterval(&quot;incrementarX()&quot;,120);
	}
	var x = 5;
	function incrementarX()
	{		
				var meuCanvas = document.getElementById('canvasContainer');
				if(meuCanvas &amp;&amp; meuCanvas.getContext) {
					var context = meuCanvas.getContext('2d');
					context.beginPath();
					context.rect(x,meuCanvas.height &gt;&gt;&gt; 1,3, (Math.random() *Math.pow(7,2)) - (meuCanvas.height &gt;&gt;&gt;1) + 100);
					context.fillStyle = &quot;#779AC4&quot;;
					context.closePath();
					context.fill();			
				}
				if (x &lt; meuCanvas.width){
				x += 5;
				}else{
					alert(&quot;completou o gráfico&quot;);
					clearInterval(cronometro);
				}
			}
	 &lt;/script&gt;  
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;title&gt;HTML 5&lt;/title&gt;
  &lt;/meta&gt;&lt;/script&gt;&lt;/head&gt;
  &lt;body&gt;
    &lt;p&gt;Uso de Canvas para criar gráficos de barra&lt;/p&gt;
&nbsp;
	&lt;canvas id=&quot;canvasContainer&quot; width=&quot;700&quot; height=&quot;500&quot;&gt;
      &lt;!-- Basicamente você vai usar Javascript igual como se usa a API do Flash para desenho --&gt;
      &lt;p&gt;Você pode escrever isso caso seu usuário não tenha um navegador compatível e dizer que não suporta o Canvas&lt;/p&gt;
    &lt;/canvas&gt;
  &lt;/body&gt;
&lt;/html&gt;</pre></td></tr></table></div>

<p>O exemplo acima simula a criação de um gráfico de barra, podendo ai você colocar em um dashboard complementar que você venha a construir. Porém mesmo gastando pouco mais de 30min para fazer esse exemplo eu percebi que exitem diversos <a href="http://www.canvasdemos.com/">outros exemplos</a>, que você pode usar como base para testar seus conhecimentos e ver o quanto burro você foi em não aprender trigonometria na escola.</p>
<p>Outra novidade interessante que o HTML 5 vai proporcionar para o pessoal de Web standards, é a possibilidade de se conectar com sockets, Existe um famoso chamado Node.js que faz isso bem fácil e pode te ajudar a entender muito bem como vai rolar, Eu sei como funciona conexão com sockets, então fui investigar e é 90% igual como é feito em qualquer linguagem de script, seja ela Js, Actionscript, AppleScript.</p>
<p>Outra mudança significativa foi a possibilidade de sincronização offline, você como desenvolvedor pode deixar o usuário preenchendo o cadastro mesmo que a conexão tenha caído e depois quando ele entrar no site, sincronizar o que ele havia deixado em aberto. O que me preocupa nesse sentido é a especificação de segurança nesse ponto. Coisa que ainda não está totalmente definida e tem pouco assunto sobre o mesmo.</p>
<p>Se você pensa que jamais será localizado quando navegar na internet, você se engana, o futuro é hoje nesse quesito, você pode visitar um site e ele pode pedir sua localização, igual como é feito com seu Android, iphone, Nokia phone, blackberry, só que agora é mais uma função nova do navegador do que em sí uma função do HTML 5. Já era hora deles terem soltado uma especificação nesse sentido para os fabricantes de navegadores. O grande problema é que a precisão disso está ligado apenas ao seu ISP e não ao seu IP. Eu acredito que isso possa ir amadurecendo com futuras versões.</p>
<p>Integrando também recursos de multimidia como simples sintaxe para vídeos e audio. Por enquanto para<a href="http://www.w3.org/TR/html5/video.html#audio"> audio os formatos</a> aceitos são mp3 e ogg. E o tag de video <a href="http://www.w3.org/TR/html5/video.html#video">apenas suporta videos</a> com padrão MPEG-layer 4 (.mp4), H.264, Speex, AC,etc. O que para mim é um ponto bem complicado quando se tem diversos codecs e diversos navegadores, atualmente apenas o Chrome suporta MPEG-layer4 já o firefox e opera apenas ogg, speex etc. O que torna a vida de quem vai criar o video complicada por que terá que ainda criar javascripts para detectar o navegador e para nao criar 2 tipos de videos, fazer o swap entre um player nativo ou um player de video com Flash.</p>
<p>Aqui é um exemplo típico de player HTML 5 nativo</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="html4strinct" style="font-family:monospace;">&lt; !doctype html&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;title&gt;HTML 5&lt;/title&gt;
  &lt;/meta&gt;&lt;/head&gt;
  &lt;body&gt;
    &lt;p&gt;Uso de vídeo com HTML 5&lt;/p&gt;
&nbsp;
  	&lt;video width=&quot;854&quot; height=&quot;480&quot; preload controls &gt;
    &lt;source src=&quot;meuvideo.mp4&quot; type='video/mp4'/&gt;
    &lt;/video&gt;
  &lt;/body&gt;
&lt;/html&gt;</pre></td></tr></table></div>

<p>E para o audio, a mesma coisa me preocupa, atualmente apenas mp3 é suportado pelo Chrome, no firefox suporta apenas ogg vorbis. Tem algumas técnicas que voce adiciona ou faz o transcode nativo para ogg, mais para usuário final, ninguém vai querer fazer transcode de cada musica para ouvi-la. Ele se preocupa apenas em dar o play.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="html4strinct" style="font-family:monospace;">&lt; !doctype html&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;title&gt;HTML 5&lt;/title&gt;
  &lt;/meta&gt;&lt;/head&gt;
  &lt;body&gt;
    &lt;p&gt;Uso de musica com HTML 5&lt;/p&gt;
&nbsp;
  	&lt;audio controls=&quot;controls&quot;&gt;
    &lt;source src=&quot;musica.mp3&quot; type='audio/mp3'/&gt;
&nbsp;
  &lt;/audio&gt;&lt;/body&gt;
&lt;/html&gt;</pre></td></tr></table></div>

<p>Por fim, chegamos a parte de mudanças. Eu abreviei ao máximo para não ficar cansativo, se você chegou até aqui, parabéns, você é meu leitor preferido. A próxima parte eu chamo de &#8220;Competitividade&#8221;.</p>
<p><strong>Competitividade</strong><br />
Embora o HTML 5 tenha trazido recursos interativos para o usuário final e coisas bem legais para o desenvolvedor eu ainda vejo que tem muito caminho pela frente, que na situação atual já se pode fazer coisas legais com ele, não tão avançadas como outras tecnologias já conhecidas e competitivas dele o SilverLight e o Flash.</p>
<p>Então, como eu vejo isso na competitividade atual e daqui para os próximos 5 anos? Eu vejo que tanto para o lado do desenvolvedor quanto para o lado do usuário, teremos coisas boas. Por que entre eles HTML 5, Silverlight, Flash e outros, eu percebo que a parte que falei evolutiva desse artigo vem a encaixar perfeitamente no que escrevo agora. Você poderá ver exemplos como o &#8220;<a href="http://muro.deviantart.com/">Muro</a>&#8221; um aplicativo feito pela DeviantArt, lhe chocando, porém se você for ver outros concorrentes como o que o pessoal da <a href="http://www.aviary.com">Aviary.com</a> faz, você fica na dúvida de qual é o melhor e qual deles vai vencer na concorrência.<br />
Eu tenho certeza que nenhum vai ganhar do outro. Todas as tecnologias vão ser alternativas, não terá mais essa preferência de &#8220;só flash&#8221;,&#8221;só silverlight&#8221;,&#8221;só html5&#8243;, quem vai decidir o que usar no final ou é o cliente ou é o usuário final. A web precisa de diversificação de espécimes como essas, não dá para ter apenas uma tecnologia predominante, tem que existir várias, onde-se é possivel manter em armonia ambos os ninchos existentes. É ai onde eu entro com o próximo tópico que chamo de &#8220;Vendedores&#8221;.</p>
<p><strong>Vendedores</strong></p>
<p>Cada um sempre quer vender seu peixe, e por mais que você do time do web standard queira ver por outro lado da moeda, você deve concordar comigo a segregação de cada um dos vendedores em uma especificação ainda em andamento e a <a href="http://en.wikipedia.org/wiki/Comparison_of_layout_engines_%28HTML5%29">fragmentação das implementações</a>. Empresas que tem 100% de suas ações voltadas para produção de conteúdo web como o Google vão sempre sair na frente em consolidação das implementações, tanto é que o Chrome é o único navegador existente que suporta todas as especificações já definidas, coisa que outros até mesmo a Apple ainda não suporta.</p>
<p>Fato tal é que me preocupa nesse cenário, eu fico ainda cometendo os mesmos erros e com medos dos antigos fantasmas da web de 1997. Onde terei que ter jogo de cintura para lhe dar com a interoperabilidade das versões do navegador. Pergunto eu? Eles apenas se interessam na semântica da linguagem e não na semântica do navegador? Mesmo já tendo ouvido que navegador era coisa do passado. Eu acho que ainda teremos por muito tempo navegadores e por muito tempo vendedores implementando novas funções DOM para que facilite a vida do usuário e seu peixe venda mais rápido que o do vizinho. Assutador como desenvolvedor não?</p>
<p>Uma vez que eu tenho essa preocupação, você viu que em &#8220;mudanças&#8221;, grande parte é relacionada ao navegador, colocando mais poder ao DOM de interpretação e não na linguagem em si. Seria esse um calcanhar de aquiles que eu vejo em questões de compatibilidade? Eu só aposto nisso daqui à 10 anos para ver se realmente mudou ou se continua como está, já que não só de desktop vive mais a web.<br />
É onde agora entro na última parte do artigo que falo sobre aplicações Web e HTML 5. Chamo ela de continuação.</p>
<p><strong>Continuação</strong></p>
<p>Depois de ter analisado, cansavelmente todos os exemplos que eu pude achar sobre o assunto, estudar e ver que ainda eu preciso esperar um pouco, quem sabe 1 ou 2 anos para ver realmente coisas prontas, eu falo isso por que minha vivência em mercado corporativo é grande, e se tem uma coisa que o pessoal que paga seu projeto odeia é algo como &#8220;working in progress&#8221; ou não homologado. Enquanto não for homologado seja aqui no Brasil ou lá fora o HTML 5 ainda não vai entrar nesse mercado, o que pode demorar a incomodar outras tecnologias do tipo como Flash/Flex.<br />
Principalmente orgãos do governo que temem por segurança, e estabilidade de uso.<br />
Terei a certeza que será amplamente usado em material de propaganda, start-up&#8217;s, aplicativos web para celulares como o <a href="http://www.sencha.com">Sencha </a>onde o clico de vida de uma aplicação não tem tanta burocracia como os demais. </p>
<p>Posso investir nisso? Se você é curioso sem dúvida, você nunca sabe de onde a próxima oportunidade virá. Como você, eu sempre procuro estudar novidades e o HTML 5 como a plataforma Flash são as minhas preferidas, nem uma e nem outra ao meu ver competem em sí, ela trás apenas alternativas, tais alternativas me impressionaram.<br />
O HTML 5 pode até ser aplicado atualmente em aplicações Web, mais eu prefiro por enquanto ficar com o JQuery. A parte mais dificil para mim escrever isso, podem apostar, foi não falar do Flash/Flex, não dizer quem é melhor que quem. Coloquei as diferenças ao lado e me posicionei como um novo desenvolvedor querendo aprender novidades.</p>
<p>E disponibilizo abaixo links da minha pesquisa, quero ouvir de você seu ponto de vista.</p>
<p>Links da pesquisa:</p>
<ul>
<li><a href="http://www.w3.org/TR/html5/">W3C definições do HTML 5</a></li>
<li><a href="http://en.wikipedia.org/wiki/HTML5">Wikipedia HTML 5</a></li>
<li><a href="http://en.wikipedia.org/wiki/Comparison_of_layout_engines_%28HTML5%29">Gráfico comparativo atual dos navegadores e engines que já suportam parte do html 5</a></li>
<li><a href="http://html5demos.com/">Vários exemplos do HTML 5 para você ver</a> </li>
<li><a href="http://html5.org/">Site sobre HTML 5 com 4 links úteis</a></li>
<li><a href="http://html5gallery.com/">Galeria de sites que já usam HTML 5</a></li>
<li><a href="http://diveintohtml5.org/">Excelente livro on-line sobre o HTML 5</a><em>(Grátis e em inglês)</em></li>
<li><a href="http://www.canvasdemos.com/">Vários e impressionantes exemplos do tag Canvas</a></li>
<li><a href="http://dev.opera.com/articles/tags/html5/">Opera Dev Central &#8211; vários artigos técnicos sobre HTML 5 e tutoriais</a> </li>
<li><a href="http://blog.nihilogic.dk/2009/02/html5-canvas-cheat-sheet.html">HTML 5 e sua tabelinha Cheat Sheet</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.igorcosta.com/blog/?feed=rss2&amp;p=1077</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
