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.
- Aprenda a integrar o FCM ao seu Projeto do Android
- Conheça a API do FCM (servidor) e suas funcionalidades
Aumentar a confiabilidade da entrega de mensagens
Para tornar a entrega de mensagens ainda mais robusta, considere estas estratégias:
- Use o
WorkManagerpara ativar periodicamente o app e verificar se há novas mensagens quando o dispositivo tiver conectividade de rede e (idealmente) quando o dispositivo estiver conectado a um carregador. - Receba insights sobre a entrega do FCM com ferramentas como o Console do Firebase e as métricas de entrega do SDK do Android da API Data do FCM.
- Use mecanismos e ferramentas de geração de registros, como o Firebase Crashlytics, para monitorar e resolver problemas de entrega de mensagens.