Notificaciones nativas para móviles con FlowEngine

Descripción

Hoy en día los teléfonos inteligentes se consideran cada vez más una pieza clave en cualquier solución digital. El aumento de sus capacidades informáticas y la mayor velocidad de las conexiones a Internet permiten un nuevo horizonte de aplicaciones conectadas. Algunas aplicaciones IoT utilizan hoy en día los smartphones como pasarelas, pero también es normal utilizar el smartphone como herramienta de notificación y conocimiento en algunos casos en los que la rapidez es clave.

Por eso hemos desarrollado un nuevo nodo para el motor de flujo (Flow Engine) de onesait Platform: onesaitplatform-firebase-notification. Este nodo cuenta con integración con Firebase. Firebase es una plataforma de Google que ayuda a los desarrolladores a manejar el backend de sus aplicaciones móviles. Algunas de las características de la plataforma están abiertas a todo el mundo y ese es el caso de la función de mensajería en la nube (Cloud Messaging).

Este artículo muestra un ejemplo de notificaciones nativas para aplicaciones Android utilizando el Motor de Flujo de onesait Platform. La guía resaltará el proceso necesario para llevar a cabo el ejemplo utilizando los módulos de la onesait Platform, mientras que la tarea específica de Firebase sólo se mencionará pero no se explicará en detalle. Por favor, contacta con nosotros para obtener información adicional sobre cómo integrar tu aplicación móvil dentro de la plataforma Firebase.

Para este ejemplo, hemos construido una aplicación (app) Android personalizada con un diseño y funcionalidad básicos:

Esta app tiene integración nativa con Firebase, lo que le permite estar conectada a Firebase y recibir notificaciones nativas (para saber más sobre la integración con Firebase, sigue este enlace).

El comportamiento de la aplicación es el siguiente:

  1. En primer lugar, tras la instalación de la app, ésta se conecta con Firebase y se le otorga un Token de Dispositivo. Este token es único para el dispositivo Android, aunque puede ser actualizado más tarde. Es aconsejable monitorear estos cambios usando el callback dentro del método onNewToken de tu clase, que extiende FirebaseMessagingService.

  2. Cada vez que se otorga un nuevo token, o cuando el usuario hace clic en el botón REGISTER DEVICE TOKEN, el token otorgado  se envía a onesait Platform. Estas claves de token se almacenan en la ontología NativeNotifKeys, que tiene el siguiente aspecto (Para este ejemplo, la aplicación será de mensajería, y el usuario será el código IMEI del smartphone anfitrión):

  3. Para realizar el paso 2, se debe crear la ontología NativeNotifKeys (ya existe en el entorno de demostración), y se creará un endpoint de la API en el entorno. Esta API publicará esta ontología a través de una URL, con capacidades INSERT. Para este ejemplo, éste es el aspecto de la definición de la API:

  4. Ahora la app, que ya tiene un token válido de Firebase, ha replicado esta información en la onesait Platform, permitiendo a los desarrolladores aprovechar estos datos y enviar notificaciones a estos dispositivos. Pero todavía tienes que habilitar una forma de insertar mensajes a través de onesait Platform a los dispositivos finales. Por eso debes definir esta ontología, para registrar los mensajes entrantes:

  5. Después de la creación de la ontología, tienes que definir la regla para enviar los mensajes insertados en la ontología notificationMessage a los dispositivos finales. Utiliza el módulo onesait Platform Flow Engine para realizar esta operación:

  6. El primer bloque sólo inserta mensaje de notificación en la plataforma. Después, el segundo bloque utiliza un nodo onesaitplatform-notification-endpoint para suscribirse a las inserciones anteriores en la ontología notificationMessage. Este nodo insertará el mensaje en el nodo onesaitplatform-firebase-notification, que se encarga de la integración de Firebase para la aplicación de demostración.

  7. Con el flujo establecido, y antes de empezar a enviar notificaciones, vamos a explorar dos tipos diferentes de mensajes que hemos integrado en el ejemplo:

    1. Notificación a un único dispositivo específico.

    2. Notificación a todos los dispositivos suscritos a un determinado tema (o topic).

  8. Para cambiar este comportamiento, existe un campo topic dentro de la ontología notificationMessage. Si está en blanco ("topic":""), entonces el nodo firebase-notification enviará esta notificación al dispositivo correspondiente al campo user dentro del mensaje, utilizando el token actual de Firebase actualizado por la app a través de la API en NativeNotifKeys. Estos son el mensaje, la salida del Motor de Fluj y cómo aparece la notificación en el teléfono móvil:

  

La notificación aparece rápidamente con el título y el cuerpo que definas en la instancia de la ontología. Firebase afirma que más del 95% de las notificaciones que envían se entregan en un intervalo de 250 milisegundos.

El último paso será enviar notificaciones a un grupo de dispositivos suscritos a un determinado tema. Para eso, primero hay que ir a la app y pulsar el botón SUBSCRIBE TO NEWS:

Y luego cambiar el topic a “news” dentro de la inserción del motor de flujo:

Para probar las notificaciones basadas en temas, es mejor instalar la app de ejemplo en más de un teléfono para poder ver la diferencia. Desde un teléfono, el resultado será la llegada de la notificación:

El diagrama de tiempo para entender el flujo completo de acciones es éste:

¡Ahora pruébalo tú mismo y dinos qué tal ha ido!

Si tienes alguna duda o petición, por favor ponte en contacto con nosotros en support@onesaitplatform.com