Esse pequeno artigo tem por objetivo fazer uma breve introdução sobre o Google Web Toolkit, explicando seu funcionamento básico, suas características, e orientar o leitor na criação de seu primeiro projeto com o GWT, o que não levará mais do que 10 minutos, os mais bem gastos de sua vida como desenvolvedor Java para a Web.
CenárioBooooooommmmm. Isso que você ouviu foi a Internet surgindo, revolucionando nossas vidas e a forma como trabalhamos e nos relacionamos. Realmente foi uma revolução. Com elas as pessoas podiam "navegar" entre páginas, obtendo toda a informação de que precisam, a qualquer hora e em qualquer lugar. Bom, vamos pular essa parte que todo mundo já conhece e observar esse evento um pouco mais de perto.
Quando a Internet surgiu, quando ela foi projetada ou "criada" digamos assim, não se tinha idéia da proporção que ela poderia atingir, nem mesmo das mais diversas aplicações que ela teria. Quando a Internet (enteda por protocolo HTTP e HTML) foi projetada, as pessoas achavam que o máximo que ela poderia fazer era ligar páginas de texto e apresentar algumas imagens. Ninguém tinha idéia do quanto isso poderia se expandir.
Problema
Mas (in)felizmente aconteceu. A Internet se popularizou, e as pessoas começaram a perceber o quão valiosa ela era, pois permitia o acesso a informação de forma simples, rápida e eficiente. Com isso, não demorou muito para que a Internet começasse a ser usada para o desenvolvimento de aplicações.
Pensando como um usuário: por que eu vou querer um software que precisa ser instalado e constantemente atualizado, que consome o processador e a memória do meu computador, seu eu posso ter isso na Internet, que não precisa que eu instale nada para executar meu programa (exceto o navegador é claro), não exige atualização de software e eu posso acessar de qualquer computador a qualquer hora que eu quiser?
A questão é óbvia, cada vez mais as empresas estão querendo que seus sistemas rodem na Web, apenas com um navegador, disponíveis a qualquer hora e lugar, até mesmo de um celular.
O problema, é que a Internet não foi projetada para isso. Ela não foi idealizada com esse objetivo, e desenvolver um sistema é totalmente diferente do que desenvolver um site com um monte páginas. Em resumo, é como se estivéssemos usando a ferramenta errada para fazer o nosso trabalho. Pois ela não foi projetada para fazer isso.
O resultado disso é o surgimento de milhares de frameworks, bibliotecas, API's e outras aberrações da natureza que tentam fazer o desenvolvimento de aplicações Web ser menos doloroso. O GWT é apenas mais uma delas, mas na minha opinião, dessa vez os caras acertaram em cheio.
Google Web Toolkit: O que é?
O GWT é uma ferramenta desenvolvida pela Google, que te permite desenvolver verdadeiras aplicações Web, como se fosse uma aplicação Swing, sem que você precise se preocupar com POST, GET, URL's, etc.
E como se apenas isso já não fosse bom o suficiente, ele também reduz a quase zero a programação com HTML e Javascript. Parece mágica né? Pois é, eu ainda acho mágica :-D.
Como a mágica funciona?
Simples:
- o navegador entende apenas HTML, CSS e Javascript;
- para desenvolver uma aplicação séria, precisamos de uma linguagem de programação séria: Java;
Então vamos programar em Java e depois converter para Javascript e HTML! Fácil né?! Como não pensamos nisso antes?
Pode parecer loucura, mas é isso mesmo que o GWT se propõe a fazer: você desenvolve seu programa em Java e o GWT vai compilar ele e traduzir para Javascript. Dessa forma você pode usar quase todos os frameworks Java que conhece, junto com sua IDE de desenvolvimento preferida, e deixar que o GWT depois traduza isso para Javascript e HTML.
Duvido! Me mostre!
Já dizia um sábio amigo meu: "Um exemplo prático vale por mil palavras". Então vamos a ele.
Primeiro você precisará do Eclipse e do GWT. Em seguida, você pode achar interessante instalar o plugin do Eclipse, que automatiza a criação de novos projetos e outros recursos do GWT.
Depois disso, tudo que você precisa fazer é ir até o diretório descompactado do GWT e executar o comando abaixo para criar o seu projeto:
webAppCreator -out TesteGWT com.teste.testegwt.TesteGWT
Pronto, com isso a estrutura básica de seu projeto será criada. Em seguida, você pode mover o diretório que foi criado para o seu workspace do Eclipse e importar o projeto.
O básico que você precisa saber:
- No GWT existe o lado client e o lado server. Tudo que ficar na pasta client será traduzido para Javascript. Tudo o que ficar no lado server, rodará na JVM do servidor Web que estiver hospedando a aplicação.
- No lado cliente você só pode usar as classes do GWT e as principais classes do Java (String e por aí vai). Você não pode querer usar o Hibernate por exemplo no lado cliente, pois o GWT não saberá como traduzir isso para Javascript. No entento, no lado do servidor você pode usar todas as API's Java que você conhece, pois no server roda Java mesmo.
- Você acessa o lado servidor fazendo chamadas assíncronas (AJAX) para o seu serviço, o que no final das contas será convertido para servlets e POST's.
- Para cada serviço que você cria, deve haver uma interface assíncrona e outra síncrona, e certamente, uma implementação dessa interface.
Para executar o projeto, rode a tarefa "devmode" do Ant. Depois que a janela abrir, clique no botão "Launch Default Browser", aguarde até iniciar, instale o plugin do navegador que será solicitado, e voila.
Sugiro que você examine o código do projeto de exemplo e entenda o que está acontecendo. Você percebera como as chamadas para o lado do servidor são feitas através de AJAX de uma forma muito simples e transparente. Sugiro também que você dê uma olhada no site do GWT, onde você encontrará muita documentação e exemplos de como fazer coisas mais interessantes com o GWT.
Minha avaliação pessoal dessa ferramenta é que ela é extremamente eficiente, simples e fácil de usar. Sugiro fortemente que, caso você seja um desenvolvedor Java, dê uma olhada mais de perto. Existem muitas outras coisas interessantes que podem ser feitas, e o GWT facilita muito o desenvolvimento de aplicações Web.
Se tiveres alguma dúvida pode entrar em contato comigo. Terei prazer em ajudar.
Não esqueçam de comentar.
Abraços, DKeller.
Diego, seus artigos são muito bons!
ResponderExcluirParabéns!
Continue escrevendo :-D