DClick

Arquivos da categoria "Flash Platform"

Porque a plataforma Flash pode alavancar a evolução da Interface dos aplicativos ricos

Categorias relacionadas: Flash Platform, Flex, RIA
Twitter!

Introdução

 
A Internet está em pleno desenvolvimento. Do BitTorrent à Folksonomia o número de inovações que vimos surgir nos últimos tempos é enorme. Isto é o que torna a internet apaixonante para muitos, principalmente quando estes vislumbram a oportunidade de criar algo como o YouTube e ficar milionário de uma hora para outra.

Em tempos de Internet um dos fatores mais importantes da inovação é a utilização da tecnologia da maneira correta. E no que diz respeito às Interfaces dos Aplicativos Ricos, a Plataforma Flash talvez seja esta tecnologia.

Leia o artigo completo »

Por Beck Novaes em 26/March/2007
Nenhum Comentário »


No Translations

Adobe Flex Coding Guidelines (English version)

Categorias relacionadas: ActionScript, English, Flash Platform, Flex, Notícias
Twitter!

As my commitment to community I’m releasing, with DClick support, our Adobe Flex Coding Guidelines, a document about Flex (MXML and ActionScript) coding conventions that we use on a regular basis.

The objective is clear: provide a common and consistent language to help code comprehension between developers. The practices established in this document are based on Java conventions, Flex 2 SDK and DClick team experience (including myself).

By releasing this document, the idea is to help the community improve their Flex code by using coding conventions as well and hear feedback
from community to continuously improve this document, that by now is a community asset.

I’ll be happy to have volunteers to form a committee or something to evolve this project further.

This way, comments on this document (including the best practices) are very welcome! Involve yourself at flexcoders thread, or at this post comments.

Adobe Flex Coding Guidelines v1.2 (English).pdf

Adobe Flex Coding Guidelines v1.2 (Portugues).pdf

Por Fabio Terracini em 13/February/2007
30 Comentários »


No Translations

Entendendo o Tamarin, Adobe e Mozilla

Categorias relacionadas: AJAX, ActionScript, Flash Platform, Notícias
Twitter!

O texto a seguir é parte de um e-mail que eu enviei para o time da DClick explicando sobre o projeto Tamarin, no dia seguinte ao seu lançamento.

A Adobe recentemente liberou a ActionScript Virtual Machine como open source sob o projeto Tamarin da Mozilla. Isso causou uma certa confusão e logo notícias como “Flash Open Source”, “Maior integração entre Flash e Firefox” entre outras começaram a ser divulgadas, inclusive por agências de nome.

Vamos esclarecer o que isso significa. As aplicações feitas com o Flash e Flex no fundo são aplicações em uma linguagem chamada ActionScript, atualmente na versão 3. Aliás, essa versão 3 do ActionScript foi lançada recentemente e é base para o Flex 2. A principal vantagem do ActionScript 3 em relação à versão anterior é a performance, que tem uma ganho estrondoso. Algumas tarefas ficaram 1000% mais velozes.

O ActionScript é baseado em uma especificação chamada ECMAScript, que também é base do JavaScript, linguagem utilizada em aplicações web em conjunto com HTML para dar dinamicidade e interação à aplicativos web tradicionais. Aplicações em AJAX, por exemplo, dependem completamente do JavaScript.

O que a Adobe fez foi liberar como open source um pedaço do Flash Player, a ActionScript Virtual Machine, que é responsável por interpretar código ActionScript e transformar em instruções de máquina (JIT, Just In Time Compiler). E como de certa forma o ActionScript e o JavaScript tem suas semelhanças (ambos baseados no ECMAScript), a Mozilla pode utilizar o Tamarin para melhorar a performance do interpretador de JavaScript de seus produtos, como o Firefox.

Assim, sucintamente, em breve teremos um Firefox muito mais ágil para interpretar códigos JavaScript, ou seja, poderemos ter aplicações em AJAX muito mais velozes que as de hoje em dia. Inclusive partes do Firefox e suas extensões são muito dependentes do JavaScript terão ganhos de performance. A Adobe e Mozilla agora também trabalharão em conjunto para o desenvolvimento da próxima especificação do ECMAScript.

Por Fabio Terracini em 1/February/2007
2 Comentários »


No Translations

Participe do desenvolvimento do Flex

Categorias relacionadas: Flash Platform, Flex, Notícias
Twitter!

Ultimamente tem se feito muito alarde em relação ao Flex 3 (isso, três!) pois a Adobe liberou a inscrição pública para o prerelease do Flex 3. Vamos esclarecer de que ainda não existe uma versão em alpha do Flex 3. Um dos objetivos dessa inscrição é selecionar profissionais para a Adobe colher feedback sobre o desenvolvimento do Flex, para onde a Adobe deve direcionar seus esforços.

