Friday, February 09, 2007

Google Web ToolKit

De tempos em tempos alguma tecnologia torna-se a queridinha dos desenvolvedores. A mais ou menos 1 ano a tecnologia abençoada foi o AJAX (Asynchronous Javascript And XML). Simplificando o papo, ajax é simplesmente uma maneira de você navegar em um browser sem ficar enviando parâmetros ao servidor e por consequencia refazendo a página o tempo todo. Esse processo além de trazer uma série de complicações técnicas (quem já programou WEB sabe bem ... ) não é tão agradável ao usuário como uma aplicação desktop.

O AJAX em sí não é nada muito complexo, você tem a possibilidade de criar uma função javascript que permite chamar uma página web (servlet, php, asp), tratar seu retorno e utilizar DHTML para redesenhar a tela web sem que seja necessário executar um reload. Entretanto, a manipulação manual de javascript e DHTML para montar uma aplicação complexa (e que funcione em vários browsers) é extramamente tediosa. Para resolver essa questão foram criados diversos frameworks que auxiliam o desenvolvimento de aplicações baseadas em AJAX e DHTML.

Aqui, vou falar um pouco do Google Web ToolKit, que a meu ver, destacou-se das demais ferramentas de sua categoria por apresentar uma visão (arquitetura, paradigma ou o que seja) inovadora.

Considero GWT inovador pois diferente das outras ferramentas ele permite que você escreva a sua aplicação inteiramente em JAVA (sem escrever uma linha de HTML). A mágica funciona de uma maneira muito inteligente.

Primeiro, a equipe do Google Labs portou (construiu as mesmas classes com os mesmos métodos) uma boa parte dos pacotes java.lang e java.util para javascript e chamou de JRE Emulation Library. Nestas bibliotecas estão contidas classes como Object e String que são essenciais para qualquer aplicação Java. Em um segundo momento foram desenvolvidos uma série de classes (componentes visuais, chamadas a servetls, manipulação de XML entre outros) que também foram portados para javascript.

Em um segundo momento foi desenvovido um compilador que converte uma aplicação desenvolvida em Java para Javascript denominado GWT Java-to-JavaScript Compiler. Então com essas duas ferramentas a mágica tornou-se possível. Você desenvolve a aplicação inteiramente em Java e depois utiliza o compilador para transformá-la em javascript.

Uma outra característica muito interessante foi o desenvolvimento de um Browser próprio. Esse browser intercepta as execuções em javascript e redireciona para a máquina virtual Java. Isto permite que em tempo de desenvolvimento seja possível debbugar a aplicação.

E é assim que toda a mágica funciona. Eu andei olhando o código do compilador e também os códigos gerados e a única palavra que achei para descrever foi mágica.

Agora vamos a prática, vou descrever abaixo os passos para fazer a primeira aplicação utilizando-se GWT e Netbeans.

1. Baixe o plugin para o netbeans aqui.
2. Utilize o Netbeans 5.5 (neste eu tenho certeza que funciona).
3. Baixe o GWT aqui (Esta é a versão para Windows, mas tem pra Linux e Mac).
4. Instale o plugin no Netbeans utilizando a seguinte sequência: Tools > Update Center > Install Manually Downloaded Modules (.nbm Files) > Next > Add (Adicione o arquivo baixado no item 1) > Next > Confirme todas as telas seguintes ;)

Para criar um novo projeto baseado no GWT você deve utilizar a seguinte sequência: File > New Project > Web > Google Web ToolKit Application. A primeira vez que você criar um projeto será necessário informar o lugar onde você descompactou o arquivo baixado no item 3.

O Netbeans irá criar toda a estrutura de arquivos e uma classe que implementa EntryPoint. Esta classe possui o método onModuleLoad(). Dentro deste módulo você deverá incluir os componentes de sua aplicação. O código abaixo cria uma aplicação simples com dois campos textos e um botão. O Botão copia o texto digitado em um TextField para o outro.

final TextBox texto1 = new TextBox();
final TextBox texto2 = new TextBox();

Button botao = new Button("Clique", new ClickListener() {
public void onClick(Widget sender) {
texto2.setText(texto1.getText());
}
});

RootPanel.get().add(texto1);
RootPanel.get().add(texto2);
RootPanel.get().add(botao);

Para Executar ou Debuggar basta utilizar as funcionalidades padrões do NetBeans.

É isso ai pessoal, espero que tenham gostado. A ferramenta GWT permite que você crie aplicações WEB complexas de maneira simples e bem organizada. Em um próxima entrada explicarei como enviar e receber objetos para o servidor web (Tomcat) utilizando-se o recurso Remote Procedure Call, assim será possível persistir objetos no bando de dados por exemplo.

[]s

2 comments:

happysky1 said...

This is very nice blog. do you konw Mozilla Firefox web browser?I really loved it,I hope you may want to download and try. thank you.

Nayara said...

Gostaria de usar o GWT com o Eclipse, o procedimento seria o mesmo?