Aplicações RIA com Adobe Apollo


Introdução


Nessa época de frameworks , ferramentas e várias opções interessantes para desenvolvimento de aplicações RIA (Rich Interface Application) para internet / intranet , a empresa Adobe lança um produto chamado "Adobe Apollo" que reunirá várias tecnologias (Flash , Flex, Html , Javascript) em uma plataforma capaz de produzir aplicativos extremamente atraentes de forma prática e com baixo custo .

Uma aplicação web hoje para ser considerada boa deve seguir uma série de requisitos que causam extrema pressão nas equipes de desenvolvimento . Esses requisitos são bem conhecidos mas vale a pena citar alguns :
  1. Usabilidade : ninguém deve ser perder navegando pelo sistema.
  2. Mímica de desktop : se era feito em VB ou em Delphi , por que não fazer no browser
  3. Rapidez e responsividade : nada de gastar um monte de tempo esperando a página "voltar"
  4. Escalabilidade : aguentar um monte de usuários sem "arriar"  o sistema . E se o sistema "arriar" , adicionar mais recursos computacionais sem ter que mudar tudo o que ja foi feito.
  5. Baixo custo : frameworks para web baratearam o custo de desenvolvimento trazendo performance no desenvolvimento
  6. Manutenabilidade : os mesmos frameworks permitem que excelentes aplicacoes sejam feitas de forma clara e manutenível
  7. Agregar valor para o cliente : fazer o melhor também permite que o cliente lucre ! Uma boa aplicacao de CRM por exemplo pode diminuir o tempo médio de atendimento , o que barateia a operação ! Um bom site de compras pode valoriar uma marca...
  8. Facilidade de entrega (deploymet) : basta um clique e o cliente "sai usando" o sistema sem precisar instalar uma tonelada de coisas. 
Vejamos então o que é o Adobe Apollo e como ele pode atacar os pontos descritos acima

O que é Apollo

Apollo é o nome de uma "engine" multi-plataforma (até a data da publicação desse artigo , era possível baixar versões compatíveis com Mac OS e Windows) que permitirá usar recursos comuns para desenvolvedores web tais como flash , html , javascript para desenvolvimento de aplicativos desktop para internet. O conceito é um pouco diferente : quebrar a barreira entre o que é aplicação da internet e desktop.

A vantagem é trazer para o cliente uma experiência rica: ele pode navegar no programa como se estivesse na web ( e realmente estará) mas com todas as vantagens do desktop ! Essas vantagens seriam :

  • Acesso ao sistema de arquivos e recursos locais (como impressoras)
  • Possibilidade de funcionar quando não há link de internet
  • Acesso a sistemas legados e recursos específicos do sistema operacional
  • Comunicação com o servidor através de interfaces bem definidas utilizando protocolo Http, XML RPC ou SOAP

Claro que isso tudo envolve uma série de cuidados com segurança , autorização e autenticação já que sistemas maldodos poderiam causar um estrago.

Vocês podem estar pensando que já viram isso antes com Java WebStart , applets java assinadas, Componentes ActiveX ou Mozilla XUL . Mesmo a Microsoft tem planos de em futuras versões do Internet Explorer permitir que um sistema rode "desconectado". Apesar de o Apollo não ser totalmente inovador, ele tende a conquistar um nicho de mercado pois se apóia em produtos top de linha : Flash e PDF.

Iniciando com o Apollo

Antes de mais nada devemos instalar o Runtime.Vamos por partes:

  • Instalar . Para isso , vamos até a pagina do Adobe Apollo : http://labs.adobe.com/technologies/apollo/ e clicamos no link "Download the Apollo Runtime". Isso vai te levar pra um outra página onde você deve escolher a plataforma (Macintosh ou Windows).
    Após ler o termo de licensa clique na caixa de checagem com o seguinte texto: I have read the Adobe Apollo Runtime License, and by downloading the software listed below I agree to the terms of the agreement.Isso habilitará os links de download
  • Clique em um desses links e salve o instalador em um diretório de sua escolha;
  • Clique no instalador . Ele não vai perguntar nada, vai apenas informar que o Runtime foi instalado. .

Por enquanto está simples mas e agora ? Um bom começo é sempre ver alguma coisa pronta , pra sentir o cheiro do bife antes de dar uma mordida . Portanto , baixe alguns exemplos na página de exemplos. Repare que nessa página existem arquivos com a extensão .AIR. São aplicativos que rodam sobre o runtime que acabamos de instalar.

  1. Clique em Maptacular.air . Abrirá uma janela perguntando "Are you sure you want to install this application to your computer?" Aperte install.A proxima tela tem 2 opções ja marcadas alem da indicação onde o programa será instalado.
  2. Clique em "Continue". Na ultima tela , a opção pre-selecionada indica que se o finish for apertado , a aplicação será executada (figura 1).
  3. Aperte o botão finish

    install-mapcular-screen-2.jpg

    Figura 1


    Sem mais demoras , aparecerá a tela principal de "Maptacular" que interagem com o Google Maps. Legal demais ! Você está vendo conteúdo web fora do browser. Essa aplicação faz o casamento do google maps com vcards salvos na máquina local. Vcards pra quem não sabe é um formato padronizado para troca de cartões . Pra maiores detalhes veja http://en.wikipedia.org/wiki/VCard .

    Quando você clicar no ícone do Maptacular no seu desktop , uma tela do google Maps abrirá (figura 2).

    mapcular-maps-1.jpg

    (figura 2)

     Ainda não tem nenhuma novidade entretanto se você levar o mouse levemente até o lado esquerdo da tela , uma janela com uma estrutura de diretórios aparecerá. Essa estrutura contém os dados dos Vcards de vários contatos : restaurantes , pessoas, lugares interessantes organizados por categoria (figura 3).

    mapcular-maps-2.jpg 

    Figura 3

    Se você abrir uma categoria e arrastar um vcard para o mapa , o mapa mostrará a localização do contato do vcard.  Com esse exemplo simples você poderia desenvolver um assistente pessoal para um vendedor !

    Formato do .AIR

    Se abrirmos um arquivo .AIR com um programa descompactador como Winzip , veremos que ele é composto de vários componentes . Na pasta bin , esta o filme flash. Na pasta icons , o icone do AIR. Na pagina meta-inf , o descritor do programa e na raiz um executável do programa além do arquivo de vcard utilizado (.vcf) e o mimetype . O detalhamento desse empacotamento será alvo de outro artigo. 

    Resolvendo problemas

    Por esse pequeno exemplo , podemos tirar uma conclusão de como o Apollo pretende resolver as questões citadas no início do artigo

    1. Usabilidade : Continua dependendo do bom senso do programador ! Animações e componentes que voam de um lado para o outro podem ser engraçadinhos no início mas costumam cansar no dia a dia . Recursos avançados entretanto permitem que desenvolvedores e designers criativos criem interfaces melhores. 
    2. Mímica de desktop : não é imitação . Os aplicativos realmente são desktop.
    3. Rapidez e responsividade : Todo processamento de telas é deslocado para o cliente deixando o servidor responsável por servir os dados através de Webservices ou XML-RPC. Se a máquina do cliente for boa assim como o servidor , a coisa será instantânea.
    4. Escalabilidade : Removido processamento da interface de cliente do lado do servidor , muito mais clientes poderao ser atendidos com o mesmo parque de hardware. 
    5. Baixo custo : o custo total deve baixar com o tempo. Ainda não existem vários fornecedores de ferramentas para essa plataforma bem como mão-de-obra especializada em grande quantidade.
    6. Manutenabilidade : Depende da arquitetura que definirá a modularizacao e divisão de responsabilidades entre tela e servidor. Alem disso, boas praticas de programação também se aplicam a linguagem base do framework que e o ActionScript.
    7. Agregar valor para o cliente : Interfaces rápidas , intuitivas e mais bonitas beneficiam o cliente que fica satisfeito com ganhos em produtividade e podem aliar sua marca a um software que deixe seu mercado consumidor bem atendido.
    8. Facilidade de entrega (deploymet) : A instalação do Runtime tem a mesma dificuldade de se instalar um plugin do flash. Instaladores podem ser criados e sera possível atualizar os aplicativos de forma transparente.

    Conclusão

    Com a demanda por aplicações que valorizem cada vez mais o tempo e o dinheiro do cliente, a Adobe está tentando abocanhar uma fatia de mercado utilizando ferramentas e padrões conhecidos com conceitos relativamente novos. Difícil arriscar uma previsão para o Apollo nos próximos meses ou anos mas sendo Adobe , vale a pena ficar de olho ! Até a próxima.