Esse artigo faz parte da revista WebMobile edição 23. Clique aqui para ler todos os artigos desta edição

 

 

: 1pt; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-element: para-border-div">

De que se trata o artigo:

Comunicação com web services fazendo uso da plataforma aberta Android.

 

Para que serve:

Desenvolver aplicações Android para sistemas distribuídos, aproveitando-se da característica de interoperabilidade de web services de forma a economizar banda e processamento.

 

Em que situação o tema é útil:

Quando se deseja integrar uma aplicação Android a um serviço web já existente. Mais especificamente neste artigo, serviços web RESTful que utilizam JSON como formato de troca de informações.

 

 

Web services tem sido a maneira mais adotada na indústria para integrar suas aplicações com novos partners, fornecer serviços poderosos aos consumidores e garantir interoperabilidade entre seus sistemas distribuídos ao mesmo tempo em que novas funcionalidades são liberadas.

Neste artigo você vai descobrir como acessar e utilizar estes serviços com Android.

 

Por onde começar?

A primeira decisão a ser tomada é escolher um estilo de arquitetura de software, ou seja, um conjunto de regras de design que identificam os tipos de componentes a serem utilizados para compor nosso sistema.

Visto que estamos trabalhando com web services e não podemos esquecer que nosso client será um dispositivo móvel com limitações de memória, processamento e energia, escolhemos o uso de web services RESTful (REpresentational State Transfer) - um design que abraça uma arquitetura cliente-servidor sem estado, em que os serviços web são encarados como recursos e podem ser identificados por suas URLs (ler Nota DevMan 1). Os clientes deste serviço devem acessar uma representação particular do recurso que desejam, transferindo o conteúdo de um conjunto de métodos remotos definidos globalmente, que descrevem uma ação a ser realizada sobre o recurso.

A nossa principal vantagem no ponto de vista de cliente do serviço é que o uso de RESTful implica num menor uso de banda, pois o uso de um protocolo SOAP exigiria um custo muito alto devido ao seus headers, camadas adicionais de elementos SOAP e a interpretação do XML.

Então, por motivos de processamento e banda, escolhemos JSON (JavaScript Object Notation) como nosso formato de troca de mensagens - além da leveza, JSON nos oferece a interpretação instantânea da mensagem como código javascript pelo browser, caso este seja utilizado (ler Nota DevMan 2).

 

Nota DevMan 2. REST

REST é uma descrição analítica de arquiteturas web existentes, e assim, a inter-relação entre o estilo e protocolo HTTP subjacente aparece de forma transparente.

 

Nota DevMan 1. JSON

JSON (JavaScript Object Notation) é um formato leve de troca de dados. Um formato de texto completamente independente de linguagem que faz uso de convenções familiares aos programadores de linguagens da família C (C, C++, Java, Javascript..).

Definindo um objetivo

         Visto que nosso objetivo é efetuar a comunicação com um web service, nada melhor do que utilizar um existente ao invés de criarmos uma aplicação ponta-a-ponta, afinal não queremos perder o foco.

         A sugestão é desenvolver um aplicativo a ser chamado de ClimaTempo, capaz de nos informar como está o tempo em uma dada localidade.

         Felizmente existe um serviço no GeoCities que torna disponível estas informações, através de uma série de centrais de observação do tempo e clima dispostos pelo mundo, bastando informar a latitude e longetude (as quais podem ser obtidas através do GPS do Android, ou Google Maps) ou ainda o código internacional dos aeroportos (ICAO – Internacional Civil Aviation Organization). Este último serviço (que faz uso do ICAO)  nos retorna informações como temperatura, velocidade e direção do vento, horário da observação e nome da central, e por óbvio está limitado à cidades que possuem um aeroporto.

         Vamos começar pelo caso mais simples, onde definimos uma cidade padrão, fazemos a chamada ao serviço web - enviando o ICAO - e tratamos a resposta para exibir

convenientemente ao usuário.

 

Desenvolvendo o ClimaTempo

Uma boa forma de se iniciar um projeto pequeno é definir e delimitar suas funcionalidades.

Já é sabido que estaremos trabalhando com um serviço web. Por este motivo, precisamos de permissão de acesso à internet, o que no Android é feito via AndroidManifest. A Listagem 1 nos apresenta na linha 6 uma forma de especificar o uso desta permissão. O restante do arquivo é como um AndroidManifest qualquer, que define sua única atividade nas linhas 7 à 15.

 

Listagem 1. AndroidManifest.xml

01.<?xml version="1.0" encoding="utf-8"?>

02.<manifest xmlns:android="http://schemas.android.com/apk/res/android"

...

Quer ler esse conteúdo completo? Tenha acesso completo