Receber mensagens de forma confiável

Receber mensagens de forma confiável é o recurso mais importante de qualquer experiência de mensagens do Android. Também é importante implementar mensagens com foco na integridade do sistema e na duração da bateria. Este documento orienta você pelas principais estratégias e ferramentas para garantir que seu app Android receba mensagens de forma consistente, eficiente e confiável.

Mecanismos de entrega de mensagens

A melhor abordagem para mensagens confiáveis depende dos requisitos específicos do seu app. Considere fatores como:

  • Necessidades atuais em tempo real
  • Frequência de mensagens
  • Restrições de bateria

Mensagens em tempo real em primeiro plano

Quando o app está em primeiro plano, o usuário geralmente espera um volume razoavelmente alto de informações e quer saber coisas como:

  • A pessoa que está recebendo a mensagem está com o dispositivo?
  • Elas estão digitando?
  • Eles leram a mensagem?

A maneira típica de oferecer suporte a esse tipo de troca de dados em tempo real é usar um protocolo cliente-servidor, como WebSockets. Os WebSockets permitem uma comunicação full-duplex persistente entre seu app e um servidor. A biblioteca OKHTTP inclui uma implementação do protocolo WebSocket que pode ser usada no cliente Android.

O Firebase Realtime Database oferece um back-end pré-criado e um front-end do cliente que podem lidar com esse tipo de comunicação em seu nome. Ele usa WebSockets internamente para comunicação em tempo real entre o cliente e o servidor.

Mensagens em tempo real em segundo plano

Quando o app não está mais em primeiro plano, é fundamental evitar ações que afetem negativamente a integridade do sistema e a duração da bateria. Como ainda é importante entregar notificações de mensagens de forma confiável, recomendamos o uso do Firebase Cloud Messaging (FCM).

O FCM é uma solução de mensagens multiplataforma que envia notificações e mensagens de dados de maneira eficiente para dispositivos Android (e outros). Ele usa a camada de transporte do Android (ATL) para dispositivos com serviços do Google, assim seu app pode ser notificado sobre mudanças quando não estiver mais em execução. A pontualidade da entrega de mensagens depende do estado do dispositivo, da prioridade da mensagem e de restrições aplicadas ao app devido ao modo Soneca ou ao modo de espera do app.

Aumentar a confiabilidade da entrega de mensagens

Para tornar a entrega de mensagens ainda mais robusta, considere estas estratégias: