DevSecOps

30 ago, 2010

Aplicação Hibrida: Flex e AIR utilizando o mesmo código

Publicidade

Como vocês já devem saber uma das vantagens do Adobe Flex e Adobe AIR é sua portabilidade.

Por exemplo:

Se você criar uma aplicação utilizando o Adobe Flex (para trabalhar através de um navegador) e decidir que essa ficaria melhor no desktop você consegue com um trabalho minimo. (menos de um dia – se você não tiver algo de outro mundo).

A grosso modo a mudança é a tag na aplicação principal, de:

s:Application para s:WindowedApplication.Além de recursos adicionais que o AIR oferece com melhor manipulação com o SO, I/O.No entanto, a parte principal do código é a mesma.

Porém, não é sobre isso que eu gostaria de falar hoje.Vamos um pouco mais embaixo.

E se eu precisar manter uma aplicação que funcione tanto em desktop quanto na web, é possível?

Você deve estar pensando… duplicar código….. tecnologias diferentes (não no caso do Flex)…. com certeza é muito trabalho. Não vale a pena…

Vocês irão mudar de opinião após ler a série de artigos de Todd Prekaski  sobre o assunto:

http://www.adobe.com/devnet/air/flex/articles/flex_air_codebase.html

http://www.adobe.com/devnet/air/flex/articles/flex_air_codebase_02.html

http://www.adobe.com/devnet/air/flex/articles/flex_air_codebase_03.html

Com essa arquitetura é possível utilizar o mesmo código fonte para ambas as aplicações..Isso mesmo, não é apenas a reutilização de código através de bibliotecas, e sim toda a estrutura das telas, códigos, funções, eventos, ….

Além disso, é possível definir comportamentos diferentes para ações de acordo com a plataforma que a aplicação está sendo executada.

A arquitetura está organizada da seguinte maneira:

Você precisa de três projetos:

*Projeto que contém a sua aplicação, todas as telas e comportamentos, no entanto esse projeto não contém uma aplicação principal (Application ou WindowedApplication)

*Projeto AIR que contém a aplicação principal do AIR e implementação de uma interface que define comportamentos especificos para a aplicação AIR.

*Projeto Flex que contém a aplicação principal do Flex e implementação de uma interface que define comportamentos especificos para a aplicação Flex.

Prefiro não falar muito.Por isso criei um projeto modelo onde demonstro essa arquitetura (esta muito semelhante ao criado pelo autor dos artigos), qualquer dúvida podem perguntar nos comentários.

O download do projeto pode ser realizado no post em meu blog:

http://www.cauirs.com.br/rafael/?p=152