Apple Push Notification service (APNs)

¿Qué es Apple Push Notification service?

Apple Push Notification service (APNs) es un servicio de entrega proporcionado por Apple para su ecosistema iOS, el cual transporta mensajes desde servidores remotos hasta dispositivos como iPhones, iPads y Macs. El rol del servidor de la aplicación en todo esto es actuar como un intermediario entre el servidor de la aplicación y los dispositivos mediante la facilitación de la transmisión de información en tiempo real. Cuando el equipo de desarrollo busca entregar una notificación push al dispositivo del usuario, emplean un APN para enviar ese mensaje directamente al sistema operativo del dispositivo. Entonces, el usuario recibe la notificación.

Aparte de eso, los APNs son responsables de proporcionar a los usuarios información relevante sobre las aplicaciones donde las instalan y hacerlo más sencillo para ellos mantenerse actualizados.

Un gráfico explicativo de cómo funcionan las notificaciones push, desde que un usuario permite una notificación desde una app, pasando por el ciclo completo del servidor de la app, y los APNs, y finalmente entregando la notificación de vuelta al dispositivo del usuario
Diagrama del proceso de notificaciones push con cinco etapas clave

Tipos de Notificaciones

Los APNs ofrecen varios tipos de notificación que pueden ser entregados a los gadgets de Apple. Estas notificaciones consisten en insignias, sonidos y alertas de texto personalizadas. Las insignias son pequeños símbolos numéricos que aparecen en los iconos de las aplicaciones, indicando la existencia de nuevo contenido o mensajes no leídos. Las notificaciones pueden estar acompañadas de sonidos para atraer la atención de los usuarios y actuar como una alerta audible. Las alertas de texto personalizadas permiten a los desarrolladores enviar mensajes dedicados, que contienen información sobre el uso de la aplicación directamente a los usuarios.

Con estos diferentes tipos de notificaciones, los desarrolladores pueden diseñar actividades fascinantes e interactivas para los usuarios de sus aplicaciones. Ya sea un juego informando al jugador sobre un nuevo nivel o una aplicación de mensajería enviando mensajes en tiempo real, los APNs siguen siendo el medio central de accesibilidad para varios tipos de notificaciones.

Evolución de los APNs

Los APNs fueron presentados por primera vez por Apple el 9 de junio de 2008, en la WWDC (Conferencia Mundial de Desarrolladores). Inicialmente, la aceptación de los APNs enfrentó problemas de escalabilidad debido al alto número de notificaciones push y los subsiguientes retrasos en la entrega de las notificaciones. Apple abrió el acceso a los APNs para Mac OS X, lo que permitió a los desarrolladores transmitir notificaciones push a los Macs y proporcionó una experiencia unificada para los usuarios a través de los dispositivos de Apple.

Mejoras Técnicas en los APNs

A lo largo de los años, los APNs han pasado por varias modificaciones técnicas para aumentar sus capacidades y efectividad. Una mejora notable fue el incremento de la carga útil de las notificaciones de 256 bytes a 2 kilobytes. Apple también creó una interfaz de envío más eficiente que redujo la sobrecarga y aumentó la eficiencia general de los APNs. Una de las mejoras clave de los APN fue el cambio a la API del proveedor HTTP/2. Esto introdujo una serie de beneficios, como la entrega de notificaciones push a los dispositivos de manera más rápida y eficiente mediante multiplexación.

Requerimientos y Especificaciones de la Red

Deben estar en lugar ciertos protocolos y estándares para establecer la conexión entre los servidores de aplicaciones y los APNs. Los APN utilizan puertos TCP específicos para la comunicación, y por lo tanto, es necesario que estén abiertos y accesibles.

  • Puerto 5223: Este puerto se comunica con el servicio de feedback de los APNs. El servicio de feedback permite a los servidores de aplicaciones obtener datos sobre dispositivos que han eliminado una aplicación o desactivado las notificaciones push.
  • Puerto 443: Este puerto se utiliza para comunicar la API del proveedor de APN. Es el canal de comunicación desde los servidores de aplicaciones a los APNs a través del cual se envían las notificaciones push a los dispositivos de los usuarios.
Número de puertoFuncionalidadSoluciones para problemas de acceso
5223Se utiliza para recuperar información sobre dispositivos que han desinstalado una aplicación o han desactivado las notificacionesUtilice métodos alternativos como HTTP/2 o proveedores de notificaciones push de terceros para la compatibilidad con APNs
443Puerto principal para enviar notificaciones push desde servidores de aplicaciones a APNsUtilizar métodos alternativos como HTTP/2 o proveedores de notificaciones push de terceros para la compatibilidad con APNs

A veces, estos puertos pueden estar bloqueados por restricciones de firewall o configurados de tal manera que no se permita el acceso directo. Para superar estas limitaciones, los desarrolladores pueden adoptar soluciones alternativas como HTTP/2 o servicios de notificación push de terceros que soporten APN.

Referencias

  1. Apple Push Notification Service” Notificaciones – Apple Developer
  2. Apple Push Notification service – Wikipedia
  3. iOS Push Notifications Explained | Airship
  4. iOS remote push notifications in a nutshell | por Deyan Aleksandrov | Medium

Additional Resources