26 fevereiro, 2007

Flex: Primeiras perguntas que fiz quando me apresentaram ao Adobe Flex.

Quando você, seja um profissional de TI ou apenas um interessado em tecnologia, toma contato pela primeira vez com uma novidade, logo pensa: Como poderei utilizá-la? E foi exatamente o que aconteceu comigo quando me deparei com a matéria de capa da revista Mundo Java edição 20 que trazia “Adobe Flex 2. Crie aplicações para a Web com interface rica, amigável e integrada a aplicações Java existentes.” Pronto, foi aí que meu interesse começou, porém três perguntas me vieram à cabeça antes de ler a matéria:

O que é Flex?
O que um usuário necessita para “rodar” uma aplicação em Flex?
Quais os softwares que utilizarei para programar e “rodar” a aplicação no servidor?

Nos parágrafos abaixo tentarei sanar essas “possíveis dúvidas padrão” através de consultas que fiz a diversas fontes distintas.

O que é Flex?

Adobe Flex surgiu em 2004, atualmente está em sua segunda versão, foi desenvolvido pela então Macromedia (antes de ser adquirida pela Adobe) e é o nome dado ao um grupo de tecnologias voltadas ao desenvolvimento e distribuição de aplicações RIA (Rich Internet Application) baseadas na plataforma Flash.

A definição para o Adobe Flex vinda do Wikipedia é ótima, porém ainda pode ficar nebulosa, para isso precisamos saber também o que é RIA. RIA é a sigla para Rich Internet Application, ou seja, traduzindo ao “pé da letra”, aplicações ricas para Internet.

Hum...

RIA são aplicações WEB, ou seja, acessadas via um “browser” (navegador), que possui funcionalidades que tradicionalmente eram conseguidas em aplicações desktop (softwares convencionais como o Word, Excel entre outros). Essas funcionalidades geralmente tendem a gerar para o internauta maior conforto e facilidade no uso da Internet.

Voltando ao Flex...

Programadores WEB tendem a não possuir conhecimentos e facilidade ao utilizar o Flash para programar, ou seja, possuem um problema de adaptação, principalmente ao “timeline” do Flash, realmente eu sempre tive problemas com isso, está aí o “charme” do Flex, pois tenta minimizar este “problema” propiciando um modelo de programação muito familiar para programadores dos mais diversos níveis de conhecimento, pois a programação deve ser feita em MXML que é uma linguagem de marcação muito similar ao XML além de contar com suporte a ActionScript que é altamente orientada a objetos.

Caso nada disso ainda tenha ficado claro, abaixo estou listando três links onde qualquer um passará a entender qual a diferença de uma aplicação WEB convencional (que todos conhecemos) e uma aplicação RIA feita em Flex:

Flex Store – Loja virtual
http://examples.adobe.com/flex2/inproduct/sdk/flexstore/flexstore.html

Home Locator – Busca de imóveis
http://www.asfusion.com/apps/homelocator/

Real Estate Management System – Sistema de cadastro de imóveis
http://www.asfusion.com/apps/realestate/

Acredito que esses links façam qualquer um, que ainda não tenha contato com Flex, sentir até onde esta tecnologia pode nos levar.

O que um usuário necessita para “rodar” uma aplicação em Flex?

Esta resposta é muito simples para desenvolvedores que já o utilizam, porém para usuários e desenvolvedores que desejam utilizar o Flex como ferramenta para construção de “front-ends” baseados em RIA (Rich Internet Application), às vezes não é tão simples assim.

O usuário necessita apenas do Flash Player 9, ou seja, ultima versão disponibilizada pela Adobe, até a presente data, dentre suas principais novidades destaco:

• Suporte a ActionScript 3.0 que é uma linguagem de programação totalmente orientada a objetos;
• Nova máquina virtual focada em performance e suporte a características de RIA;
• Aceleração e aumento na performance de renderização;
• Melhorias de segurança;
• API para upload e download de arquivos.

Os requisitos de hardware podem assustar um pouco, pois o mínimo recomendado de memória RAM é de 128 MB, porém o Flash Player 9 pode ser instalado tanto no Internet Explorer a partir da versão 5.5 e no Firefox a partir de sua primeira versão. Ah, vale lembrar que já está disponível para Linux também.

Quais os softwares que utilizarei para programar e “rodar” a aplicação no servidor?

Vamos lá, vamos dividir esta pergunta em duas respostas, a primeira é pertinente à programação e distribuição da aplicação, mais abaixo falarei de servidor.

A programação pode ser feita no bloco de notas e depois compilada utilizando o SDK e o framework gratuito do Flex que pode ser baixado do site da Adobe (veja a seção de fontes e links no final do “post”). Repetindo: totalmente gratuito.

Framework do Flex? Sim o Flex possui um framework baseado em componentes que é justamente o que um programador necessita para começar a desenvolver em Flex.

O Flex framework possui suporte a MXML que é a linguagem utilizada para definição de interface e ActionScript 3.0 que é destinada a parte lógica da aplicação.

“A grosso modo, eu faço uma analogia da seguinte forma o MXML é o XHTML e o ActionScript é o JavaScript das aplicações WEB mais conhecidas atualmente. Ah, vale lembrar que esta afirmação é totalmente particular minha, inclusive gostaria de comentários.”

Fazendo parte do framework do Flex ainda temos um conjunto pré-definido de classes destinadas a manipulação de layout, acesso a dados, drag-and-drop e efeitos que possibilitam movimentos e transições realmente muito interessantes.

Para “fechar” as funcionalidades do Flex framework ainda temos o compilador, que segundo a Adobe, pode ser considerado o “coração” do SDK. O compilador tem a função de transformar as aplicações escritas em MXML e ActionScript em um arquivo SWF que poderá ser disponibilizado diretamente em qualquer servidor WEB.

