Una aplicación web progresiva (PWA) es el conjunto de técnicas de desarrollo de aplicaciones web móviles que implica la creación de aplicaciones que se sientan y se vean como las nativas. Al usar un stack de desarrollo web (JS, HTML y CSS), las aplicaciones web progresivas combinan una funcionalidad y experiencia de usuario fluida muy similar a las aplicaciones nativas. En pocas palabras, PWA es la aplicación web con el sabor de la aplicación nativa: después de la instalación, un usuario hace clic en su ícono en la pantalla de inicio del dispositivo y accede directamente al sitio web.
Capacidad de respuesta completa y compatibilidad del navegador.
Estas aplicaciones están construidas de acuerdo con los principios de mejora progresiva. La mejora
progresiva es la estrategia de diseño web de proporcionar la funcionalidad y el contenido básicos a todos,
independientemente de los navegadores que utilicen o la calidad de la conexión, al tiempo que se ofrecen
versiones de páginas más sofisticadas para los usuarios cuyos navegadores más nuevos puedan admitirlas.
Por lo tanto, los PWA funcionan con todos los navegadores y son compatibles con cualquier dispositivo,
independientemente del tamaño de la pantalla y otras especificaciones. Los usuarios de tabletas y móviles
tendrán la misma experiencia. Incluso puede ajustar la aplicación al escritorio si es necesario.
Independencia de la conectividad.
Las aplicaciones web progresivas pueden funcionar tanto sin conexión como en redes de baja calidad.
Interfaz similar a la aplicación.
Estas aplicaciones imitan la navegación y las interacciones de las aplicaciones nativas.
Notificaciones push.
Si se usan como parte de una buena estrategia de mensajería, las notificaciones automáticas pueden mantener
a los clientes interesados, motivándolos a abrir y usar una aplicación más.
Auto-actualizaciones.
Capaces de actualizarse automáticamente, las aplicaciones se mantienen con la última versión.
Seguridad.
Estas aplicaciones utilizan HTTPS, y se pueden creaer usuarios y roles para restricción de acceso.
Descubrimiento y fácil instalación.
Si bien los motores de búsqueda clasifican los PWA como aplicaciones, no se distribuyen a través de las
tiendas de aplicaciones. Se pueden compartir a través de una URL en su lugar para que se encuentren
fácilmente. La instalación es simple y requiere visitar un sitio y agregarlo a la pantalla de inicio de un
dispositivo. El ícono se instala en el móvil como cualquier otra aplicación.
Las aplicaciones web progresivas han tomado la funcionalidad de aplicaciones tanto nativas como web. Pueden
ejecutarse rápidamente, independientemente de los sistemas operativos móviles y los tipos de dispositivos,
además de proporcionar una funcionalidad rica como si se hubieran desarrollado para un dispositivo
específico. Gracias a la fácil instalación, la capacidad de detección, las actualizaciones automatizadas, la
red lenta o incluso el modo de trabajo fuera de línea, los PWA pueden mejorar la experiencia del usuario.
El manifiesto de la aplicación web (Web Manifest)
El manifiesto de la aplicación web, es un archivo JSON, es el primer componente que otorga al progresivo su
apariencia de interfaz de aplicación nativa. Con el manifiesto, un desarrollador puede controlar la forma en
que la aplicación se muestra al usuario (es decir, el modo de pantalla completa sin barra de URL visible) y
cómo se puede iniciar. El archivo permite a un desarrollador encontrar un lugar centralizado para los
metadatos de la aplicación web. El manifiesto generalmente contiene una URL de inicio, el nombre completo y
corto de una aplicación, enlaces a los íconos, tamaños, tipo y ubicación de los íconos. Un desarrollador
también puede definir una pantalla de inicio y un color de tema para la barra de direcciones.
Service Worker
Un service worker es otro elemento técnico que admite una de las características principales de las
aplicaciones web progresivas: el modo de trabajo fuera de línea, las sincronizaciones en segundo plano y las
notificaciones push típicas de las aplicaciones nativas. El service worker, es un archivo JavaScript que se
ejecuta por separado de la página web / aplicación. Responde a las interacciones del usuario con la
aplicación, incluidas las solicitudes de red realizadas desde las páginas a las que sirve. Debido a que el
service workers se ejecuta solo para procesar un evento específico, su vida útil es corta en el móvil y por
ende ocupa poco recurso.
Modo de trabajo fuera de línea.
Los service workers permiten almacenar en caché (interfaz), por lo que se carga instantáneamente en visitas
repetidas. El contenido dinámico necesario (es decir, el historial de mensajes o pagos, el carrito de la
compra, los avatares) se actualiza cada vez que se realiza la conexión. Estos mecanismos permiten un buen
rendimiento de la aplicación y una mejor experiencia de usuario. Por ejemplo, un usuario de Messenger no
verá la diferencia entre los modos en línea y fuera de línea con respecto a la interfaz.
Notificaciones Push.
Las notificaciones push son una herramienta eficaz para que los usuarios vuelvan a participar a través del
contenido y las actualizaciones rápidas de los sitios web que les gustan. Las aplicaciones web progresivas
pueden enviar notificaciones push incluso cuando el navegador está cerrado y la aplicación no está activa.
Las Notificaiones push son una gran opción para interactuar con prospectos o clientes y generar
lealtad con los mismos.
Sincronización de fondo
El service worker también está a cargo de esta característica. Retrasa las acciones hasta que vuelve la
conectividad estable. Por ejemplo, el mensaje enviado justo antes de que falle la conexión se marcará como
enviado y luego se enviará tan pronto como se restaure el servicio. Por lo tanto, los service workers pueden
enviar actualizaciones periódicas a la aplicación, lo que le permite actualizarse cuando se restaura la
conexión.
Seguridad de la capa de transporte (TLS)
Los PWA aprovechan el protocolo de Seguridad de la capa de transporte (TLS). TLS es el estándar de
intercambio de datos seguro y robusto entre dos aplicaciones. La integridad de los datos requiere servir el
sitio web a través de HTTPS e instalar un certificado SSL en un servidor.