Por que eu devo ler este artigo:

A Retrofit é uma API desenvolvida pela Square seguindo padrão REST, fornecendo um padrão simples de implementação para transmissão de dados entre aplicação e servidor, que faz uso do JSON. Este artigo tem por finalidade a apresentação da API Retrofit de conexão HTTP para Android. O entendimento sobre como a API Retrofit pode ser utilizada é importante porque ela é considerada uma ótima opção quando há necessidade de integração entre sua aplicação e serviços disponibilizados no backend.

Dando continuidade aos artigos sobre APIs para conexão de aplicações Android ao seu serviço/backend, abordaremos as práticas iniciais para cada tecnologia apresentada, facilitando a escolha da melhor implementação para seu caso, considerando: tipos de dados trocados entre a APP e seu backend, facilidade de integração e velocidade na transmissão. As conexões com serviços WEB são um fator decisivo na qualidade que seu usuário perceberá em sua aplicação. Ter uma implementação focada em sua realidade e com tecnologias bem suportadas faz toda diferença.

Ainda hoje é comum encontrar desenvolvedores (geralmente iniciantes) que fazem uso de recursos nativos do Android como o AsyncTask para recuperar dados a partir de servidores. É possível? Sim! É recomendado? Não!

O primeiro fato que precisamos registrar é que o AsyncTask é um recurso que funciona perfeitamente, mas não deve ser utilizado para execução de com longas durações (veja a seção Links). Como posso garantir que recuperar dados a partir de servidores não é uma tarefa longa? Existem inúmeras variáveis envolvidas para conseguirmos uma resposta para essa pergunta e não dá para simplesmente colocar o projeto em risco, concorda?

Além disso, a recuperação de dados utilizando a AsyncTask como recurso pode lhe trazer alguns problemas pelo fato de:

  1. Não existir uma maneira fácil de executar requisições em paralelo. Experimente codificar requisições de dados em paralelo utilizando o AsyncTask em uma aplicação que pode ser executada em versões mais antigas do Android (por exemplo API de Level 7 e 8) em conjunto com as mais atuais. Infelizmente você terá um pouquinho de trabalho para tratar o seu código visto que, quando o AsyncTask foi implementado pela primeira vez, foi construído para ser executado serialmente em uma única background thread;
  2. AsyncTasks podem ser canceladas, mas não lhe provê a possibilidade de cancelamentos de chamadas de rede;
  3. Baixíssimo desempenho de execução para as versões mais antigas por serem executadas serialmente.

Dessa forma, é recomendado que se procure por uma segunda solução.

O objetivo deste artigo é apresentar a API de transmissão de dados Retrofit, mantida pela Square e apresentada em 2013 como uma alternativa simples, rápida e eficiente em desenvolvimento da camada de comunicação de aplicações que utilizem padrão REST (veja a seção Links).

Os serviços WEB provendo dados para seus aplicativos facilita a publicação de novas versões do serviço com correções de bugs, entrega de dados mais precisos, além de uma única implementação para ambas as plataformas. Isso é fornecer software como um serviço aos seus usuários, seja através de WEB Services, Sockets ou qualquer protocolo proprietário.

Para tornar possível tudo isso, a Square incorporou ao Retrofit o GSON como parser padrão para JSON, modelou o mapeamento das conexões utilizando interfaces e anotações e tornou simples a modificação de parâmetros enviados nas requisições em tempo de execução. O simples fato do uso de REST como mecanismo padrão do protocolo que a API implementa torna a curva de aprendizado bem menor e direta.

Entendendo o funcionamento do Retrofit

A API Retrofit é composta pelo uso de outras APIs para garantir aquilo que ela promove de melhor, a conexão e consumo de webservices padrão RESTful. A Square utilizou padrões da API padrão Android/Java para paralelizar as requisições usando Executors, GSON para serialidade das respostas JSON rece ...

Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
  • 473 Cursos
  • 10K Artigos
  • 100 DevCasts
  • 30 Projetos
  • 80 Guias
Tenha acesso completo