Contudo, já é muito bem possível fazer parte do desenvolvimento do Flex participando dos fóruns de Flex no site da Adobe, da lista em inglês flexcoders, participando dos blogs, interagindo diretamente com o time do Flex e participando de pesquisas já disponíveis na comunidade:

Flex User Survey: Help the Flex team plan for the future

Flex Charting Survey: Possible chart types and enhancements for a future release

Flex Community Survey: Help Flex evangelists and activists to focus their effort.

Ou ainda a pesquisa sobre a documentação do Flex que houve no passado.

E você? Já ajudou a Adobe a ajudar você? :-)

Por Fabio Terracini em 31/January/2007
Nenhum Comentário »


No Translations

“RemoteObject” no Flex 2 com PHP e com Java sem Data Services

Twitter!

É possível no Flex 2, hoje, consumir objetos do PHP tal como era feito no Flex 1.5 com o uso do AMFPHP, assim como é possível consumir objetos Java com o OpenAMF sem a necessidade do Flex Data Services.

Para consumir objetos Java diretamente do Flex 2.0 usa-se o componente RemoteObject, que implementa um conjunto de funcionalidades - entre elas a serialização ("tradução") dos objetos - do Java para o ActionScript 3.0. No Flex 2 o RemoteObject troca informação com o servidor utilizando um formato chamado AMF3 (ActionScript Message Format 3), de forma que ele pode conversar com qualquer servidor que também saiba receber e enviar objetos (bem como fazer sua serialização) em AMF3. O Flex Data Service é uma aplicação J2EE para comunicação entre a camada de apresentação feita em Flex e a camada de negócios em Java de alta performance, que além de "falar" em AMF3 e ter o RPC (Remote Procedure Call) via RemoteObject oferece funcionalidades de Messaging (colaboração, push de dados, etc) e de Data Management (sincronização de objetos, clientes off-line, etc). O Flex também pode se comunicar com serviços em SOAP (WebServices) ou via HTTP.

Contudo, nem sempre é possível utilizar um servidor capaz de se comunicar em AMF3, como o Flex Data Services ou o ColdFusion.

A versão anterior do Flex (versão 1.5) era baseada no ActionScript 2.0, cujo formato para troca de dados do RemoteObject era o AMF0 (não existe AMF1 nem AMF2). Para esse formato de troca de mensagens há outros servidores que podem ser utilizados, como o OpenAMF (para Java) e o AMFPHP (para PHP). O ColdFusion já conversava nativamente com o Flex 1.5, assim como faz com o Flex 2.

É esperado que essas tecnologias (OpenAMF e AMFPHP) sejam atualizados para se comunicar também em AMF3 e conversar nativamente com o Flex 2, mas ainda assim é possível utilizar as versões existentes do OpenAMF e AMFPHP que se comunicam apenas via AMF0 com o Flex 2. O que precisa ser feito, basicamente, é dizer para o Flex que os dados que serão trocados estarão no formato AMF0, e não no formato AMF3.

Como o RemoteObject só conversa em AS3, podemos utilizar a classe flash.net.NetConnection que igualmente pode ser utilizada para se comunicar com o servidor e contém uma propriedade (objectEncoding) indicando o encoding dos objetos trocados com o servidor. Essa variável é static e os possíveis valores para ela estão definidos na classe flash.net.ObjectEncoding:

NetConnection.defaultObjectEncoding = ObjectEncoding.AMF0;

Assim, podemos criar um novo serviço regido pela classe NetConnection:

public var service:NetConnection = new NetConnection();

E definir qual o endpoint ele acessará:

service.connect("http://localhost:8080/TesteAMF/amfgateway");

A partir daí, basta usar o método call() de nosso serviço (que é um NetConnection) para chamar os métodos no servidor. Nesse momento vamos também definir os responsáveis por tratar a resposta do servidor, utilizando a flash.net.Responder:

service.call("Teste.getArrayList", new Responder(resultHandler, faultHandler));

Abaixo um exemplo completo em Flex 2.0 que se consome uma classe Java via AMF0:

