Livro 4 - Projeto da Previsão do Tempo
7. Considerações Finais
Neste projeto aprendemos três recursos importantes no desenvolvimento de aplicativos Android. O uso de serviços web, utilização de listas personalizadas e AsyncTask.
Para fazer solicitações a um serviço web devemos usar a classe HttpURLConnection. Através de objetos URL abrimos a comunicação com o serviço e recebemos a resposta em uma stream de entrada (InputStream). Vimos como receber esses dados e transformá-los em objetos JSONObject.
A parte crucial em lidar com API’s é entender como funcionam suas solicitações e qual o formato de resposta do JSON. Com essas informações, podemos construir a lógica da aplicação para ler os dados e processá-los. No caso WeatherApp. fazemos solicitações a API da OpenWeatherMap passando como parâmetros o nome da cidade a ser pesquisada as condições climáticas, o padrão de medida e o idioma português.
A API retorna uma lista contendo a previsão de 5 dias de 3 em 3 horas da localização informada. Processamos esses dados e mostramos na tela a previsão do tempo de cinco dias da cidade informada.
Usamos ListView para mostrar uma lista de itens na interface gráfica do aplicativo. Esse componente depende de uma classe ArrayAdapter para preencher os itens da lista. No aplicativo WeatherApp, criamos uma subclasse de ArrayAdapter para preencher os itens da lista com uma view personalizada. Dessa forma, os dados da previsão climática são mostrados tela segundo o desenho de um ícone, a descrição do dia, o valor das temperaturas máxima e mínima, e umidade.
Por fim, vimos como usar AsyncTask para realizar tarefas em paralelo com a thread principal do aplicativo. Dessa forma, evitamos de aparecer caixas de diálogo Activity Not Responding (ANR), que aparecem quando o Android detecta que a interface gráfica não está respondendo.