Ricevere messaggi in modo affidabile

Ricevere messaggi in modo affidabile è la funzionalità più importante di qualsiasi esperienza di messaggistica Android. È anche importante implementare la messaggistica tenendo d'occhio l'integrità del sistema e la durata della batteria. Questo documento ti guida attraverso le strategie e gli strumenti chiave per garantire che la tua app per Android riceva messaggi in modo coerente, efficiente e affidabile.

Meccanismi di consegna dei messaggi

L'approccio migliore per una messaggistica affidabile dipende dai requisiti specifici della tua app. Considera fattori come:

  • Esigenze attuali in tempo reale
  • Frequenza dei messaggi
  • Limitazioni della batteria

Messaggistica in tempo reale in primo piano

Quando la tua app è in primo piano, l'utente in genere si aspetta un volume di informazioni ragionevolmente elevato e vuole sapere cose come:

  • La persona a cui viene inviato il messaggio è presente sul dispositivo?
  • Stanno scrivendo?
  • Ha letto il messaggio?

Il modo tipico per supportare questo tipo di scambio di dati in tempo reale è utilizzare un protocollo client-server, come WebSockets. I WebSocket consentono una comunicazione persistente e full-duplex tra l'app e un server. La libreria OKHTTP include un'implementazione del protocollo WebSocket che puoi utilizzare nel tuo client Android.

Firebase Realtime Database fornisce un backend predefinito e un frontend client in grado di gestire questo tipo di comunicazione per tuo conto. Utilizza internamente WebSocket per la comunicazione in tempo reale tra il client e il server.

Messaggistica in tempo reale in background

Quando l'app non è più in primo piano, è fondamentale evitare di fare cose che influiscono negativamente sull'integrità del sistema e sulla durata della batteria. Poiché è ancora importante inviare le notifiche dei messaggi in modo affidabile, ti consigliamo di utilizzare Firebase Cloud Messaging (FCM).

FCM è una soluzione di messaggistica multipiattaforma che invia in modo efficiente notifiche e messaggi di dati a dispositivi Android (e altri). Sfrutta l'Android Transport Layer (ATL) per i dispositivi che dispongono dei servizi Google, in modo che la tua app possa ricevere notifiche delle modifiche quando non è più in esecuzione. La tempestività della consegna dei messaggi dipende dallo stato del dispositivo, dalla priorità del messaggio e dal fatto che la tua app sia soggetta a limitazioni a causa di Doze o standby app.

Migliorare l'affidabilità della distribuzione dei messaggi

Per rendere la distribuzione dei messaggi ancora più solida, prendi in considerazione queste strategie: