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:
- Utilizza
WorkManagerper riattivare periodicamente l'app per verificare la presenza di nuovi messaggi quando il dispositivo ha connettività di rete e (idealmente) quando è collegato a un caricabatterie. - Ottieni informazioni dettagliate sulla distribuzione di FCM con strumenti come la console Firebase e le metriche di distribuzione dell'SDK Android dell'API FCM Data.
- Utilizza meccanismi e strumenti di logging come Firebase Crashlytics per monitorare e risolvere i problemi di recapito dei messaggi.