Para facilitar o desenvolvimento a Adobe ainda criou o Flex Builder que é um IDE baseado em Eclipse. Para quem não sabe o que é um IDE, Integrated development environment geralmente consiste em um editor de código fonte integrando um interpretador ou um compilador. Em alguns casos inclui também um “debugger” e uma ferramenta de desenvolvimento visual, ou seja, o Flex Builder é um IDE que pode ser instalado por completo ou simplesmente como um “plugin” para o Eclipse.

Hum... vou explicar rapidamente o que é o Eclipse. Eclipse é uma ferramenta de código livre, ou seja, pode ser baixada, instalada e modificada livremente, cujo seu objetivo é ser uma plataforma de desenvolvimento aberto extensível a diversos frameworks, como é o caso do Flex framework.

O Flex Builder possui duas versões, sendo uma versão “básica” que não inclui o Flex Charting e outra que inclui essa biblioteca.

O Flex Charting é mais um item que faz com que desenvolvedores WEB e internautas “encham os olhos” quando estão utilizando uma aplicação construída em Flex, pois provê gráficos das formas mais variadas como barras, pizza, linhas entre outros. O mais vantajoso de utilizar gráficos é a facilidade de compreensão das informações por parte dos usuários, além é claro que essas informações podem ser provenientes de um banco de dados.

Realmente é enorme a quantidade de vantagens que o Adobe Flex propicia para o desenvolvimento RIA.

Mas e no servidor? O que preciso instalar?

Basicamente nada. Isso mesmo, nada! Pois através de HTTP Services é possível acessarmos dados em XML, ou seja, você pode chamar uma aplicação qualquer, seja ela feita em ASP, .NET, PHP ou Java que gere um XML para ser lido por esse componente. Não sei se você percebeu o que isso significa, mas esse XML pode vir de uma consulta ao banco de dados, ou seja, é possível acessar dados direto do seu SWF.

Mas como a Adobe tem uma estratégia muito bem formatada em cima deste produto, então não deixou de criar mais um facilitador que é o Flex Data Services. Este fornece um conjunto de “serviços” tais como conexão com Objetos Remotos Java utilizando o protoloco AMF (uma integração mais acoplada que pode oferecer uma melhor performance) e o Data Managment fornecedor de serviços como Data Pushing e Data Synchronization.

Mas seria ótimo se não fosse o custo desta implementação, o que muitas vezes pode inviabilizar um projeto destinado a pequenas e/ou médias empresas, pois o custo é bastante elevado, hoje custa 6.000,00 doláres, mais que 12.000,00 reais uma licença para apenas uma CPU com 100 usuários simultâneos enquanto para a versão ilimitada o valor não sai por menos de 40.000,00 R$ por CPU. Realmente é “puxado”.

Ops, mas não existe uma implementação OpenSource do protocolo AMF?

Sim! Existe. Chama-se OpenAmf cujo objetivo é se tornar uma alternativa para o Macromedia Java Flash Remoting além de estender suas funcionalidades. O mais importante é que o projeto está avançando rapidamente e já se tornou uma realidade muito mais viável e de certa forma mais fácil de implementar e utilizar que o Flex Data Services.

Bom, acredito que agora, depois de ler todo o “post”, você já tem base suficiente para começar a desenvolver RIA utilizando o Adobe Flex.

Em breve vou tratar da instalação do Flex SDK e do Flex Builder, além de seus principais componentes.

Abaixo seguem as fontes e seus respectivos links aos quais servirão de base para a realização deste “post”.

Abraços e até a próxima!

Links e fontes:

• Adobe Flex - Wikipedia, the free encyclopedia - http://en.wikipedia.org/wiki/Adobe_Flex
• Rich Internet application - Wikipedia, the free encyclopedia -http://en.wikipedia.org/wiki/Rich_Internet_application
• Adobe - Flex 2 - Web Application Development Software - http://www.adobe.com/products/flex/
• Adobe – Flex 2 – Download do SDK -http://www.adobe.com/cfusion/tdrc/index.cfm?product=flex
• Revista Mundo Java – http://www.mundojava.com.br
• Adobe - Adobe Flash Player : Features - http://www.adobe.com/products/flashplayer/productinfo/features/
• Adobe - Adobe Flash Player : System Requirements -http://www.adobe.com/products/flashplayer/productinfo/systemreqs/
• Adobe - Adobe Flex 2: Flex 2 SDK - http://www.adobe.com/products/flex/sdk/
• Adobe - Flex 2 - Interactive Web Site, Internet Application - http://www.adobe.com/products/flex/productinfo/overview/
• Integrated development environment - Wikipedia, the free encyclopedia - http://en.wikipedia.org/wiki/Integrated_development_environment
• Eclipse - http://www.eclipse.org/
• About RPC components – Flex 2 -http://livedocs.adobe.com/flex/2/docs/wwhelp/wwhimpl/...
• Lista de discussão FlexDev - http://groups.google.com/group/flexdev
• SourceForge.net: OpenAMF - Java Flash Remoting - http://sourceforge.net/projects/openamf
• OpenAMF - http://www.openamf.com/cms/

2 Comentários:

Anonymous Anônimo disse...

Ótimo post! Estou ansioso pelas especificações dos componentes do flex builder!
valeu!

27 de fevereiro de 2007 às 14:05  
Blogger Unknown disse...

Parabéns !!! Excelente artigo!!!!!!!!

Já muito na web sobre flex (em 8 meses) e seu artigo esta muito bem escrito.

Sidnei Custodio
sidneicustodio@gmail.com

11 de julho de 2007 às 19:14  

Postar um comentário

Assinar Postar comentários [Atom]

<< Página inicial