Progressive web apps (o aplicaciones web progresivas), es un término que se da a una nueva generación de aplicaciones que incrementan su funcionalidad, conforme las capacidades del dispositivo en el que se ejecutan, incrementan, de ahí la palabra progresiva. La siguiente parte del nombre web, hace referencia a que se construyen utilizando estándares de desarrollo web, algunos ya conocidos como HTML, CSS y javaScript; y una nueva generación de APIs de javaScript. La parte final app es porque las Progressive Web Apps se comportan como aplicaciones web nativas, pero usan tecnologías web.
 
¿Qué hace de una aplicación web, una Progressive Web App?
En términos muy simplistas, son páginas web que se comportan como aplicaciones nativas. Es una oración muy simple, pero también muy profunda. Las apps nativas (iOs, Android por ejemplo), históricamente han tenido una serie de ventajas sobre las páginas web, ¿como cuáles? Almacenamiento local, ejecutarse offline, notificaciones push, performance, acceso a hardware, acceso al homescreen del dispositivo, entre otros.
 
Las aplicaciones web progresivas están a medio camino entre las dos anteriores: son básicamente páginas web, pero mediante el uso de Service Workers y otras tecnologías se comportan más como aplicaciones normales que como aplicaciones web.
Mediante los Service Workers y otras tecnologías las aplicaciones web progresivas pueden seguir ejecutándose en segundo plano sin tener que vivir dentro del navegador. En el móvil es posible instalarlas como una aplicación más y también en Windows mediante la mediación de Google Chrome y Mozilla Firefox. Windows 10 va a añadir soporte para aplicaciones web progresivas en la tienda de Microsoft en la próxima gran actualización.
 
Principales ventajas
Una PWA es como una web responsive pero:

  • Tiene interfaz de aplicación nativa.
  • Funciona independientemente de la conexión a internet.
  • Envía notificaciones push.
  • Se actualiza automáticamente.
  • Es instalable.

Una PWA es como una aplicación móvil pero:

  • Puede encontrarse a través de cualquier buscador.
  • Se puede compartir mediante una URL.
  • Se distribuye vía web (evitando el lío de las tiendas de aplicaciones).

Algunas desventajas
¿Cuáles son sus desventajas respecto a una aplicación móvil nativa?
Tienen un rendimiento limitado y consumen mayor batería ya que el código nativo (Swift, Objective C o Java) es más rápido que el código web (ya que éste es interpretado en lugar de compilado).
 
Una PWA no puede acceder a todas las funcionalidades específicas de dispositivo como comunicación entre aplicaciones, acceso a contactos o funcionalidades avanzadas de la cámara.
 
Conclusiones
Las aplicaciones web progresivas son una evolución natural de las aplicaciones web que difuminan la barrera entre la web y las aplicaciones, pudiendo realizar tareas que generalmente solo las aplicaciones nativas podían llevar a cabo. Algunos ejemplos son las notificaciones, el funcionamiento sin conexión a Internet o la posibilidad de probar una versión más ligera antes de bajarte una aplicación nativa de verdad.