Recevoir des messages de manière fiable

La réception fiable des messages est la fonctionnalité la plus importante de toute expérience de messagerie Android. Il est également important d'implémenter la messagerie en gardant à l'esprit l'état du système et l'autonomie de la batterie. Ce document vous guide à travers les principales stratégies et les principaux outils pour vous assurer que votre application Android reçoit les messages de manière cohérente, efficace et fiable.

Mécanismes de distribution des messages

La meilleure approche pour une messagerie fiable dépend des exigences spécifiques de votre application. Tenez compte de facteurs tels que :

  • Besoins actuels en temps réel
  • Fréquence des messages
  • Contraintes liées à la batterie

Messagerie en temps réel au premier plan

Lorsque votre application est au premier plan, l'utilisateur s'attend généralement à recevoir un volume d'informations assez élevé et souhaite savoir, par exemple :

  • La personne à qui vous envoyez un message est-elle présente sur son appareil ?
  • Est-ce qu'ils sont en train d'écrire ?
  • A-t-il lu le message ?

La méthode habituelle pour prendre en charge ce type d'échange de données en temps réel consiste à utiliser un protocole client-serveur, tel que WebSockets. Les WebSockets permettent une communication persistante et en duplex intégral entre votre application et un serveur. La bibliothèque OKHTTP inclut une implémentation du protocole WebSocket que vous pouvez utiliser dans votre client Android.

La base de données Firebase Realtime Database fournit un backend prédéfini et un frontend client qui peuvent gérer ce type de communication à votre place. Il utilise WebSockets en interne pour la communication en temps réel entre son client et son serveur.

Messagerie en temps réel en arrière-plan

Lorsque votre application n'est plus au premier plan, il est essentiel d'éviter les actions qui ont un impact négatif sur l'état du système et l'autonomie de la batterie. Étant donné qu'il est toujours important de diffuser les notifications de messages de manière fiable, nous vous recommandons d'utiliser Firebase Cloud Messaging (FCM).

FCM est une solution de messagerie multiplate-forme qui envoie efficacement des notifications et des messages de données aux appareils Android (et autres). Il utilise la couche de transport Android (ATL) pour les appareils disposant des services Google, afin que votre application puisse être avertie des modifications lorsqu'elle n'est plus en cours d'exécution. La rapidité de l'envoi des messages dépend de l'état de l'appareil, de la priorité du message et du fait que votre application soit soumise à des restrictions en raison du mode Veille ou de la mise en veille des applications.

Améliorer la fiabilité de la distribution des messages

Pour rendre la diffusion de vos messages encore plus robuste, envisagez les stratégies suivantes :