Seguramente en estos últimos meses (y sobretodo si estás buscando esto a través de google) habrás escuchado eso de aplicaciones web progresivas, o web progressive apps. Parece un nombre super moderno que significa muchas cosas, ¿verdad? Y sobretodo, suena a caro.... ¿ Pero qué son las PWAs? En el artículo de hoy vamos a hablar de que son y en qué se diferencian estás PWA de una aplicación tradicional.
¿Qué es una Progressive web app?
De la misma forma que existen apps para Windows, Mac , Android , iOS (o videojuegos para XBOX, PlayStation o Nintendo Wii), existen también otro tipo de aplicaciones que en principio no dependen de ningún sistema operativo. Estas aplicaciones informáticas existen y funcionan dentro de un navegador como si fuese una página web.
Ejemplos de este tipo de PWAs podrían ser la página web de Twitter o Facebook. Si alguna vez utilizas la página web mobile de Twitter o Facebook, te darás cuenta de que puedes hacer básicamente lo mismo que en las aplicaciones nativas para Android o iOS, pero sin necesidad de instalar nada. Tan solo necesitas un navegador con una conexión a internet.
Como ves, parece una definición que no acaba de cuajar mucho. Lo que más caracteríza a una progressive web app es que toma muchos datos de internet - de algún servidor o conjunto de servidores - y los presenta al usuario. Por ejemplo, una app que se encarga de decirte el tiempo todos los días, o una página que todos los días te indica las últimas noticias de un conjunto de sitios web. Se puede decir que son páginas web sin más... pero lo cierto es que incluyen una serie de funcionalidades que hasta ahora han sido completamente ajenas a una página web, como enviarte notificaciones en tu escritorio. (seguramente habrás visto más de una página web que te pide permiso para enviarte notificaciones a tu escritorio).

Apps Nativas y Apps Web Progresivas
Las Web Progressive apps (PWA - podemos en realidad decirlo como queramos) como ya hemos dicho anteriormente, no son desarrolldas específicamente para un único sistema operativo, sino que corren y se ejecutan en un navegador de internet.
Las Apps nativas, como por ejemplo las de Twitter o Facebook para Windows 10 , utilizan características específicas del sistema operativo específico, y se diseñan en exclusiva para el mismo. Si quisieramos una app nativa para cada uno de los sistemas operativos, tendríamos que programarlas de manera diferente una a una. Con una Progressive web app esto no ocurre, ya que podemos sencillamente programar una única aplicación que corra en todos ellos como si funcionase a través de un browser.
Antiguamente, las aplicaciones nativas eran mucho más rápidas funcionando y ejecutándose que las aplicaciones web progresivas, pero con el paso de los años, el avance de este tipo de tecnologías, así como el avance de los ordenadores y la informática en general, cada vez este salto se nota menos y menos.

Progressive Web apps en el móvil
Una aplicación web progresiva está a medio camino entre una app nativa y una app web. Básicamente, son páginas web, pero mediante el uso de servicios del sistema operativo, tienen funcionalidades que se parecen más a una aplicación normal que a una aplicación web.
Por ejemplo, una PWA podría pedir al sistema operativo acceso a la cámara y utilizarla. Podría pedirle al sistema operativo utilizar fragmentos que normalmente se reservan más a las apps nativas. No obstante, siempre funcionan mediante código HTML y Javascript, y a través de servicios que intercomunican los diferentes sistemas operativos a través de estándares web (que impulsan empresas como Google). Estas PWA pueden además ejecutarse en un segundo plano sin tener que vivir dentro del navegador. En los teléfonos móviles pueden instalarse como una aplicación más (sin que el usuario note la diferencia).
En resumen, una aplicacióin web progresiva es la evolución natural de una app web. A menudo se difuminan las diferencias entre las apps nativas y las progressive web apps. Antes, las tareas más cercanas al hardware eran muy específicas de las apps nativas, pero cada vez son más comunes las PWAs ya que esta barrera poco a poco se va delimitando más y más. Algunos ejemplos pueden ser las notificaciones en el escritorio (PUSH), el funcionamiento sin conexión a internet o la posibilidad de probar versiones más sencillas y ligeras de descargar que las apps propias nativas.
¿qué ventaja tienen las PWAs?
Desarrollar una PWA es siempre más económico en relación al número de usuarios de diferentes sistemas operativos que pueden llegar a ellas. A través de una PWA puedes llegar a más usuarios con menos programadores. Si tienes que utilizar apps nativas, debes contratar más programadores y tener más códigos y programas listos para los diferentes sisteemas operativos . No osbtante, mediante una PWA puedes desarrollar una única app para todos los sistemas operativos.
En Hamro pensamos que a medida que la tecnología va avanzando ( y no va a pasos pequeños que digamos) las apps webs progresivas van ganando el terreno a las apps nativas. A medida que los ordenadores y móviles tengan más y más potencia, y las tecnologías y estándares web se vayan modernizando y actualizando, cada vez será más y más rápido utilizar estas PWA. Actualmente - sobretodo en el territorio mobile - la diferencia para el usuario es prácticamente imperceptible. Si bien las apps nativas tienen tendencia a correr mejor en terminales de peores prestaciones, a medida que el hardware evoluciona esto comienza a no ser un impedimento para ninguna de las apps.
Si estás pensando en realizar una app mobile y no estás seguro de si una PWA puede ser mejor o peor, puedes buscar en nuestra web los múltiples artículos en los que hablamos de la diferencia entre el desarrollo híbrido y el desarrollo nativo. Si tienes alguna duda, no dudes en ponerte en contacto con nosotros.