Atenção: esse artigo tem um vídeo complementar. Clique e assista!
Picasa Web Albums Data API – Parte 1
Neste artigo veremos, passo a passo, como criar uma aplicação Java integrada com o serviço de fotos do Google, o Picasa Web Albums (PWA). Nossa aplicação será capaz de listar os álbuns e fotos do usuário, e também permitirá a postagem de comentários nas fotos. Tudo isso de forma prática, utilizando a biblioteca cliente Java, o Google Web Toolkit e o Google App Engine.
Para que serve:
Assim como as demais APIs de dados Google, a Picasa Web Albums Data API permite que nossas aplicações possam se integrar com algum serviço Google: neste caso, o PWA. Com ela, podemos construir, por exemplo, um cliente desktop para ver os álbuns e fotos do usuário, uma aplicação que grave e faça upload de vídeos direto do celular, dentre outras possibilidades.
Em que situação o tema é útil:
O tema é útil no contexto da criação e utilização de serviços, que visa promover o reuso e evitar o retrabalho. A ideia básica é poder construir software aproveitando ao máximo os diversos serviços existentes. Com isso, cada vez mais é possível concentrar esforços nas regras de negócio do software, reduzir o tempo de desenvolvimento e ter a garantia de um serviço testado e confiável.
Picasa Web Albums Data API – Parte 2:
A Picasa Web Albums Data API permite que nossas aplicações possam interagir com o Picasa Web Albums, possibilitando a execução de operações básicas como listar, criar, editar e excluir os álbuns, fotos, vídeos, tags e comentários do usuário.
Para utilizar essa API, a biblioteca do Google disponibiliza uma série de classes que representam os serviços, como a classe PicasawebService e tipos de dados utilizados pelo PWA, tornando o desenvolvimento bastante simples.
O artigo também mostra como criar e publicar uma aplicação web com GWT e GAE, utilizando o Google Plugin para Eclipse, que facilita o processo de desenvolvimento e o deploy nos servidores Google.
No cenário atual do desenvolvimento de software, a integração com outros sistemas e serviços se torna cada vez mais comum. Nessa direção, o Google provê aos desenvolvedores uma série de APIs, dentre as quais estão as APIs de Dados, que permitem a aplicações de terceiros se integrar aos vários serviços Google disponíveis.
Na primeira parte, publicada na Edição anterior, conhecemos o serviço PWA e a sua respectiva API de dados, a Picasa Web Albums Data API. Vimos como utilizar a Java Client Library para efetuar operações básicas como listar, criar, editar e excluir os álbuns, fotos, tags e comentários do usuário.
Neste artigo aplicaremos os conceitos explorados na construção de uma aplicação real. O projeto que desenvolveremos ao longo do artigo será uma aplicação web, que atuará como um cliente do PWA, utilizando duas outras tecnologias Google: o Google Web Toolkit e o Google App Engine.
Projeto: Picasa Web Albums GWT Client
Agora que já sabemos como efetuar as operações básicas oferecidas pela API para trabalhar com álbuns, fotos, vídeos, tags e comentários, vamos construir o nosso projeto final. Como falamos no início do artigo, o projeto trata-se de um cliente web para o Picasa Web Albums. A aplicação permitirá ao usuário:
Nossa aplicação será construída utilizando outras duas tecnologias oferecidas pelo Google, o Google Web Toolkit (GWT) e Google App Engine (GAE). Como não é o foco deste artigo, não entraremos nos detalhes destas tecnologias, entretanto veremos o necessário para o entendimento do exemplo. A Figura 1 mostra um screenshot da aplicação, que também pode ser vista em produção no endereço http://jm-picasa.appspot.com.
O quadro “Google Web Toolkit” traz um pequeno resumo sobre o GWT. Além disso, as Edições 38 e 39 da Java Magazine trazem os artigos “AJAX com Google Web Toolkit” e “AJAX avançado com GWT”.
O Google Web Toolkit (GWT), como o próprio nome sugere, consiste num kit de ferramentas para o desenvolvimento de aplicações web. Kit esse que contém um SDK próprio, com compilador capaz de converter código Java em Javascript e um servidor de aplicações, além de ferramentas para análise de desempenho e um plugin para Eclipse. A ideia central do GWT é prover uma forma de criar aplicações web ricas, com AJAX, utilizando apenas Java. Dessa forma o desenvolvedor não precisa se preocupar com compatibilidade entre browsers, além de tornar o desenvolvimento mais produtivo, visto que escrever e depurar código Java com todas as facilidades do Eclipse (ou mesmo outras IDEs) é bem mais prático do que quando se trata de Javascript.
Para tornar essa tarefa possível, o GWT traz consigo um conjunto de bibliotecas e widgets (Ex.: botões, caixas de texto, etc.) que permitem ao desenvolvedor escrever toda lógica da sua aplicação, incluindo os componentes visuais HTML em código Java puro. O compilador é o responsável por traduzir o código Java em Javascript otimizado e compatível com a maioria dos browsers do mercado.
Além disso, é perfeitamente possível criar aplicações GWT que possuam um back-end que rode no servidor e não no cliente. Para isso são oferecidas as seguintes estratégias:
• GWT RPC – Opção indicada para comunicação com back-end em Java. Consiste na criação de interfaces dos serviços que serão oferecidos pelo servidor para que essas possam ser utilizadas de forma assíncrona pelo código front-end;
• JSON / XML – Consiste na troca de dados com o servidor nos formatos JSON ou XML. Para isso o GWT oferece classes para manipulação dos dados nestes formatos;
• Cross-Site – Utilizado por aplicações que necessitam obter dados de servidores remotos de diferentes domínios.
...