Esse artigo faz parte da revista Java Magazine edição 68. Clique aqui para ler todos os artigos desta edição

AN style="FONT-FAMILY: Verdana; BACKGROUND: white; COLOR: red; FONT-SIZE: 10pt; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">

PAN>

: windowtext; FONT-SIZE: 10pt" lang=EN-US>

>

Serve para aqueles que desejam aprimorar seus sistemas em Java, aplicando uma interface nativamente rica e bonita utilizando o Adobe Flex, sem se preocupar com incompatibilidades de browsers e tampouco de sistemas operacionais.

 

Em que situação o tema é útil:

O conteúdo deste artigo é útil quando há a necessidade de criar uma interface para o usuário final mais interativa, seguindo os princípios de uma interface rica (RIA). Também apresenta formas de construir uma interface que possa ser executada tanto na Web quanto no Desktop sem muito esforço, e principalmente sem se preocupar com a incompatibilidade dos browsers. Para isso, é apresentado o Adobe Flex, que é uma solução para a camada de apresentação, composta por componentes visuais interativos, e componentes para consumo de dados através de diferentes tipos de serviços levantados em uma aplicação Java.

 

Interfaces de qualidade com Adobe Flex:

O Adobe Flex é um framework open source construído utilizando classes ActionScript para a construção de interfaces ricas que podem ser executadas na Web através do Flash Player, e no Desktop através do runtime AIR. O Adobe Flex nativamente dá às aplicações uma interface de qualidade, que trazem benefícios tanto para o usuário final quanto para o desenvolvedor.

Através do Adobe Flex, o desenvolvedor passa a criar de forma Orientada a Objetos suas interfaces utilizando a linguagem tipada e dinâmica ActionScript. Além disso, existem diversas IDE para auxílio ao desenvolvimento.

O Flex acessa os dados através de HTTP, web services, ou então através de um formato binário e compacto executado sobre o HTTP chamado AMF, trocando objetos entre o Java e o Flex utilizando o componente RemoteObject. Este formato inova as aplicações web adicionando funcionalidades difíceis de serem encontradas em outras soluções, pois entre a aplicação cliente e o servidor é trafegado apenas objetos tipados, e não textos como uma interface baseada em HTML (HTML, JavaScript e css).

 

 

O Adobe Flex é um conjunto de classes ActionScript 3.0 (AS3) que juntas formam um framework para a construção de interfaces ricas baseado na plataforma Adobe Flash. Uma interface construída com o Flex pode ser executada tanto no browser através do Adobe Flash Player, ou no Desktop através do Adobe Integrated Runtime (AIR). As runtimes que suportam o Flex estão presentes na maioria dos browsers para os sistemas operacionais Windows, MacOSX e Linux.

De acordo com a Adobe, grandes players de mercado como a Oracle, IBM, SAP, Wilson, SkyGrid entre outras, têm aplicações construídas com o Flex como solução para a camada de apresentação. Aqui no Brasil, já existem diversas empresas que desenvolvem aplicações corporativas utilizando o Adobe Flex, como por exemplo, DataSul, DClick, Petrobras, Integritas, Itaipu Binacional, Apollo-Ti e outras.

Para desenvolver uma RIA utilizando o Flex, é necessário apenas o SDK (Flex SDK) que está disponível para a comunidade como software open source sob a Mozilla Public License (MPL). O SDK é composto por ferramentas de compilação construídas em Java (compc e mxmlc, como o javac do JDK), ferramentas para debug e o próprio framework Flex, que contém Componentes Visuais, Formatadores, Validadores e Componentes de Efeitos sonoros e visuais.

Para acelerar o desenvolvimento, a Adobe fornece o Adobe Flex Builder, uma IDE construída sobre a plataforma do Eclipse, com recursos como editor WYSIWYG, profiling e debug. A codificação de um código Flex (AS3 e MXML) é muito similar à codificação de um sistema em Java. Atualmente é possível encontrar IDEs para o Flex de código aberto e/ou de uso livre baseadas no NetBeans e Microsoft Visual Studio. A Adobe também fornece uma suíte de aplicações integradas que colaboram com o desenvolvimento de interfaces com Flex separadas em ferramentas para designers e para programadores.

Introdução ao ActionScript 3.0 e o MXML

O Flex tem como linguagem de programação predominante o ActionScript 3.0 (AS3). É uma linguagem orientada a objetos derivada da especificação ECMAScript (padronização internacional para linguagem de programação em scripts). Sua sintaxe é muito semelhante ao ECMAScript que roda em browsers (também chamada JavaScript), mas destaca-se pela tipagem estática opcional e OO baseada em classes incluindo herança e interfaces – o que também torna a linguagem mais próxima de Java. Somando tudo, ActionScript parece um híbrido de JavaScript e Java. A Tabela 1 exibe um comparativo entre o Java 5 e o ActionScript 3.

 

 

ActionScript 3

Java 5

Empacotamento de classes

.swc

.jar

Herança

class Cliente extends Pessoa{…}

class Cliente extends Pessoa{…}

Declaração de variáveis e inicialização

var minhaStr:String = "Olá";
var meuDate:Date = new Date();
var i:int;
var meuNumber:Number;

String minhaStr = "Olá!";
Date meuDate = new Date();
int i;
double meuNumber;

Variáveis sem tipo específico

var minhaVar:*;

n/a

Igualdade estrita (sem conversões)

===
!==

n/a

Declaração de constantes

const NU_MAX:int = 999;

final int NU_MAX = 999;

Checagem de tipo de dado

Objeto é dinâmico: Verificado em tempo de execução.

Objeto não dinâmico: Verificado em tempo de compilação.

Verificado em tempo de compilação.

Operador de checagem de tipo de objeto

if (meuObj is String){}

if (meuObj instanceof String){}

Casting de objetos

Com o operador as:

var minhaStr:String = meuObj as String;

*Se o cast não for possível, a variável minhaStr irá ficar null.

Outra maneira de fazer cast:

var minhaStr:String = String (meuObj);

*Se o cast não for possível, irá ocorrer uma exception do tipo “type coercion failed”.

minhaStr = (String) meuObj;

*Se o cast não for possível, irá ocorrer uma ClassCastException.

Tipos primitivos

Todos os tipos primitivos no ActionScript são objetos:

Boolean, int, uint, Number, String

Tipos não-OO, mas contando com autoboxing para facilitar integração:

byte, short, int, long, float, double, boolean, char

Arrays

var array:Array = new Array();

var array:Array = []; 

int array[];

array = new int[4];

Packages

package com.xyz{

class MinhaClasse {…}

package com.xyz;

class MinhaClasse {…}

Níveis de acesso

public, private, protected,
internal (default)

...
Quer ler esse conteúdo completo? Tenha acesso completo