3 Bibliotecas Android que Todo Desenvolvedor Deveria Conhecer

Geralmente, durante o desenvolvimento de um aplicativo Android, o desenvolvedor se depara com alguns contratempos de implementação. Dentre esses contratempos está a necessidade de acessar uma API em Json, transmitir uma informação de um serviço em background para uma Activity ou carregar imagens em um ImageView a partir de uma url, por exemplo.

Na maioria das vezes, na ansiedade de entregar o projeto, o desenvolvedor acaba optando por resolver esses problemas com gambiarras no código. Existe também aqueles que preferem implementar uma solução mais bem elaborada, o que exige um pouco mais de tempo. Isso ocorre porque os desenvolvedores esquecem de levar em consideração a existência de bibliotecas de código aberto que já implementam de maneira eficiente as soluções para diversos tipos de problema. Sendo assim, não há necessidade de “reinventar a roda”.

As três bibliotecas que serão apresentadas a seguir são apenas algumas dentre as centenas disponibilizadas pela comunidade Android para auxiliar os desenvolvedores na implementação dos seus aplicativos. Escolhi falar apenas dessas três porque, além de já tê-las usado, elas resolvem os problemas que eu considero como mais comuns na implementação de um aplicativo Android.

Picasso

Boa parte dos desenvolvedores Android já se deparou com a necessidade de ter que carregar uma imagem a partir de uma URL e apresentá-la em um ImageView. Ao ver esse problema, a abordagem mais comum é usar uma AsyncTask para baixar a imagem, criar uma bitmap e passar essa bitmap como parâmetro para o ImageView. Além desse trabalho, ainda existe a necessidade de implementar um cache para que a imagem não seja carregada várias vezes durante a execução do app. Todo esse trabalho pode ser evitado através do uso da biblioteca Picasso.

A Picasso torna a implementação do carregamento de imagens e cache muito mais simples e rápido. Todo o trabalho descrito anteriormente pode ser feito em apenas uma linha de código!

Picasso.with(context).load(imageUrl).into(imageView);

No código da linha acima é possível ver que a Picasso exige como parâmetro o contexto, a URL da imagem e a ImageView que receberá a imagem. Em resumo, a execução dessa linha executará o download assíncrono da imagem, apresentará a imagem no ImageView e fará o cache para o exibição futura da imagem.

Retrofit

Implementar o acesso a uma API é uma das maiores “dores de cabeça” de um desenvolvedor Android. Para consumir os dados de uma API, a abordagem mais comum é criar uma AsyncTask para acessar a URL, passar os parâmetros via cabeçalho HTTP, obter a resposta HTTP, manusear (fazer o parser) o resultado usando classes como JsonArray e JsonObject e atribuir os valores manualmente a um determinado objeto. Com o uso da Retrofit, todo esse processo é simplificado.

A Retrofit é uma biblioteca que implementa um cliente REST para o consumo de API. Essa biblioteca faz uso de annotations e objetos do tipo POJO (Plain Old Java Object). Ademais, além de requisições simples, a Retrofit suporta o envio, através do HTTP, de objetos de tipo complexo, lista de objetos e imagens. Abaixo está o passo a passo do uso dessa biblioteca (fiz o exemplo baseado na versão 1.9, pois ainda não testei a 2.0):

  • Criar a classe da entidade que será obtida através da API com seus respectivos parâmetros. Os nomes dos parâmetros devem ser exatamente iguais aos que serão retornados no Json.

  • Criar a interface que define os métodos da API.

  • Criar uma AsyncTask e fazer a requisição onde for necessário.

Eventbus

É muito comum no desenvolvimento de um aplicativo Android, o desenvolvedor precisar enviar dados de um serviço que está rodando em background para uma Activity. A Eventus foi construída justamente para resolver esse problema, ou seja, mediar e facilitar a comunicação entre Activities, Fragments, Threads e Services com poucas linhas de código. O passo a passo abaixo mostra um exemplo de como a Eventbus pode ser utilizada em um app que monitora quando o dispositivo está carregando na tomada:

  • Criar uma classe que representa o evento

  • Criar um BroadcastReceiver para monitorar o evento e enviar mensagens pela Eventbus

  • Declarar o Broadcastreciever no AndroidMainfest.xml

  • Exibir os eventos em um TextView na Activity


Existem ainda bibliotecas que auxiliam na implementação do design do aplicativo como a Android Bootstrap e a Material Drawer, por exemplo. Caso você tenha alguma sugestão de biblioteca que deveria estar nessa lista ou tiver alguma dúvida, deixe um comentário.

3 Comment

  1. Muito bom saber o que é usado na prática!

    Há dois anos eu criei uma lista com links das bibliotecas usadas no Instagram para Android baseado no arquivo de licenças open-source disponível na própria app.

    http://tumblr.felipe.rs/post/65692060893/libraries-that-may-be-used-by-instagram-android

    1. Luiz Marcus luizmarcus says: Responder

      Que massa, Felipe! Não sabia. Vou dar uma olhada, ver se consigo testar alguma e postar depois no blog.
      Parabéns pelo novo emprego! kkkk

  2. Perfeito!
    Android é pra mim e de longe o melhor sistema operacional.
    Muito completo e permite fazer muita coisa nele.
    Já tive da Apple e nem de perto é tão bom quanto Android!

Deixe uma resposta