XML:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application
  3.     xmlns:mx="http://www.adobe.com/2006/mxml"
  4.     initialize="initApp()">
  5.  
  6.     <mx:Script>
  7.     <![CDATA[
  8.     import flash.net.ObjectEncoding;   
  9.     import flash.net.NetConnection;
  10.     import mx.collections.ArrayCollection;
  11.     import mx.controls.Alert;
  12.    
  13.     // O serviço poderá ser chamado de qualquer lugar.
  14.     public var service:NetConnection = new NetConnection();
  15.    
  16.     [Bindable]
  17.     public var meses:ArrayCollection;
  18.        
  19.     public function initApp():void
  20.     {
  21.         // define o encoding para amf0
  22.         NetConnection.defaultObjectEncoding = ObjectEncoding.AMF0;
  23.        
  24.         // Conecta no servidor amf. O endereço é o "endpoint" do RemoteObject
  25.         service.connect("http://localhost:8080/TesteAMF/amfgateway");
  26.     }
  27.    
  28.     public function getArrayList():void {
  29.         // Chama o método getArrayList da classe Teste.
  30.         // Define um handler para o o resultado e um para a falha.
  31.         service.call("Teste.getArrayList", new Responder(resultHandler, faultHandler));
  32.     }
  33.    
  34.     public function resultHandler(result:Array):void
  35.     {
  36.         meses = new ArrayCollection(result);
  37.     }
  38.  
  39.     public function faultHandler(fault:String):void
  40.     {
  41.       Alert.show('Erro');
  42.     }
  43.  
  44.     ]]>
  45.     </mx:Script>
  46.  
  47.     <mx:RemoteObject />
  48.     <mx:ComboBox dataProvider="{meses}" />
  49.    
  50.     <mx:Button buttonDown="getArrayList()" label="Pegar dados do servidor" />
  51.    
  52. </mx:Application>

É possível até mesmo conectar à serviços disponíveis em uma instalação do Flex 1.5. Assim, novas aplicações podem ser desenvolvidas em Flex 2 para aproveitar os novos recursos de interface, até o servidor ser efetivamente migrado para o Flex Data Services.

Esse é um exemplo simples de integração, uma prova de conceito. Boa parte da lógica de conexão com o serviço remoto pode ser encapsulada em uma classe para ser mais fácil de trabalhar. Já há um componente muito interessante chamado RemoteObjectAMF0 que visa justamente isso.

A prática de consumo e troca de objetos é encorajada em relação ao WebService e à serviços HTTP. Além dos ganhos de performance e escalabilidade, há troca (e serialização) dos objetos nativos das linguagens. Prefira o uso do RemoteObject, aproveite os benefícios do AMF.

Por Fabio Terracini em 28/November/2006
8 Comentários »


No Translations

Artigo de Flex na revista MundoJava

Categorias relacionadas: ActionScript, Flash Platform, Flex, Java, RIA
Twitter!

Capa da revista Mundo Java, ed 20. Na revista MundoJava desse bimestre (nov/dez, 20ª ed) foi publicado um artigo sobre Flex 2 que eu e o Rafael Martinelli escrevemos! É o artigo da capa da revista!

O objetivo é mostrar para os programadores Java a tecnologia Flex, como ela funciona e os problemas que ela resolve. No artigo, além de explicações conceituais, também criamos uma pequena aplicação em Flex que consome dados no formato XML fornecido pelo Java.

É uma ótima exposição para a tecnologia e tenho certeza que dará um bom resultado!

O projeto utilizado no artigo pode ser baixado aqui.

Por Fabio Terracini em 17/November/2006
Nenhum Comentário »


No Translations

Produtividade: Wizard para gerar aplicações

Categorias relacionadas: ActionScript, ColdFusion, Flash Platform, Flex, Notícias, RIA
Twitter!

A Adobe disponibilizou há algumas semanas uma ferramenta (App Gen Wizard) no Flex Builder (baixado junto com o ColdFusion MX 7 Flex Connectivity Updater), que possibilita, através de um wizard, gerar uma aplicação de Master/Detail de ColdFusion com o Flex 2.

O Flex Builder conecta-se no servidor ColdFusion através do RDS (Remote Development Services), vê as datasources cadastradas no ColdFusion Server, lê a estrutura de tabelas, e com algumas configurações (qual é a página de master, e qual é a de detail, como elas se relacionam, etc), e gera uma aplicação, em ColdFusion e Flex, funcionando!

Damon Cooper, diretor de engenharia do ColdFusion fez alguns posts em seu blog sobre a ferramenta. Nesse ele apresenta a ferramenta, e neste aqui é possível ver um vídeo de mais ou menos 11 minutos com um dos engenheiros demonstrando a ferramenta, ao construir uma aplicação com o wizard. Além de muita produtividade com as linguagens, a Adobe tem se preocupado bastante em oferecer mais produtividade em suas IDEs.

Por Fabio Terracini em 26/May/2006
1 Comentário »


No Translations