nov 04

É comum para alguém que esteja começando a programar com o GWT ter um pouco de dificuldade com a comunicação entre cliente e servidor através do mecanismo padrão do GWT, o RPC. Após receber alguns emails sobre como fazer isso resolvi escrever este post mostrando de uma forma simplificada e rápida os passos necessários para a execução dessa tarefa simples e extremamente comum em aplicações ajax.
Continuar lendo »

set 11

Hoje dou início a uma série de artigos introdutórios sobre GWT, com os quais pretendo mostrar melhor as características da tecnologia ao mesmo tempo que com o decorrer desta série iremos construindo um aplicativo web completo.

Neste primeiro artigo irei escrever basicamente sobre o que é GWT, o porquê esta tecnologia é uma opção para o desenvolvimento de aplicações web e, por fim, irei mostrar algumas de suas características básicas.

 

O que é GWT ?

 

Basicamente GWT (Google Web Toolkit) é um conjunto de ferramentas de desenvolvimento, uma API e um conjunto de componentes visuais projetadas para o desenvolvimento de aplicações Web. A principal diferença entre GWT e outros frameworks é que o código que é executado no browser é feito em Java ao invés de Javascript. Por mais que Javascript seja uma linguagem de programação com muitos defensores, utilizar Java para implementar a camada de apresentação possui várias vantagens tais como: a linguagem de programação Java é fortemente tipada e o seu código é compilado, assim, muitos erros são encontrados em tempo de compilação; existem muitas IDEs (excelentes, conhecidas e gratuitas) para o desenvolvimento em Java; por fim, a quantidade de programadores Java é muito maior do que a quantidade de programadores Javascript.

Além das razões citadas acima, o código produzido por GWT é compatível com os browsers mais utilizados e desenvolver código HTML+CSS+Javascript que funcione bem em todos os browsers não é uma tarefa das mais triviais (quem já tentou isso sabe do que eu estou falando).

Continuar lendo »

set 08

Se algum dia você já se deparou com a seguinte situação: criar uma aplicação em web que possua diversas imagens estáticas (por exemplo ícones) e você utilizou css para selecionar e carregar as imagens… você já deve ter percebido que para cada imagem da aplicação uma nova conexão é aberta só para buscar essa imagem… e as demais só serão carregadas uma após a outra… pois é… para essa situação nada melhor que um ImageBundle! Para aqueles que ainda não conhecem essa funcionalidade vou dar uma pequena e rápida introdução. Confiram após o break :)

Continuar lendo »

mar 05

Para quem não conhece existe um projeto do qual participei na elaboração e acho bastante útil pra todo mundo. É o GWT Window Manager o projeto consiste basicamente em usar um gerenciador de janelas para a sua aplicação aumentando ainda mais a sensação de se estar usando um desktop em vez do browser. Nesse post vou explicar o básico de como se usar o GWM como é conhecido no seu projeto.

Primeiramente crie um projeto usando o Project Creator e o Application Creator como explicado em posts anteriores. Em seguida acrescente o gwm.jar ao seu classpath e copie o diretório themes para a pasta public do seu projeto, é nela que se encontram todos os arquivos css e de imagem do gwm. Feito isso, o próximo passo é efetuar a ligação entre a página e esses arquivos. Acrescente as seguintes linhas no head do html da página:
Continuar lendo »

mar 03

Eu tentei, eu juro que tentei, mas não resisti. Eu tinha que escrever um jogo. Daí resolvi começar com algo simples pra ver se GWT era uma plataforma prática para o desenvolvimento de jogos de tabuleiro para a web.

Desta forma eu resolvi implementar um jogo da velha (não consegui imaginar um jogo mais simples).

Então, antes de entrar nos detalhes da solução GWT vamos primeiro a uma explicação sobre a forma como eu implementei o jogo.

Continuar lendo »

fev 25

Dentre os problemas que eu falei no post anterior que encontrei desenvolvendo com GWT, foi utilizar JSONP, principalmente quando a fonte JSONP reside em um host diferente do host de origem da aplicação GWT. Neste post eu vou falar como resolvi este problema, além disto, vamos desenvolver uma aplicação de busca de imagens, no estilo images.google.com.

Antes de tudo é momento de alguns conceitos rápidos. JSON, Java Script Object Notation, é a forma como objetos são representados em Java Script. Ultimamente esta notação vem tendo um uso muito grande pois é muito fácil para as linguagens de programação produzir e consumir dados neste formato e, melhor ainda, Java Script pode consumir os dados neste formato sem a necessidade de realizar parsing. Resultado, um código menor, mais simples, com menos bugs e mais rápido.

Um simples exemplo:

Definição de um objeto utilizando a notação JSON:

JavaScript:
  1. var produto = {'nome': 'Coca-Cola', 'preco': '1.99'};

Acessando os campos do objeto:

JavaScript:
  1. function exibeProduto(produto) {
  2. window.alert('nome: ' + produto.nome + ' - preço: ' + produto.preco);
  3. }

Continuar lendo »

fev 25

Eu acredito que boa parte de vocês já viu os demos do GWT na sua página oficial, ficou encantado, baixou o GWT, rodou os samples, criou um projeto simples, fez passo-a-passo algum tutorial "Hello World" e ficou mais encantado ainda.

Porém "o mundo é cruel", e quando nós caímos no mundo real e tentamos desenvolver uma aplicação mais robusta do que um Hello World nos deparamos com alguns problemas um pouco mais complicados.

Vou tentar escrever alguns posts falando de algumas experiências que eu tive com GWT, os problemas que surgiram e como eu resolvi estes problemas.

O primeiro problema que eu tive foi quando tentei utilizar uma biblioteca javascript pré-existente, ou quando eu tentei utilizar alguma funcionalidade que há nos objetos providos pelos browser via javascript (window, document, etc) mas está implementada nos mesmos objetos no nível GWT.

A forma que encontrei para resolver este (e mais um monte de problemas) foi utilizar JSNI - Java Script Native Interface. JSNI está para GWT assim como JNI (Java Native Interface) está para Java. Com JSNI é possível implementar o corpo de métodos GWT utilizando Java Script.

Vejamos um exemplo. Vamos supor que, por alguma razão esquisita, eu queira escrever um método que faça o mesmo que o Window.alert. Vamos chamar este método de meuAlert:

JAVA:
  1. public native void meuAlert(String mensagem) /*-{
  2. alert(mensagem);
  3. }-*/;

Continuar lendo »

abr 01

Neste pequeno tutorial veremos como criar a primeira aplicação em GWT. Primeiramente se você ainda não fez o download do toolkit faça-o :) até o dia de hoje, 01/04/2007, a versão disponí­vel é a 1.3 com distribuições Windows, Linux e Mac. Feito o download, descompacte no diretório de sua preferência. A tí­tulo de exemplo, descompactei o zip na raiz da unidade. Assim, temos a seguinte estrutura de diretórios:


C:\

|

+ gwt-windows-1.3.3

|

+doc \\Aqui você encontra o javadoc

+samples \\E aqui algumas aplicações exemplo

No diretório principal, gwt-windows-1.3.3, temos os arquivos .bat que criarão o nosso projeto. A princí­pio usaremos apenas 2 deles, projectCreator e applicationCreator.

O comando para usar o projectCreator é o seguinte:

ProjectCreator [-ant projectName] [-eclipse projectName] [-out dir] [-overwrite] [-ignore]

Onde, apenas os switches ant ou eclipse são necessários, mas vamos usar alguns outros. Abaixo, a descrição do que cada um faz.

Continuar lendo »

mar 27

O GWT é o framework AJAX do Google. Pra quem não conhece, AJAX é uma sigla que significa Asynchronous Javascript And XML. Na prática AJAX proporciona aos usuários uma experiência mais rica, semelhante à interatividade atingida nos sistemas desktop. Um bom exemplo de aplicação AJAX é o maps google.

Para aqueles que pretendem se aventurar na web 2.0 o GWT é um ótimo começo! Através dele uma aplicação pode ser completamente desenvolvida em uma única página html! Continuar lendo »