un backend propio • Barato si no requieres muchos envíos • SDKs y clientes específicos para iOS o Android. Fácil integración • Paneles de desarrolladores: gestión tipos de push • Integración con plataformas en la nube (Amazon o Google) Inconvenientes: • Sincronización usuarios BBDD propias fuera de la del servicio • Costes en altos volúmenes de envío
Apple Push Notification Service(APNS) • gestión del certificado de nuestra app (sandbox y production) • Gestión de errores • Envío multihilo de mensajes
alertas • Construcción de una librería propia (dependencia Maven) de composición de notificaciones (Apple y Android). ◦ Combinamos JAVAPNS y GCM (también tenemos Android) ◦ Creamos el mismo mensaje independiente de la plataforma ◦ Unificamos la gestión de errores de cada plataforma • Proceso de envío de notificaciones ◦ Consume alertas que notificar a queue de JMS ◦ Consultar usuario-token device para el envío ◦ Construcción de mensaje (BBDD y librería) ◦ Feedback de errores (canonical deviceID)
{ action = newAds; adId = 25403184; adsNumber = 1; alertId = 513466; aps = { alert = { "loc-args" = ( 1, "pisos, centro hasta 150.000" ); "loc-key" = "%@ anuncios: %@"; }; badge = 0; sound = default; }; typology = homes; } "loc-key" debe de estar en los ficheros localizables de la app. el valor "loc-args" son los posibles argumentos que puede tener el texto: Payload
de dispositivos y registro de notificaciones enviadas: dispositivos activos, log de notificaciones enviadas/falladas/reintentadas, Contador del badge (usado para el envío del badge a iOS). • Cola JMS a los que estamos suscritos para enviar las alertas • proceso app de envío de notificaciones escalable • proceso de reenvío de notificaciones fallidas • proceso de feedback para el de-registro de dispositivos (cada madrugada)