Aplicaciones Web Progresivas o PWA ¿Qué es? Y, ¿por dónde empezar?

Aplicaciones Web Progresivas o PWA ¿Qué es? Y, ¿por dónde empezar?

Aunque no queramos admitirlo, o nos cueste darnos cuenta, nuestra vida cotidiana gira en torno a modas. Modas de vestir, modas de consumir, modas de comportamiento, etc. Y el mundo tecnológico no iba a ser menos, concretamente en el entorno web.

Desde la creación de Internet, y con ello de la World Wide Web, hemos presenciado todas las fases y evoluciones que las “páginas web” y posteriormente las aplicaciones web, han sufrido durante casi treinta años, que se dice pronto.

Pero… ¿de dónde venimos?

Al principio de la era digital, las páginas web que se creaban, contenían casi en su totalidad elementos y datos estáticos, que solamente podían cambiar mediante codificación HTML rudimentaria y con muy poca flexibilidad.

A mediados de los años 90, la web dio un paso de gigante con la aparición de Java y su lenguaje Javascript. Esto permitió que las páginas webs tuviesen comportamiento dinámico, es decir, los datos que se le presentaban al usuario podían cambiar dependiendo de la interacción que el propio usuario ejercía sobre la propia página.

Junto a Java, también aparecieron tecnologías como PHP, que aunque denostadas y poco extendidas al principio, se acabaron imponiendo para, combinado con Java, formar un framework de tecnologías que permitía dotar a la web no solo de contenido dinámico, sino que se podía complementar con servicios o con operaciones en el lado del servidor, lo cual reducía la carga de información que tenía que soportar el navegador del cliente, y que en ciertos escenarios, podía ser bastante molesto.

Las Aplicaciones Web Progresivas

Si nos trasladamos a años y eras más recientes, podemos comprobar como hoy en día estamos inmersos en el mundo de las aplicaciones. Todo son aplicaciones. Aplicaciones para nuestros ordenadores, aplicaciones para nuestros smartphones, y cómo no, aplicaciones web.

Acostumbrados a convivir con aplicaciones nativas (esto es, aplicaciones específicamente programadas para un determinado Sistema Operativo), y aplicaciones web (que son ejecutadas en un navegador en forma de página web), surge el concepto de aplicación web progresiva.

A medio camino entre las dos definiciones anteriores, una aplicación web progresiva se define como una aplicación que utiliza las últimas tecnologías disponibles en los navegadores para ofrecer una experiencia en dispositivos móviles similar a la de una aplicación nativa.

progressive-web-apps

Lo mejor de cada casa

Ya que una AWP es una “fusión” entre dos tipos de aplicaciones, poseen varias ventajas clave maximizando las virtudes de ambas:

  • Mayor rendimiento.
  • Carga de contenido casi instantánea: La velocidad de carga con esta tecnología se ha incrementado exponencialmente con respecto a sistemas tradicionales más lentos como PHP.
  • Utilización de menos recursos: No es necesario una cantidad elevada de recursos (almacenamiento, RAM, CPU…) al ser ejecutadas por un navegador.
  • Menor trabajo y menor coste de desarrollo: Con los frameworks de código abierto existentes, la curva de aprendizaje para desarrollar este tipo de aplicaciones es mucho menor que sus antecesoras, además de contar con un modelo de desarrollo claro y conciso, que permite un mantenimiento sencillo.
  • User eXperience: No podemos entender las aplicaciones web modernas sin la experiencia de usuario. Las AWPs potencian el diseño UX y dotar al cliente de un entorno funcional, amigable, y sobre todo, retornable.

progressive-web-app-native-app

Me ha encantado. ¿Y ahora por dónde empiezo?

Si eres programador es posible que te suenen las siguientes tecnologías, ya que hoy por hoy, son las más extendidas para la construcción y desarrollo de AWPs:

  • Angular: Impulsado por su antecesor Angular,js y respaldado por Google nada más y nada menos, Angular es un framework lanzado en 2016 para la creación de aplicaciones web modernas. Utiliza un lenguaje derivado de Javascript, TypeScript y que rápidamente se ha extendido y colocado como el lenguaje estrella de las AWPs.
  • React: Más antigua que Angular, de 2013, surge React, apadrinada por Facebook, y es una biblioteca de código abierto diseñada para crear interfaces de usuario. Del mismo modo surge React Native, que es un framework para crear aplicaciones móviles utilizando Javascript y React.
  • js: Al igual que las dos anteriores, Vue.js también es otra biblioteca de código abierto para la creación de interfaces y aplicaciones web. Pese a que es la benjamina en cuanto a popularidad, se está convirtiendo en una muy buena alternativa debido a su ligereza y su curva de aprendizaje, mucho menor que Angular o React.

angular-react-vue.js

La web cambia, constantemente, y ya no tenemos que esperar tiempos innecesarios, ni recargas en el navegador. ¿Por qué no apostar por el ahora, por el ya?

¿Qué Aporta Docker desde El Punto de Vista de Testeo?

¿Qué Aporta Docker desde El Punto de Vista de Testeo?

Se han invertido numerosas horas de análisis exhaustivo y desarrollo, y tú y tu máquina sois el último obstáculo entre el software y su lanzamiento a producción. Te pones a punto, instalas, realizas el testing adecuado de tus casos de prueba, previamente acordados con el resto de tu equipo, y todo va como la seda. Luz verde. El programa está listo para “salir ahí fuera”. Sin embargo, en un giro inesperado de los acontecimientos, comienza a fallar en manos de los clientes, y se desata el caos y el nerviosismo. ¿Por qué? ¿Qué ha pasado si todo ha ido bien? La respuesta es sencilla (aunque su solución no tanto): las reglas del juego han cambiado.

Actualmente, el mundo de la tecnología es un mundo extremadamente heterogéneo, donde conviven numerosos sistemas operativos, que a su vez tienen versiones diferentes, y que a su vez tienen instalados programas de todo tipo. Que tu software haya funcionado en tu máquina de testeo, ya no quiere decir que vaya a funcionar en la de tus clientes. Ellos juegan con otras piezas.

(más…)