Apache Flex/ Flex/ FlexJS

Apache Flex com saída para HTML5,Javascript e CSS. Trans-compilação para vários clientes

flexjs

Em Janeiro, teve muita gente que desacreditou e não depositou mais as fichinhas na solução Apache Flex, até eu tentei fazer isso. O fato é que é difícil você largar certos hábitos e se transformar em uma outra pessoa da noite para o dia, é um aprendizado longo e doloroso.
breakfast-anyone-l

Parte desse processo é justamente ficar de mãos atadas à Adobe que é controladora do Flash Player/AIR e consecutivamente depende de navegadores que esses tendem a não depender ou querer mais players instalados neles por padrão, resumindo. Tem muita caixinha de areia para trabalhar e isso impactou bastante na boa positividade do Flash Player, travamentos constantes e a falha de quebra de navegadores deixaram todos malucos, especialmente quem desenvolve para o Flash Player.

Antes de continuar com o post, eu gostaria de defini-lo como uma rendição, não aquela onde você se rende ao fracasso e ao descaso e tenta-se recompor com meios pejorativos ou com uma arrogância de quem não quer mais vencer e se dá por vencido. Essa é uma rendição de que o Apache Flex tem um futuro brilhante em 2014 e é sobre isso que eu quero escrever para você que está ai com um pouco de pensamento cético ou desacreditado que isso não possa mudar nem tão cedo.

Vamos por parte, eu sempre gosto de dividir posts longos em tópicos, assim fica muito mais fácil para mim conseguir entender minha linha cronológica do assunto. Eu começo pelo.

O lado bom de trabalhar em uma fundação

Superman-l
Sendo um único comitter Brasileiro do projeto, isso quer dizer que eu tenho grandes responsabilidades não só em ajudar a tecnologia, assim como trazer boas notícias para nós aqui no Brasil, ser comitter acima de tudo é divulgar, acreditar, evangelizar, convencer as pessoas que aquilo é bom. E na fundação Apache eu tomei isso como uma tarefa obrigatória e semanal. Em 2013 eu doei mais de 320 horas ao projeto. Criando coisas que possam servir não agora, mais em um futuro bem próximo e que isso torne nossas vidas mais fáceis e assim a internet consiga progredir a passos largos como tem feito avanços ao longo do tempo.

Tendo em vista que eu tenho um trabalho full-time, 320 horas é mais que suficiente para garantir que o projeto ande bem, já que a cada mês sempre temos novos membros na equipe que são escolhidos pela sua dedicação e tempo doado ao projeto e a fundação.

Doar seu tempo com uma tecnologia que o acompanha sempre para onde você for é gratificante, ainda hoje recebo mensalmente algumas dúzias de e-mails pedindo ajuda para solucionar problemas de desenvolvimento relacionados ao Flex, eu diminuir muito minha cota de resposta, fica difícil acompanhar e responder todos com tantas atribuições para serem feitas durante todo santo dia, de domingo a domingo. A resposta sempre vem, isso é garantido só que pode ser que o tempo não seja hábil. Então eu prefiro colocar em pausa e focar mais no tempo gasto para o Apache Flex, até mesmo blogar ficou em segundo plano, esse ano de 2013 foi basicamente meia dúzia de posts, metade só sobre EGO de palestrar, nada tão tesão que eu gostaria de mostrar.

E depois que eu adotei essa regrinha de doar 1 hora por dia ao projeto isso me fez refletir sobre os resultados dessa dedicação, não é nada fácil fazer algo voluntário e esperar bons resultados, eles sempre veem de forma à longo prazo. Só que ai entra na questão dos números.

O Apache Flex atualmente

Zebra-l

O SDK para melhor funcionar em sua máquina ele é distribuído através de uma instalador que de longe facilita e muito a configuração automática para sua máquina, assim você gasta tempo no que realmente importa.

Falando do Instalador, sua última versão 4.11 tem recebido um em média semanal mais de 15.000 mil instalações, isso quer dizer que muitas pessoas ainda desenvolvem no SDK.
A lista de discussão tem uma média mensal de 600 a 800 e-mails.

Já reparou na quantidade de commits que o projeto recebeu só em 2013? Uma média de 705 commits mensais e o resultado disso é mais de dúzias de centenas de bugs corrigidos e novas implementações para o FlexJS, falo disso daqui à pouco.

Fora que nosso site teve mais de 200.000 mil visitas únicas desde que começamos a monitorar em Janeiro deste ano.

Toda essa atividade prova que o projeto tomou um fôlego e mais desenvolvedores estão engajados ao projeto.

A mudança de jogo

asvsjs

Tudo começou por um e-mail, Janeiro quando um dos comitters o Eric, estava trabalhando em um SDK chamado Vanilla SDK, ajudou bastante nesse processo de migração.

Criar trans-compilação para vários clientes não é dificil, especialmente se tratando de javascript, várias linguagens de programação já fazem isso. Então se todas fazem por que é tão dificil para do Actionscript para o Javascript?

