Una de las herramientas que utilizamos para crecer como equipo, para mantenernos actualizados y aprender unos de otros, así como para compartir nuestros conocimientos entre nosotros y con el mundo, son las reuniones. La última reunión estuvo dirigida por Carlos Vergara, desarrollador sénior de frontend de nuestro equipo. Su objetivo era dar a conocer al público en general las PWA: Progressive Web Applications. ¿Cuánto sabes sobre esto? ¿Conoces sus ventajas? ¿O cómo podría aplicarlo a su negocio? Si desea saber más sobre este tema, este artículo es para usted.
Antes de la PWA, el mundo de las aplicaciones interactivas se dividía en dos: aplicaciones web, que se utilizaban al visitar una URL desde el navegador web, y aplicaciones nativas, como las que se descargaban de la App Store de Apple o Google Play Store. Cada una tenía ventajas muy claras entre sí, lo que hacía que la elección de invertir en tecnología nativa o web fuera bastante lógica y, en la mayoría de los casos, algo obvia. Esto también significa que optar por una tecnología le costaría las ventajas de la otra. Por ejemplo, las aplicaciones nativas solían tener capacidades mucho mejores, especialmente a la hora de acceder a las funciones del teléfono, como la cámara, los archivos, el GPS o similares. Por otro lado, es más fácil acceder a las aplicaciones web (no es necesario descargar la aplicación ni ningún otro requisito que no sea tener una conexión a Internet), lo que suele significar un alcance mucho mayor para el público. Estas dos ventajas diferentes a veces se necesitan juntas y, hasta hace algún tiempo, solo se podía lograr teniendo una versión de cada una. No hace falta decir que, al hacerlo, se incurrió en altos costos tecnológicos y en complicaciones de administración, ya que ambas se actualizaron y funcionaron según lo esperado. Esta situación dio lugar a una nueva tecnología para cubrir el vacío: la PWA.
Las PWA surgieron alrededor de 2015 como un conjunto de tecnologías que permitían incorporar funciones que forman parte de las aplicaciones normales. La PWA es un tipo de aplicación web que utiliza una serie de tecnologías preexistentes para imitar diferentes aspectos de una aplicación nativa, normalmente móvil, y también puede ser una aplicación de escritorio. Muchas de estas tecnologías son las mismas que puede tener cualquier página web y que, de hecho, mejoran la experiencia del usuario. El principal distintivo es que funcionan sin conexión a Internet (aunque algunas funciones pueden requerirla, como pedir un producto o pagar algo) y, a diferencia de las aplicaciones web tradicionales, las PWA se pueden abrir y usar parcialmente sin ella.
Como se mencionó inicialmente, la PWA aporta ventajas a las aplicaciones nativas y web. Esto no significa necesariamente que la PWA sea una solución mágica o que ya no haya ninguna razón para usar aplicaciones nativas o web, pero si buscamos un punto intermedio, hay algunas ventajas claras que analizaremos a continuación. Una de las ventajas, en comparación con las aplicaciones nativas, que se deriva de no necesitar una conexión a Internet para todo, es que se pueden instalar con un solo clic, el usuario no tiene que ir a la App Store/Google Play Store ni esperar a que se descargue para hacerlo. En consecuencia, esto aporta otra ventaja: el propietario de la aplicación no tiene que pagar el 30% de sus ingresos al proveedor (App Store o Google Play). En comparación con las aplicaciones web, el uso de tecnologías PWA mejora en términos de tiempos de carga y disponibilidad. Además, dependiendo de los conjuntos de herramientas que se utilicen durante el desarrollo, se puede reutilizar una gran cantidad de código si se opta por crear una aplicación nativa para teléfonos inteligentes a partir de la PWA, y la combinación es exactamente la misma si se adopta un enfoque híbrido. Con muy poco trabajo adicional, una aplicación web normal puede transformarse en una PWA y, finalmente, con relativamente poco trabajo adicional, transformarse en una aplicación nativa. Otras formas de convertir una PWA en una aplicación nativa son React Native, React e Ionic Framework. Esto último es bueno para los proyectos móviles; en lugar de ser una abstracción general que consume el código de los usuarios, un proyecto con Ionic proporciona funciones al mismo nivel que el código personalizado. En lugar de que el código aloje todo el marco, ionic proporciona bibliotecas y la aplicación es propiedad exclusiva del equipo de desarrollo. En el caso de React Native, hay un tiempo de ejecución que hospedadores código personalizado, que básicamente se limita al uso de una serie de capacidades «externas».
Dos partes importantes de PWA son webmanifest y service workers. El manifiesto web es una lista de todos los recursos que tiene una aplicación. A través de un service worker, puede comunicarse con un sitio de navegación que los tenga sin tener que buscarlos más de una vez. Esto significa que, una vez que el navegador obtiene esos recursos, permanecen almacenados en caché de forma totalmente programable. Estos son vitales ya que dan al usuario la oportunidad de instalar la aplicación. Los trabajadores del servicio, entre otras actividades, administran la capa de red del navegador, la parte en la que la navegación obtiene algo de un servidor. Curiosamente, no es necesario que esos archivos sean archivos estáticos reales, ya que el servidor puede proporcionar versiones personalizadas de los mismos para el usuario específico que los descarga. No es necesario volver a buscar estos archivos en el futuro, a menos que el usuario lo solicite y la aplicación sepa que puede confiar en ellos.
La desventaja de las PWA es que no son aplicaciones, lo que significa que no pueden tener acceso a los archivos del dispositivo, no se pueden usar las API del propio sistema operativo, solo se pueden usar las API del sitio de navegación. Del mismo modo, si la navegación no permite realizar alguna acción, la PWA tampoco la permitirá. En términos de seguridad, dado que la PWA no puede acceder al dispositivo del usuario, cualquier actor hostil puede dañar el dispositivo del usuario o hacer cualquier cosa en contra de su voluntad.
Entre otros aspectos, hay una serie de técnicas de toma de huellas dactilares que solo se pueden aplicar con acceso al dispositivo. Desde solicitar las huellas digitales literales de los usuarios hasta medidas más sutiles, como obtener un resumen de las diferentes características únicas del dispositivo para diferenciar a los usuarios individuales sin preguntar directamente. Por ejemplo, las plataformas bancarias orientadas al cliente son deseables y, a menudo, muy importantes para identificar de forma única a una persona determinada a través de diferentes canales. Si no se puede saber qué aspecto tiene el dispositivo al acceder a la memoria disponible, al espacio en disco, a la versión del sistema operativo, etc., puede resultar extremadamente difícil obtener esa huella digital. En este tipo de productos, así como en los monederos digitales, en los que hay que tener a mano información financiera verdaderamente confidencial, las API de los navegadores todavía no ofrecen mucha seguridad operativa real, aunque es un área en la que se espera que se produzcan muchos avances en breve. Mientras tanto, aunque se recomienda que ninguna de esta información se guarde realmente en el almacenamiento del navegador, se hace que resida en el servidor, donde su seguridad se pueda gestionar de manera significativa. Teniendo en cuenta las futuras API que se vislumbran en el horizonte, un conjunto muy interesante son las API criptográficas, que permitirían un cifrado serio de los activos digitales; se trataría de una tecnología que, una vez que se pusiera a prueba adecuadamente, podría hacer que las PWA fueran mucho más interesantes para los actores del sector financiero y bancario, que son notoriamente reacios a los fragmentos de tecnología no comprobados.
Más allá de las ventajas y desventajas que ofrece PWA, ¿cómo continuará su camino? Mucha gente dice que la PWA es lo mejor de ambos mundos entre web y nativo, por lo que crecerá de forma independiente. Algunas empresas están realmente interesadas en la PWA y apuestan mucho por ella, ya que les resulta conveniente, especialmente frente a ciertos competidores. Un ejemplo de esta situación es el caso de Google contra Apple: como se explicó anteriormente, no es necesario ir a la App Store para instalar las PWA, lo que es beneficioso para los competidores de Apple. Para los usuarios de iPhone no hay otra forma de descargar aplicaciones nativas, ya que cada aplicación requiere el permiso de Apple y conlleva costes. Estas empresas han apostado por PWA para quitarles el control a estos jardines amurallados, que crecieron en la última década, y ofrecer la posibilidad de invadir esos espacios con aplicaciones, etc. creadas por pequeños, ágiles y auténticos artesanos, en las que puedan poner publicidad y recopilar métricas sin ningún inconveniente. Hoy en día, Google es el principal patrocinador promueve la PWA y proporciona tecnologías que facilitan el desarrollo de una PWA. Mientras apuestan por dar el control a las pequeñas fundiciones, a los programadores y a todos los que no quieren donar el 30% de sus beneficios a otra empresa, apuestan por las PWA para crecer en el futuro. Sin embargo, no será necesariamente así, ya que depende de las políticas internas de las empresas, lo cual es difícil de predecir a largo plazo.
Algunas de las ventajas mencionadas anteriormente que ofrece PWA se aplican al comercio electrónico. Hoy en día, todo el mundo espera que la conexión a Internet esté disponible las 24 horas del día, los 7 días de la semana, pero cuando no la tienen, esto afecta directamente a los ingresos del comercio electrónico. El hecho de que ciertas interacciones entre el usuario y PWA no requieran una conexión a Internet y permitan al usuario avanzar en el proceso de compra puede tener un impacto positivo en las conversiones del comercio electrónico. Como los usuarios no tienen que estar necesariamente conectados a Internet, pueden realizar un pedido sin ella. El pedido se almacena localmente y se envía una vez que se recupera Internet, estas acciones se pueden realizar en diferentes momentos sin ningún problema. La mayoría de las aplicaciones transaccionales tienen los mismos flujos principales, por lo que, excepto en el momento específico de completar una compra, no es necesario estar constantemente conectadas durante todo el proceso.
La aplicación se beneficia enormemente, por ejemplo, de no tener que cargar repetidamente los activos de cada SKU; a largo plazo, termina siendo una gran cantidad de dinero en ancho de banda, del que solo es necesario gastar una fracción. Magento está haciendo ciertos movimientos en torno a la PWA, lo que es positivo porque es la base de muchos sitios de comercio electrónico diferentes, lo que aumenta las probabilidades de que estas técnicas se popularicen.
En vista de lo anterior, creemos que se trata de un conjunto muy interesante de tecnologías fáciles de usar que podrían hacer que el futuro sea realmente emocionante en muchas áreas y probablemente las convierta en una serie continua de actualizaciones y exploraciones. Conocer las diferencias, así como las ventajas y desventajas que presenta la PWA en comparación con otros conjuntos de tecnologías, le permite saber qué es lo que mejor se adapta a su empresa. Como siempre, cuanto más informado esté y más sepa sobre lo que ofrecen, mejores decisiones tomará cuando necesite una solución de software. ¿Cómo puede su empresa beneficiarse de la PWA?