Es la terminología de moda. PWA's o lo que es lo mismo, las Aplicaciones Web Progresivas o _Progressive Web Apps_ en sus siglas en inglés. Es la última incorporación que llega a Windows 10 aunque no son exclusivas del sistema operativo de los de Redmond. Son el contrapunto de las aplicaciones nativas y sobre el papel, todo son ventajas.
Unas aplicaciones que no son otra cosa sino la materialización, el último paso, de la batalla entre las aplicaciones nativas y las aplicaciones web. Estas siempre han existido y en muchas ocasiones han supuesto una alternativa más que valida a las primeras así que ¿porqué no dar un paso más en su aprovechamiento?
Qué son las Aplicaciones Web Progresivas
Algo ya hemos adelantado. Las PWA's (Progressive Web Apps) cuentan con ventajas reales sobre las nativas. Las PWA's son una evolución de las aplicaciones web cómo las ofrecidas por HTML5 y los _services workers_ (una tecnología que nos permite ejecutar servicios en segundo plano en los navegadores), para ofrecer una experiencia de uso muy similar a la que podemos encontrar en una aplicación nativa instalada en nuestro teléfono móvil.
Las aplicaciones progresivas se basan en estándares web abiertos y están escritas principalmente, como una aplicación web convencional, en HTML, CSS y JavaScript. Las PWA's se basan en dos pilares:
Service Workers El primer paso es el uso de servicios en segundo plano. Al abrir la PWA el servidor carga e instala el service worker de forma que a partir de ahí este se inicia al arrancar la aplicación y se le informa de cada petición de red en el dominio correspondiente. Además el service worker y su caché se guardan en el navegador utilizado (Google Chrome, Mozilla Firefox y Opera) de forma que se podría usar una PWA incluso sin conexión, ya que carga el contenido desde la memoria caché.
Application Shell Architecture El app shell es lo primero que se carga y se visualiza y es la base de la interfaz. Por otro lado está el contenido que se muestra, que se carga desde Internet. Además el app Shell se guarda en la caché del service worker cuando se abre la app de forma que se gana en tiempo de carga. Ene resumen podríamos decir que la principal característica es que diferencia entre funcionalidad y contenido para cargarlos por separado.
Se trata cómo vemos de una tipología que ofrece un buen número de ventajas, pero también algún inconveniente frente a las aplicaciones nativas tradicionales.
Ventajas y algún inconveniente
La primera y más remarcable es que no precisan de instalación. De esta forma ganamos al no precisar de espacio dentro de nuestro teléfono móvil u ordenador, algo que en ocasiones es limitado. La parte negativa es que requieren de una conexión a internet constante y aunque eso no es tan difícil a día de hoy, si que hay momentos en los que no tenemos acceso a la misma.
Otra de las ventajas es que al no depender del _hardware_ del teléfono de la misma forma que una app nativa, permiten velocidades de carga superiores (si tenemos una buena conexión de red, claro está). Incluso existe la opción, aunque eso las haría casi una app nativa, de poder descargarla y usarla _off line_.
Además, pueden enviar notificaciones push directamente al _smartphone_ y en muchas ocasiones disponen de un modo para pantalla completa, de forma que el navegador desaparece de la vista durante el tiempo en que las estamos ejecutando.
Otra de las ventajas que ofrecen es que antes de pasar por caja y tener que comprarla, podemos probarla antes de descargarla. Un ahorro por lo tanto para nuestro bolsillo si es que al final no nos convence.
Las Aplicaciones Web Progresivas además pueden permitir el que la ejecutemos sobre cualquier sistema operativo (simplemente se ejecutan con abrir el navegador y sin importar el sistema), una gran ventaja frente a las apps nativas, en las cuales cada una requiere una app específica para iOS, Android, Windows, Mac... o cualquier otro sistema.
Ofrecen mayor seguridad frente a _malware_, algo que por ejemplo hemos visto en algunas apps en Android. El motivo es que no pueden acceder a partes concretas del sistema que sólo son accesibles desde el interior.
Por otro lado, el usar PWA's conlleva la ventaja de acceder casi siempre a la versión más actualizada de la aplicación, lo que la diferencia de las aplicaciones nativas. Las PWA son más fáciles de actualizar que las nativa, que han de ser actualizadas por el usuario cuando el desarrollador cuente con un _update_ disponible, lo cual requiere más trabajo por su parte.
El desarrollo y mantenimiento de una PWA requiere menos trabajo de programación, desarrollo y mantenimiento al día que una app nativa por ser al mismo tiempo una página web y una aplicación independiente de plataforma.
Esto se traduce a su vez en un menor coste de desarrollo y gestión frente a las app nativas. El motivo es que los ingresos no han de compartirse ni con Google ni con Apple por "colocarlas" en sus respectivas tiendas de aplicaciones. Otra cosa es que estas se puedan comprar fuera de la tienda de aplicaciones de turno... y todo lo que conlleva el proceso (seguridad en el pago, proceso de compra...) pero a eso aún no se ha llegado.
Podríamos resumir las ventajas en cinco puntos:
- Ofrecer el mejor rendimiento en móviles con mejores tiempos de carga
- Interfaz casi similar a la que ofrece una app nativa
- La posibilidad de trabajar sin conexión
- Poder enviar notificaciones a los usuarios
- Menor consumo de recursos
- Más facilidad para estar actualizada
¿Son mejores las aplicaciones web progresivas?
Nos encontramos por lo tanto con dos posturas enfrentadas. Aplicaciones nativas frente a Aplicaciones Web Progresivas. EN el caso de Microsoft parece que las primeras, representadas por las Aplicaciones Universales (UWP), las que en otro momento fueron la apuesta de Microsoft, tienen los días contados en favor de las segundas.
Parte del éxito también reside en el usuario. ¿Llegado el caso preferirías usar una aplicación web en lugar de una aplicación instalada en el teléfono móvil o el ordenador? Por ahora no sabemos si el futuro será o no de las aplicaciones web, pero éstas tienen un potencial innegable que se explota cada vez de forma más eficaz.
Imagen portada | Flickr
Ver 1 comentarios