Actionscript para Javascript

Snow-fun-l

Embora ambas as linguagens sejam descendentes do ECMAScript, o Javascript ficou para trás em vários quesitos em relação ao Actionscript e algumas coisas que limitam o Actionscript, no Javascript ele dá de lavada. Dito isso, boa parte dessa diferença está na especificação 262, o Javascript adota a edição 5 e o Actionscript parou na edição 3. Essa diferença não é quase nítida e sim retrai a velha teoria que o Javascript não é só OOP simulado como era o Actionscript 1.0. Na verdade o Javascript ainda é imperativo e funcional. Boa parte disso você percebe quando tenta rodar um script de javascript e se houver erro acaba limitando o modelo de objeto a ser relacionado a função ou ao corpo que ele esteja sendo manipulado.

Se tratando de trans-compilação isso é uma faca de dois gumes, de um lado você tem diversas implementações que já foram resolvidas 5 anos atrás como é o caso do Actionscript 2.0 e de 8 anos atrás como é o caso do recém Actionscript 3.0.

E toda essa reviravolta é apenas por uma causa dessa carta , acho que sua frustração não era em si pela tecnologia, mais simples pela falta de controle do Flash Player que a Adobe queria continuar dominando o mundo com seu player. Resultado, deu no que deu. Muitos clientes alheios a essa limitação começou a bater o pé e não querer mais o SWF compilado em seus projetos, coisas e afins, não tenho dúvidas quanto a isso. A Web precisa ser justa e aberta, a NSA está ai para provar que estou certo, enfim, isso é papo para outro post.

Passados uns 15 meses e a Adobe sem solução alguma para passar uma borracha em soluções SWF e dar suporte ao então famigerado que rouba o crédito do Javascript o HTML5, surge o CREATEJS. Ele tem uma API muito similar ao Actionscript 3.0 e reduz e muito a curva de aprendizado quando você começa a programar nele, a diferença é que você vai escrever partes apenas em Javascript e não fará nada além disso. Embora eu tenha dito isso, acabei de receber um alerta aqui do Creative Cloud que o Flash CC dará suporte nativo ao CREATEJS com HTML5 Canvas, imagine você programar Javascript diretamente do Flash CC, acho que eles estão tentando se adaptar ao mercado.

Lembrando que o Canvas do HTML5 só é possível por que parte do engine compilador do Actionscript foi doado para fundação Mozilla e se espalhou pela Web. Acabou surgindo na especificações da W3C o Canvas.

Voltando ao assunto, existe outro framework que já faz essa trans-compilação de Actionscript para JavaScript? Não, existe uma outra linguagem de programação chamada Haxe junto a outro projeto chamado OpenFl que faz essa trans-compilação e cross-compilação estilo Apache Flex SDK, só que com menos da metade das funções fora da caixa pronta como o Apache Flex SDK possui.

O que torna atrativo a idéia de usar o Apache Flex como solução é justamente usar ou migrar Apps para fora da caixa do plugin e ir direto para outra caixa do navegador. Acho que esse pulo do gato o Nicolas Cannasse pensou bem antes, criar algo que fosse semelhante a API do Actionscript e exportasse para várias plataformas. Veja que a idéia do Nicolas se encaixa perfeito em nossa perspectiva de como será o Apache Flex daqui para frente.

haxe-diagrama

Só que é melhor usar soluções próprias e migrar o Falcon para fazer essa exportação de maneira mais rápida, foi ai que o Alex Harui outro comitter teve a idéia de usar a solução dessa trans-compilação usando o Google Closure para fazer essa tradução, afinal GWT usa isso do Java para o Javascript.

Existe outras tentativas para o uso da mesma API do Flash Player, inclusive o Stage3D que acaba acelerando o processo para o Dart. Além do Vanilla SDK ele foi inspirado na verdade com as tentativas do Jangaroo.

A mais avançada tentativa até hoje é o projeto Mozilla Shumway que é a tentativa de emular a máquina virtual do Actionscript diretamente no browser sem precisar usar o Flash Player, o projeto ainda está em fase alpha, mais já possui grande chance de funcionar, já vi até o Candy Crunch feito em Flash rodar liso nele. Para isso você precisa ter a ultima versão do Firefox.

Na prática como isso funciona, abaixo eu criei um diagrama de como será daqui para frente com o Apache Flex.

apache-flex-architecture-full

Você vai continuar programando em Actionscript e MXML (isso garante o investimento feito) para criar layouts e em contra-partida o FalconJX, em conjunto com o framework interno ainda em estado de POC (Prova de Conceito) FlexASJS está ainda nos primeiros passos, já temos meia dúzia de componentes visuais prontos para serem usados e compatíveis com os navegadores IE8+, Chrome19+, Firefox16+, Opera11+, Safari 7+. Nada de navegadores antigos, já de cara suportando o que há de mais avançado nesse quesito.

