La recepción confiable de mensajes es la función más importante de cualquier experiencia de mensajería de Android. También es importante implementar la mensajería teniendo en cuenta el estado del sistema y la duración de la batería. En este documento, se describen las estrategias y herramientas clave para garantizar que tu app para Android reciba mensajes de forma coherente, eficiente y confiable.
Mecanismos de entrega de mensajes
El mejor enfoque para la mensajería confiable depende de los requisitos específicos de tu app. Considera factores como los siguientes:
- Necesidades actuales en tiempo real
- Frecuencia de los mensajes
- Restricciones de batería
Mensajería en tiempo real en primer plano
Cuando la app está en primer plano, el usuario suele esperar un volumen de información razonablemente alto y quiere saber lo siguiente:
- ¿La persona a la que se le envía el mensaje está presente en su dispositivo?
- ¿Están escribiendo?
- ¿Leyeron el mensaje?
La forma típica de admitir este tipo de intercambio de datos en tiempo real es usar un protocolo cliente-servidor, como WebSockets. Los WebSockets habilitan la comunicación persistente y dúplex completo entre tu app y un servidor. La biblioteca de OKHTTP incluye una implementación del protocolo WebSocket que puedes usar en tu cliente de Android.
Firebase Realtime Database proporciona un backend prediseñado y un frontend de cliente que pueden controlar este tipo de comunicación por ti. Usa WebSockets de forma interna para la comunicación en tiempo real entre el cliente y el servidor.
Mensajería en segundo plano y en tiempo real
Cuando la app ya no está en primer plano, es fundamental evitar realizar acciones que afecten negativamente el estado del sistema y la duración de la batería. Como sigue siendo importante entregar notificaciones de mensajes de forma confiable, te recomendamos que uses Firebase Cloud Messaging (FCM).
FCM es una solución de mensajería multiplataforma que envía notificaciones y mensajes de datos de forma eficiente a dispositivos Android (y otros). Aprovecha la capa de transporte de Android (ATL) para los dispositivos que tienen los Servicios de Google, de modo que tu app pueda recibir notificaciones de los cambios cuando ya no se esté ejecutando. La puntualidad de la entrega de mensajes depende del estado del dispositivo, la prioridad del mensaje y si tu app está sujeta a restricciones debido a la función de Descanso o la App Standby.
- Obtén información para integrar FCM en tu proyecto de Android
- Explora la API de FCM (servidor) y sus funciones
Mejora la confiabilidad de la entrega de mensajes
Para que la entrega de mensajes sea aún más sólida, considera estas estrategias:
- Usa
WorkManagerpara activar tu app de forma periódica y verificar si hay mensajes nuevos cuando el dispositivo tenga conectividad de red y, de ser posible, cuando esté conectado a un cargador. - Obtén información sobre la entrega de FCM con herramientas como Firebase console y las métricas de entrega del SDK de Android de la API de datos de FCM.
- Usa mecanismos y herramientas de registro, como Firebase Crashlytics, para supervisar y solucionar problemas de entrega de mensajes.