Por que eu devo ler este artigo:Este artigo objetiva mostrar de forma simplificada e prática a utilidade do Google App Engine e sua ligação com Android. Desta forma, o desenvolvedor estará apto a criar soluções que interajam com um sistema web, valorizando seu trabalho e aumentando seu leque de conhecimentos. Além disso, o texto aborda também o conceito de persistência de dados móvel-web, um termo muito popular nos dias de hoje, visto a necessidade deste tipo de comunicação em aplicativo de médio e grande porte. Este artigo é útil principalmente para programadores da plataforma Android que ainda não possuem muita familiaridade com sistemas web, ou ainda, para profissionais que já conheçam o Google App Engine e desejam dar seus primeiros passos no mundo móvel.

O desenvolvimento de aplicativos móveis atingiu um nível muito mais maduro do que se encontrava alguns anos atrás. A simples criação de "qualquer produto" já não é mais garantia de sucesso, visto a imensa concorrência que existe em todas as lojas on-line de aplicativos. Em pesquisas recentes divulgadas na internet, a soma das duas principais lojas, a Play Store (Android) e a App Store (iOS) somam mais de 2.5 milhões de opções.

Sendo assim, o desenvolvedor passou a ser mais exigido. Novas soluções e principalmente, a criatividade, nunca esteve tão em alta como agora. Ou seja, com a possibilidade muito ínfima de conseguir criar algo novo, os programadores partem para a criação de produtos já existentes, mas oferecendo features novas ou mais bem elaboradas.

Outro ponto crucial é o crescimento do ecossistema dos aplicativos móveis e a sua utilização. Desta forma, a interligação com sistemas web e/ ou serviços na nuvem também se tornou algo comum. Um grande exemplo disso é a necessidade de salvar os dados off-line no dispositivo móvel, mas com a possibilidade de espelhamento dos mesmos em um banco de dados relacional fora do dispositivo.

Aliás, não é a toa que o conceito de nuvem está ganhando tanta relevância no mercado de Tecnologia da Informação. Talvez, se fosse possível reduzir o ano de 2014 em dois conceitos predominantes, seria fácil responder Internet das Coisas e Cloud.

Apesar de não ser o foco principal deste artigo, a Internet das Coisas merece destaque porque no emaranhado do mundo móvel e na necessidade de integração com Cloud ela tem papel preponderante. Imagine um mundo onde todos os objetos do nosso dia-a-dia produzam e consumam dados. Para este poderio ter algum valor contextual aos seres humanos, é imprescindível que estes dados estejam disponíveis em algum ponto onde todos terão acesso, correto? Imagino que sua resposta tenha sido sim. Logo, a nuvem é a resposta.

Depois do estrondoso sucesso da placa microcontrolada, Arduino, a necessidade de expor os dados computacionais que esse poderoso dispositivo produziu ficou latente. Logo, o conceito de mini-pcs ganhou força, tendo no RaspberryPi seu principal expoente. Porém, o sucesso foi tanto que diversos outros dispositivos surgiram e o interesse das gigantes da tecnologia se acentuou, ao ponto de ouvirmos falar de Internet das Coisas praticamente o ano todo. E o assunto partia da opinião de empresas como Google, Apple, Intel, Cisco, IBM e outros gigantes.

Voltando ao exemplo citado anteriormente. Em um sistema de automação residencial, onde uma casa foi totalmente transformada em "inteligente" com o uso de diversos arduinos e mini-pcs. A residência gera e consome inúmeros dados por segundo, levando toda essa informação para a nuvem. Deste ponto em diante será possível criar um aplicativo Android (poderia ser qualquer outra plataforma mobile) que consome estes dados e torna a casa distante a apenas um clique, ou toque, dos seus moradores.

Imagino que o leitor já tenha sido convencido da necessidade de interligação entre o mundo mobile e um serviço web. E, diga-se de passagem, cada vez mais a fronteira entre mobile e web desaparece. Hoje em dia, existem inúmeros frameworks que permitem a construções de soluções cross-platform com linguagem web, principalmente com o trio HTML 5, Java Script e CSS3.

O próximo passo é a utilização justamente de um servidor web. No modo convencional seria contratada uma empresa que hospedaria este serviço web. Geralmente tendo um custo mensal para que o usuário ganhe um número IP válido, possa registrar em um servidor DNS e os seus futuros clientes tenham acesso ao produto.

Com esta abordagem surgem outros problemas. No entendimento do autor deste artigo dois deles são mais relevantes:

· custo para validar hipóteses: em alguns casos o desenvolvedor estará criando uma solução, estará naquele momento típico de uma startup onde o futuro é incerto. E para deixar a situação mais complexa, o sucesso depende de validar algumas hipóteses. O problema é quando o desenvolvedor não tem dinheiro para grandes investimentos, visto que seu produto é uma hipótese e não está disponível no mercado. Sendo assim, a necessidade de já arcar com um custo mensal para testar o produto pode ser desanimadora, dependendo da situação financeira encontrada;

· pagamento sem utilização: este tópico pega carona no parágrafo anterior. E se a hipótese validada não estiver 100% correta. E se o desenvolvedor pensou em algo não tão inovador assim. E se as requisições oriundas do aplicativo beirar a zero? Neste caso o futuro empreendedor já estará arcando com um custo que nem ao menos ele utiliza.

A resposta para estes dois problemas está no uso do Google App Engine, ou de outros serviços similares já encontrados no mercado.

O grande ponto do Google App Engine é ser uma plataforma orientada a serviço que tem uma taxa de uso sem custo nenhum. Ou seja, é excelente para validar hipótese, fazer testes de cases que servirão de ponto de partida para futuras startups e, até mesmo, para criação de aplicativos que servem como modelo para escrita de artigos e apresentações em palestras.

E, além disso, depois que o aplicativo passa da taxa de uso grátis, a cobrança ainda é feita pelo uso. Ou seja, o segundo problema apresentado anteriormente não existe. O custo será apenas sobre o que é consumido.

Para apresentar e validar os conceitos e, com o intuito de tornar o aprendizado mais real, será construído um aplicativo que armazena e pesquisa dados salvos no sistema de persistência do Google App Engine.

O Projeto

O projeto a ser desenvolvimento é dividido em duas partes. A aplicação android apenas consome os dados que estão na nuvem, mais especificamente na aplicação criada no Google App Engine. A Figura 1 mostra a tela inicial.

Figura 1. Tela única do aplicativo Android.

Além disso, existe a opção de deletar os itens da lista. Para isso, basta clicar em dos produtos e um diálogo será aberto com a seguinte pergunta: "A compra deste item já foi efetuada". As opções de resposta ...

Quer ler esse conteúdo completo? Tenha acesso completo