Design em mente

color-leave-l

Uma das grandes sacadas do Apache Flex é a questão dos Skins, uma mistura do clássico SVG com a sintaxe do MXML e saiu o FXG para criar interfaces com perfeição de pixels, sem distorção.

A galera dos padrões Web parece que percebeu isso e começou a adotar o SVG para esse propósito, até a Adobe está dando uma forcinha. E toda a parte de Skin dessa transição será feita em SVG, é o melhor formato e boa parte dos navegadores modernos já suportam SVG para isso.

Tem muita coisa a ser implementada, por exemplo criar Datagrid, Lists, Habilitar a criação de componentes personalizados, dar suporte a E4X já que no javascript isso não é possível.

Por exemplo, para configurar seu Flash Builder para suportar isso ainda é muito manual, o Om está fazendo um instalador à parte para ajudar nesse processo e deixar mais simples essa configuração do ambiente, também existe uma petição para que isso seja possível também no IntelliJ IDE “Ajude-nos, vote lá”.

Nos próximos 6 meses ele ficará um pouco mais maduro e terá mais componentes disponíveis para essa transição.

O que é possível hoje?

Para encurtar se você domina o inglês, siga esses passos. Caso contrário pode fazer o seguinte. É interessante também você ler como funciona aqui.

1 – Instale o Apache Flex SDK 4.10 ou maior.
2 – Feche o Flash Builder 4.7 se estiver aberto.
3 – Baixe a biblioteca do Google Closure. Extraia em um diretório de sua preferência, ex: c:\sdks\closure\
4 – Vale lembrar que você precisa ter o JDK na máquina.
5 – Configure a variável de ambiente GOOG_HOME e aponte para o diretório onde você extraiu o Google Closure.
6 – Baixe o ApacheFlexJS.zip
7 – Extraia ele em um diretório de sua preferência, eu geralmente coloco assim c:\sdks\flex\flexjs
8 – Depois que você extrair, vá até o diretório onde você extraiu o arquivo e execute o arquivo deploy.bat pela linha de comando do prompt do Windows e passe o comando deploy.bat Importe > Run/Debug > Launch Configurations
12 – Escolha a IDE Flash Builder da cópia modificada do FlexJS
13 – Se você fez tudo certo vai aparecer agora várias configurações extras sob a ferramenta ‘External Tools’.

flexjs

Existe outros exemplos dentro do FlexJS que você baixar do SDK, embora eles sejam um pouco mais complexos para quem quer adaptar a realidade, eu acabei criando um do zero e coloco aqui para vocês baixarem.

[button link=”https://www.dropbox.com/s/jnmih4vrz8ccbiv/FlexParaJavascript.zip” color=”#a39e9e” size=”3″ style=”1″ dark=”0″ radius=”auto” target=”self”]FlexParaJavascript.zip[/button] [note color=”#FFCC00″]Esse arquivo tem os binários compilados, rode em seu navegador e veja que funciona tanto no SWF quanto sem ele.[/note]

Onde e como posso acompanhar

A maneira mais fácil e ir ao site, flex.apache.org e começar a assinar a lista de discussão ou fazer um fork no projeto pelo Github, o projeto está espelhado por lá.

A medida que o projeto for evoluindo eu vou postando mais exemplos aqui, ainda há muita coisa a ser feita. Até o final de Dezembro teremos um SDK mais estável e um instalador para ele.

O clima é de festa e Queremos avisar ao Javascript que estamos chegando para ajudar e não competir.

Apache Flex/ Flex

Apache Flex e requisições PUT/GET/POST/DELETE

rest-php-call

Exsitem vários posts aqui sobre REST, vez ou outra alguém sempre anda perguntando nas listas como usar arquitetura REST com o Flex, já que ele suporta apenas GET/POST por padrão. Na verdade essa última sentença é falsa, já que desde a versão 4.9 o Flex possui suporte a REST completo.

Vejamos um exemplo básico:

Suponha-se que você tem um serviço REST e que ele se comunique com o formato JSON, geralmente em 99.99% dos casos são assim, você teria algo do tipo:

 
GET: /posts/all
PUT: /posts/{id}
POST:/posts/new
DELETE:/posts{id}

E você precisa chamar esses métodos dentro da sua interface Flex, basicamente você faria da seguinte forma.

<?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">
 
	<s:layout>
		<s:VerticalLayout/>
	</s:layout>
	<fx:Declarations>
		<s:HTTPService id="REstfulService_demo" resultFormat="text" result="getRestfulHandler(event)" fault="faultRestfulHandler(event)">
 
		</s:HTTPService>
	</fx:Declarations>
 
	<fx:Script>
		<![CDATA[
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
 
			private var demo_url:String = "http://www.seusite.com/api/";
			protected function callService(method:String):void
			{
					switch(method)
					{
						case 'GET':
								REstfulService_demo.method = 'GET';
								REstfulService_demo.url = demo_url + '/posts/all';
						break;
						case 'POST':			
								REstfulService_demo.method = 'POST';
								REstfulService_demo.headers = 'application/json';
								REstfulService_demo.request = JSON.stringify(new Post(id_post,'exemplo de titulo'));
								REstfulService_demo.url = demo_url + '/posts/new';
						break;
						case 'DELETE':
								var id_post:Number = 100;
								REstfulService_demo.method = 'DELETE';
								REstfulService_demo.headers = 'application/json';
								REstfulService_demo.request = id_post;
							break;
						case 'PUT':
								var id_post:Number = 100;
								REstfulService_demo.method = 'PUT';
								REstfulService_demo.headers = 'application/json';
								REstfulService_demo.request = id_post;
							break;
					}
 
 
					REstfulService_demo.send();
 
			}
 
			protected function getRestfulHandler(event:ResultEvent):void
			{
				// tratar o retorno
 
			}
 
			protected function faultRestfulHandler(event:FaultEvent):void
			{
				// ver mensagem de erro em modo debug
				trace(event.fault.toString());
 
			}
 
		]]>
	</fx:Script>
 
	<s:HGroup>
		<s:Button label="PUT" click="callService('PUT')"/>
		<s:Button label="POST" click="callService('POST')"/>
		<s:Button label="DELETE" click="callService('DELETE')"/>
		<s:Button label="GET" click="callService('GET')"/>
	</s:HGroup>
</s:Application>

Basta setar o Headers da requisição para aceitar o formato JSON, assim sua interface Flex comunica-se perfeitamente com o serviço.

Alternativa ao Flex Builder/ Apache Flex/ Flash Builder 4.5/ Flex/ Flex Builder 4/ Notícias/ Open-source

Modo visual do Flash Builder feito em Javascript

first-shot

Quando a Adobe decidiu arrancar sem dó o modo visual do Flash Builder muita gente esperniou como um bebê por que isso era uma mão na roda, já que a plataforma em sí por todos esse anos foi conhecida como RAD (Rapid Application Development), uma IDE que fizesse o arrastar e soltar e gerar código ao mesmo tempo seria fantástico do ponto de vista quem depende dela, acho que é por esse motivo que muita gente não sai do Visual Studio, te deixa muito confortável. Em fim!

Ontem eu fiquei curioso, o Janderson , havia me mostrado o Layoutit que é um projetinho bem bacana que te ajuda a criar interfaces para a Web usando o Twitter Bootstrap, é uma mão na roda para prototipar páginas de forma rápida e sem escrever código.

Como eu ando tão atarefado entre jogo multi-player( vai demorar um pouco para sair), e o cycle.JS, dificil arranjar tempo para hackear você mesmo.

Dificil? Se é! Da próxima vez que eu ver uma IDE com essa função vou trata-la de forma mais respeitosa, por que montar um troço desse com tamanha qualidade é um trabalho absurdo e consome seu precioso tempo entre as teclas CTRL+F5.

E esse foi o resultado da operação depois de 72 horas desenvolvendo:

first-shot

Você pode rodar ele direto do seu navegador, seja no iPad, Android, Windows, Mac, Linux, só requerer que você tenha o Chrome instalado.

Quem quiser já começar a testar [button link=”/projetos/apacheflexuibuilder” color=”#7ec115″ size=”3″ style=”1″ dark=”0″ radius=”5″ target=”blank”]Testar Agora[/button]

Bugs, falhas, reportem direto no Github, esse é um típico projeto que te deixo livre para fazer um Fork, modificar, refazer e colocar ele adiante.

Dedicado ao pessoal da comunidade Flex, Flex-Brasil, Flex-dev, Janderson, Erko.

Apache Flex/ Flex/ Sem categoria

Mapas para o Apache Flex

flex-maps

Se você tentou utilizar o Google Maps para a plataforma Flash nos últimos meses, você deve estar em um mar de apuros, o suporte a chave de requisição acabou e o projeto foi descontinuado e o Google Maps for Flash vai funcionar só até Setembro de 2014. Até o Yahoo Maps para Flash foi cancelado. E agora o que você pode fazer?

Pois é, muita gente ficou orfão de mapas em solução Flex, existe o MapQuest, só que não é tão bom no Brasil quanto nos EUA.

Se você já tem uma solução em Flex e que utilize o Google Maps, Yahoo, continue com ela, agora se você está pensando em colocar mapas em sua App Flex, o mais fácil será utilizar o Google Maps for Javascript e se comunicar com ele. Porém fica uma solução híbrida e pode afetar em alguma parte o workflow que você teria se tivesse dentro da própria aplicação.

Apresento a vocês uma solução Open-source que pode salvar muito desenvolvedor Flex que ficou abandonado.

Flex-Map

é uma solução Open-source que vai te ajudar a criar mapas para suas Apps Flex sem se preocupar mais com os distribuidores de mapas.

O grande problema com mapas hoje do Flex é que existem 1 alternativa para 1 distribuidor, como Google, Nokia, Microsoft, Openstreet. E se você for utilizar algum deles você acaba criando várias bibliotecas para administrar. Então é ai onde o Flex-Maps entra, com 1 só biblioteca você pode escolher qual distribuidor de mapas você quer para sua App.

Atualmente eu deixei suportando apenas os seguintes distribuidores:

  • Open Street
  • Nokia Here
  • Yahoo Maps
  • Microsoft Bing
  • Nasa Blue Marble

Construindo sua App com Mapas

É bem fácil implementar essa solução de mapas em suas App Flex, basta fazer o seguinte.

Ir ao repositório do Github. Baixar o projeto e criar um novo projeto no Flash Builder, adicionar o SWC disponível no Github e adicionar o seguinte código em sua App.
flex-maps

<?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" xmlns:flex="org.apache.flex.maps.flex.*">
		<s:layout>
			<s:VerticalLayout/>
		</s:layout>	 
 
		<fx:Script>
			<![CDATA[
				import spark.events.IndexChangeEvent;
 
				protected function onProviderChanged(event:IndexChangeEvent):void
				{
					myMap.provider = provider.selectedItem.value;
				}
 
			]]>
		</fx:Script>
		<s:HGroup>
			<s:Button width="82" height="22" label="Zoom In" click="myMap.map.zoomIn(event)"/>
			<s:Button label="Zoom Out" click="myMap.map.zoomOut(event)"/>
				<s:ComboBox id="provider" change="onProviderChanged(event)">
						<s:dataProvider>
							<s:ArrayList>
								<fx:Object label="NASA BLUE MARBLE" value="BLUE_MARBLE"/>
								<fx:Object label="Open Street Map" value="OPEN_STREET_MAP"/>
								<fx:Object label="Nokia HERE Normal" value="HERE_MAP_NORMAL"/>
								<fx:Object label="Nokia HERE Hybrid" value="HERE_MAP_HYBRID"/>
								<fx:Object label="Yahoo Aerial" value="YAHOO_AERIAL"/>
								<fx:Object label="Yahoo Hybrid" value="YAHOO_HYBRID"/>
								<fx:Object label="Yahoo Road" value="YAHOO_ROAD"/>								
								<fx:Object label="Nokia HERE TERRAIN" value="HERE_MAP_TERRAIN"/>
								<fx:Object label="Microsoft Hybrid" value="MICROSOFT_HYBRID"/>
								<fx:Object label="Microsoft Hybrid" value="MICROSOFT_HYBRID"/>
								<fx:Object label="Microsoft Aerial" value="MICROSOFT_AERIAL"/>
								<fx:Object label="Microsoft ROAD" value="MICROSOFT_ROAD"/>
							</s:ArrayList>
						</s:dataProvider>
				</s:ComboBox>
		</s:HGroup>
 
 
				<flex:FlexMap showControls="true" id="myMap"
									 width="100%" extent="-9.4384955,-40.3835929,12,0,0" height="100%" 
									 draggable="true" provider="HERE_MAP_HYBRID" 
									 zoom="12" center="-9.4384955,-40.3835929,12,0,0"
									 doubleClick="myMap.map.onDoubleClick(event)" />
</s:Application>

Viu que é fácil?

O código fonte está disponível no Github, dê um fork. O mapa para o Google ainda está em desenvolvimento.

Apache Flex/ Flex/ Notícias/ Open-source

Apache Flex é uma tecnologia de interfaces que vai continuar revolucionando pelos próximos 10 anos

apache_flex_logo

Trabalhar em um grande projeto open-source é um desafio grande, em especial com o projeto Apache Flex que segue um forte legado de satisfação para quem desenvolve assim também para quem tem a solução criada por ele.

Faz aproximadamente 14 meses, desde que o projeto foi doado para fundação Apache e contribuições não param de chegar, só para você ter uma idéia é uma média de 140 emails recebidos por hora na lista de desenvolvedores, discutindo sobre vários aspectos o que a tecnologia ofereceu e o que ela está para oferecer.

Flex foi, é e provavelmente continuará sendo a melhor tecnologia de interfaces que o desenvolvedor já conheceu, sem tirar nenhuma palavra dessa sentença, o único erro da tecnologia foi ficar presa no tempo e na caixinha de areia do Flash Player.
Nesse artigo, eu quero apresentar para você, desenvolvedor Flex que vem acompanhando esse blog desde 2004 o que torna hoje o projeto Apache Flex um futuro tecnológico brilhante além de seu tempo. Eu já previa isso aqui.
Adobe Flex e seu passado

O Flex veio em um período que linguagens de interface eram o elo fraco de uma aplicação desktop ou web, e ele supriu essa necessidade, inspirando várias outras tecnologias de sua época, devido sua facilidade de criação e alto acabamento no resultado.

Se antes você escrevia em MXML/Actionscript e o produto final era um SWF que rodava em uma engine chamada Flash Player,  então competentemente ficávamos em nossa zona de convorto, sem esperar que alguma outra tecnologia pudesse fazer alarde e ultrapassar.

O Flash Player para ser popular precisa do navegador e o navegador para ser completo precisa ter suporte ao Flash Player, Isso era legal de se falar até 2008, só que antes disso, quem lembra do Shock wave, do real Player ? Todos estavam fadados ao desuso por que chegaram em uma zona de conforto que não viram que poderiam ficar para trás ao longo dos anos.

A era do Flash Player

É ai onde entra o fracasso atual do Flash Player em relação a esse aspecto.

Até hoje o Flash Player é odiado, melhor! É onde o flash player perde em popularidade, já que quando não se segue um padrão dos navegadores, que são a janela para a internet, a coisa começa a ficar estranha. Mais da metade de quem usa a internet no mundo dá a mínima para o player ou até desconhece seu uso, embora até 2009 seu uso estava presente em 98% dos navegadores.

De longe o Flash Player foi e foi até os dias de hoje o plugin mais famoso de todos os tempos, porém com seu sucesso, veio sua desgraça, uma vez que os navegadores viram que ele estava ofuscando seus brilhos, o que resultou em um ato colaborativo de vários CEOs do mundo em colocar de vez um ponto final no Flash Player

Quando Steve Jobs escreveu seus pensamentos sobre o Flash Player, foi a gota d’àgua de “se toca” para a Adobe atualizar e manter o Flash Player um estado de arte, só que ao invés disso o fracasso do CEO da empresa, respondeu apenas com alguns argumentos que não fizeram tanto alarde. Afinal a grande voz de Steve ecoou por toda a internet e tudo que era movimento relacionado ao padrão “Não open” saiu por dentro à fora e virou moda.
Infelizmente a tecnologia Flex estava atrelada apenas o Flash Player, o que acabou desmotivando a Adobe a encerrar a linha do Flash Player para dispositivos móveis para o Android, tanto é que hoje não existe mais oficialmente na Play Store, apenas a Blackberry com seu tablet “Playbook”, possuem ainda o Flash Player instalado.
Quando se perde o seu principal playground, você se desespera e desiste de uma tecnologia fantástica para o futuro de aplicações. Essa história é a mesma para várias outras empresas que ficaram presas em seu ambiente fechado e controlado e que acabou não entendendo que a internet anda a passos largos e de dificil controle.
Adobe Flex open-source

Foi ai que o Flex teve um final na história de participações da Adobe, sendo graciosamente doado para fundação Apache. Antes disso ela abriu o projeto, sendo open-source por vários anos, só que ninguém se interessava pelo projeto open-source, já que tudo era controlado pela Adobe, um envio de um simples bug para conserto, demorava vários e vários meses para ser solucionado. Algo precisava mudar.

No final de 2011 no apagar das luzes, A Adobe viu que não poderia deixar o produto morrer e doou para a fundação Apache, sábia decisão dela, afinal são mais de 1 milhão de desenvolvedores que usavam o Flex como principal tecnologia de front-end.

 

Nasce o Apache Flex

Ao contrário do que muitos achavam, o Apache Flex está vivo e muito ativo, com a recente doação final do Falcon e FalconJS o projeto começa a modificiar suas entranhas para não ficar dependente apenas do Flash Player, que esse pode ter seus (anos) contados.

Começamos incubados e já com várias releases, todas até hoje foram correções de bugs existentes e remoção de software proprietário que fazia parte do SDK, já que o projeto é sob licença apache, não se pode ter código de terceiro que seja necessário o pagamento para utiliza-lo.
Além de ser ativo, o projeto conta hoje com um time multi-disciplinar de diferentes partes do mundo, apenas um Brasileiro está no time, que é esse que escreve, porém você também pode fazer parte do time, basta colaborar ativamente para alguém te chamar e fazer parte da lista de committers, onde você pode submeter seus próprios patchs para correções e colaborações.

A última release 4.9 acompanhamos a atualização para o Java 7, assim o SDK continua progredindo junto com vários outros softwares open-source que o ajudam.

Futuros lançamentos

Hoje, estamos trabalhando no novo compilador, o FalconJS, é bem igual ao Falcon, que está em beta no Labs da Adobe, é o chamado comercialmente de “Actionscript compiler 2.0”.

A diferença é que com o FalconJS, você poderá escrever Actionscript/MXML e gerar Apps totalmente abertas ao HTML5/CSS3/Javascript, sem ficar mais dependente do Flash Player.

Queremos incluir esse novo compilador nas próximas releases da 5.x em diante. É um trabalho árduo, já que todo o compilador trabalha em um modo de dependência de objetos do Flash Player, o que é diferente do lado HTML que depende do Javascript e embora o Actionscript compartilhe da especificação ECMAScript, ambos possuem suas particularidades.

O que querendo ou não o Actionscript ainda é mais avançado que o Javascript, em especial para tipação, construtores de classes, etc.

Existe muito a se fazer, porém uma grande barreira foi quebrada, e até eu mesmo além de outros da equipe estávamos com pouca crença que o projeto saísse da mesmice de consertos, remendos e virassem um projeto base na fundação ao invés de ser apenas um protagonista incubado.

Qual o prazo para essas novas funções

Diferente de projetos que depende  de ações para serem valorizadas, o clico de release é mais lenta, as decisões são melhores tomadas, mas até o final de 2013 teremos um projeto sólido que pode ajudar muito desenvolvedor a migrar ou aperfeiçoar seus atuais projetos Flex.

Atualmente já temos em aplicações simples, escritas em Actionscript a saída em puro Javascript, em apenas 1 mês de testes, o que remete a um tempo bastante hábil para um projeto open-source sair do papel/idéia e virar realidade.

Muito do que foi aprendido e testado no FalconJS, veio do Jangaroo, é bom aprender com quem já está à um tempo no mercado. E boa parte das contribuições estão vindo do pessoal também do Jangaroo.

Apache Flex é um projeto cativante que vai continuar sendo utilizado e melhorado para os próximos 10 anos ou mais, desde que ele nunca mais cometa o crime de ficar atrelado apenas o Flash Player ou ao Adobe AIR, ele será multi-plural, você vai escrever e ficar dependente em Actionscript /MXML que continuaram sendo suas linguagens oficiais, só que ao invés disso o produto final passará a ser executado em várias plataformas, Desktop/Web/Mobile/Gadgets/etc. que aparecerem ao longo do tempo.

 

Apache Flex/ Flex

Apache Flex 4.9 SDK liberado para download

apache_flex_logo

Acabamos de liberar mais uma versão do Apache Flex SDK a 4.9 com ela algumas mudanças substanciais e necessárias, em especial ao Mustella.

Dentre as mudanças mais aguardada era a possibilidade de compilar usano o Java 7, agora é possível e o TLF (Text Layout Framework) que passa a ser parte do SDK.

Assim como anunciei aqui, o Apache Flex agora não deixa de ser apenas projeto incubado e passa a ser um projeto que fica na mesma sala do Apache Tomcat.
O futuro do SDK

Tem muito rumor falso que o Flex já se foi, ou está fraco, tudo isso acontece em qualquer área, a diferença é apenas que o Flex agora é projeto vindo e fornecido por uma  fundação sem fins lucrativos, ou seja teremos mais colaboradores, menor ciclos de releases e mais qualidade de código.

Estamos preprando algumas mudanças para a versão 5.0 que terá como alvo principal o suporte ao Flacon compiler, já que o compilador foi doado e faz parte do projeto.

Dentre as mudanças está a adaptação do SDK para o novo compilador, dando suporte alguns elementos MXML, incorporação de novos componentes vindos da comunidade.

Estamos trabalhando em um novo site para o projeto que vai ao ar em breve.

FalconJS

O FlaconJS ainda está em estágio inicial, que é a possibilidade de escrever em Actionscript e ele gerar CSS,HTML e Javascript. Para suas Apps, porém é bastante limitado no atual momento, já que consegue suportar apenas Classes em Actionscript para Javascript. Devido sua similaridade entre ambas.

O suporte a MXML e 80% do código do SDK ser suportado no FlaconJS é trabalho para até ano que vem, quando novas releases acontecerão.

 

IDE de desenvolvimento com suporte

A Adobe continua a produzir e aprimorar o Flash Builder para dá suporte ao Apache Flex 4.9 SDK, visto isso quem tiver comprado o Flash Builder 4.5 tem direito a um serial e baixar o Flash Builder 4.7 gratuitamente. A única coisa é você baixar o SDK e instala-lo.

Adobe Flash Builder 4.7
PowerFlasher FDT
Flash Develop
Intellij IDE

 

Faça o download do SDK

 

Apache Flex/ Flex

Apache Flex deixa de ser incubado e passa a ser oficial

apache_flex_logo

apache_flex_logo

 

É oficial, e uma boa maneira de começar 2013 com o projeto Apache Flex sendo um projeto oficial da fundação, devido a diversas contribuições e a frenética troca de mensagens na lista o projeto continua firme e forte.

Depois de votarem no final de Novembro o projeto entrou em um novo estágio e passa agora a ficar na mesma fileira de importância como o Apache Tomcat ou Apache Ant.

Trago mais notícias para vocês no próximo ano.

 

Apache Flex/ Flex

Novidades sobre o Apache Flex

apache_flex

Algumas mudanças tímidas porém de grande impacto ocorreram na o projeto Apache Flex, segue uma lista delas.

Mudanças de 01 de Janeiro a 30 de Janeiro de 2012.

* Já temos uma logo oficial como mostrar acima a logo escolhida para o novo projeto e a nova cara do framework que será publicado sob o dominio da fundação Apache.
* O código fonte do SDK já está quase pronto para ser migrado para o SVN do projeto Apache. A demora é em relação a conteúdo protegido por direitos autorais, o que acarreta em um grande volume de mudanças a serem realizadas.

* Nossa lista de mensagens já ultrapassa a marca de 3.5k e-mails trocados nesse período, mais e mais desenvolvedores estão vindo para o projeto.

* O novo compilador já estará junto ao SDK, ele vai compilar 2x ou 3x mais rápido que o compilador atual, e sua função de auto increment está incrível.

* Um blog já está montado e será um canal de comunicação dos PPMC para o pessoal que acompanha o projeto.

Teremos mais novidades no segundo trimestre desse ano, quando soltaremos algumas especificações novas e documentação já sob dominio da fundação Apache.

Apache Flex

Flex é aceito na fundação Apache

Uffa! No apagar das luzes de 2011, a fundação Apache aprovou o pedido da Adobe para incubar o Flex como projeto open-source.

Eu sou o único brasileiro no meio do SDK que irá ajudar a manter organizado o SDK daqui para frente, você também pode se tornar um colaborador, enviando bugs, criticas na página oficial do projeto que entrará no ar ainda nesse trimestre.

Tem muito trabalho pela frente, mover código para o SVN da fundação apache, arquivos de ajuda, documentação, a idéia é de fato ter um SDK 100% open-source, fora das garras de uma unica empresa.

Em contra partida, aproveito a ocasião para pedir para vocês assinarem a lista de discussão na fundação Apache.

Basta enviar um e-mail para flex-dev-subscribe@incubator.apache.org e você já está dentro da lista.

O que eu vejo daqui para frente?

Novos componentes estão sendo preparados pela própria Adobe, para ser a primeira contribuição em massa para o SDK, sob o controle da fundação Apache.

Apache Flex/ Flex

Flex SDK submetido para fundação Apache

Pelo andar da carruagem, o Flex em fim começa a andar com suas próprias pernas. E eu fico feliz com a notícia de que o SDK não vai morrer não mão de uma dúzia de pessoas que decidiram seguir apenas um caminho de seguir com a maré ao invés de continuar progredindo com seu próprio software.

Recentemente teve o Adobe Flex Summit, diferente de todos os summits que eu estive, nesse eu não consegui participar presencialmente. Mais pelo que eu fiquei sabendo foi muito bom a receptividade de quem foi.

Foram diversas notícias, a mais geral é que a Adobe ARREGOU para o HTML5, essa você já está sabendo pelo Twitter, Blogs post, Forum e/ou listas. Outra má idéia é sobre o fechamento do projeto Adobe Flash Catalyst, FELIZMENTE ela caiu a ficha que uma ferramenta feita para monetizar um SDK open-source ao extremo não deu certo; Agora eu fico imaginando, o que ela poderia ter feito com o $$ gasto para criar o Flash Catalyst, imagine a IDE que teriamos.

Falando em IDE o Flash Builder agora não tem mais interface gráfica, drag e drop dá adeus aos sobrinhos. Na minha opinião foi a melhor mudança para quem não tem saco algum de usar aquilo, agora para quem é iniciante é uma grande perca na IDE. Ao contrário do Google que quer melhorar mais ainda o Drag N Drop da IDE para criar Apps para Android, Adobe não foi gentil ou sábia em dar uma melhorada, ela simplesmente abandona.

Em fim, mudanças boas, eu até estava desmotivado, e continuo apenas com a Adobe, que jogou anos de investimentos de seus clientes pelo vento e apostou em uma tendência, Que a Adobe continue fazendo seu melhor, criar softwares para agências de propaganda, por que para enterprise ela perdeu o respeito total.

Um dos aspectos bem bacanas fora essa raiva estampada pela Adobe e sua maneira ingênua de só faturar com postscript, Ela vai fazer um excelente movimento em definitivamente doar o SDK para a fundação Apache.

Você ver isso como um grande problema?

Imagine comigo o Eclipse IDE só é hoje o que é, por que foi doado, entre outros produtos que existem por ai no mundo open-source. O diferencial se faz quando é doado o SDK e clientes o mantém, não é atoa que o Eclipse tem mais de 120 mil plug-ins para ele.

Qual próximo passo? Daqui para o dia 23 deste ano, a fundação apache vai analisar e verificar a proposta da Adobe para incubar o projeto, se ele for aceito, Aleluia! Se não for? Bom só a Adobe pode se pronunciar.

Depois que for aceito, existe um time seleto de pessoas que irão iniciar o processo de analisar e comitar código de colaboradores, você pode ser um colaborador do SDK e enviar patchs, correções.

Dentre os primeiros committers, eu estou entre eles, e farei o melhor para ajudar o SDK e a uma tecnologia que eu vejo que está muito além da realidade atual em termos de qualidade e mantenabilidade.