PWAs vs Aplicaciones Nativas: cuándo es mejor implementar una o la otra

El nuevo paradigma de las aplicaciones no solo ya está instalado sino que ya está siendo explotado en muchos mercados a la vez. No hay lugar en el mundo donde las compras o acciones online no estén creciendo, más aún debido a la nueva normalidad por la pandemia.

Esta estadística suele venir de la mano del crecimiento del uso de los smartphones, que cada vez representan un porcentaje más alto de toda la telefonía celular y la navegación en la web.

Con este crecimiento, cada vez más productos digitales salen al mercado a partir de la necesidad de los negocios de establecerse online a nivel operatoria.

Hoy ahondaremos en los distintos tipos de aplicaciones que se pueden desarrollar, analizando tres tipos de ellas: las aplicaciones mobile nativas, las aplicaciones web y, en constante crecimiento, las Progressive Web Apps o PWAs.

La elección del tipo de aplicación puede ser esencial porque va a variar según el target, la solución o el servicio que ofrece la empresa, los tiempos disponibles para salir al mercado y el presupuesto disponible.

Aplicaciones Nativas

Las aplicaciones nativas son las que por lo general obtienen el mejor rendimiento posible debido a su desarrollo. La palabra “Nativa” se asocia a la forma en la que se crea, es decir, que una App se crea, se programa, se desarrolla y se testea haciendo foco en una plataforma en concreto, utilizando lenguajes y herramientas acordes a la misma.

Las aplicaciones nativas se desarrollan específicamente para cada OS o sistema operativo, y tienen la ventaja de que nos permiten aprovechar más funcionalidades tanto del hardware como del software de dicho OS.

Una particularidad es la exclusividad: si desarrollás una app para iOS (Apple) en Swift con todas las condiciones adecuadas para que esta funcione en todos los dispositivos Apple, no va a ser compatible con Android.

Esta particularidad puede ser una desventaja para ciertos proyectos en los que se requiere una herramienta mobile, ya que además de desarrollar el producto en iOS, tendremos también que hacerlo en Android, generando dos versiones distintas del producto, hasta a veces con diseños y estructuras distintas por las diferencias en los sistemas de diseño como Material Design o Human Interface.

En caso de que necesitemos una solución mobile ¿Es una app nativa la mejor opción? Desde lo funcional y la calidad final del producto, por supuesto. Pero requiere una cantidad de recursos y tiempo de desarrollo de cierta magnitud.

¿Y si hacemos una versión web como MVP?

Las aplicaciones web o webapps son de alguna forma lo contrario a las apps nativas. Son productos 100% accesibles desde la web, y viven en la misma como cualquier otro sitio.

Twitter tiene su versión nativa para Android y para iOS, pero también tiene su versión web, accesible desde twitter.com, respetando una gran parte de sus funcionalidades nativas.

Aprovechando el ejemplo de Twitter, esta misma también tiene versiones nativas para MacOS y Windows.

La ventaja de desarrollar un producto en un entorno web no sólo es la fácil accesibilidad, sino también el ahorro de recursos en tiempo y dinero. En este caso no tendremos que desarrollar dos productos en dos entornos distintos. Con uno que respete los estándares de la web, alcanza.

Desde ya que esto requerirá criterios mínimos como que sea 100% responsive (adaptable a dispositivos mobile), cross browser (adaptable a distintos navegadores) y que mantenga parámetros básicos de performance y usabilidad.

Podríamos crear un excelente producto apoyando el stack en tecnologías como PHP o NodeJS en lo que respecta a back, y React o Vue en lo que es front, con metodologías serverless o servidores como AWS y alcanzar un resultado óptimo en cuanto a últimas tendencias, performance y seguridad.

Una desventaja al desarrollar productos en un contexto de webapp, especialmente cuando el target principal de usuarios accedería a los mismos desde un celular, tiene que ver con esto último: cómo ingresar.

Simple: desde el navegador.

Nuestros usuarios que quieran resolver problemas desde sus celulares, tendrán que ingresar a nuestro producto desde el browser del celular, y eso puede hacer a la experiencia no tan buena.

Las webapps pueden ser un excelente recurso para desarrollar un MVP que cumpla su función como producto mínimo, nos de aprendizajes en el mercado, y nos permita encarar un proyecto de desarrollo nativo en el mediano plazo.

La versión web mobile de Twitter, junto con la versión nativa para iOS.

¿Dónde entran las PWA?

Las progressive web app son un ejemplo excelente para el último punto mencionado: los MVPs.

El término web apps progresivas, como dice Mozilla, no es un término formal u oficial. Es simplemente un concepto referido a aplicaciones flexibles y adaptables utilizando nada más que tecnologías web.

Las PWAs son web apps desarrolladas utilizando ciertas tecnologías y patrones que permitan aprovechar tanto funcionalidades web como nativas.

Las aplicaciones web son más encontrables que las nativas: es mucho más fácil y rápido visitar una página web que una aplicación al navegar por internet.

Por otro lado, como vimos anteriormente, las aplicaciones nativas se integran de una forma más eficiente con los dispositivos móviles y ofrecen una mejor experiencia.

Las PWAs tienen la ventaja de que nos permiten unificar estos conceptos en un sólo producto, aprovechando lo bueno de los dos mundos.

¿Cuándo una web app se considera una PWA? Cuando cumple algunos patrones como:

  • Ser encontrable, para que los contenidos puedan ser consumidos desde motores de búsqueda como Google.
  • Ser instalable, para que se pueda abrir como cualquier otra app desde la home screen de un celular.
  • Ser linkeable, para que un usuario pueda compartirla enviando una URL.
  • Ser independiente a la conexión, para que funcione offline o con mala conexión.
  • Ser progresiva, para que funcione lo mínimo e indispensable en navegadores fuera de uso, pero sea 100% funcional en navegadores actuales.
  • Enviar notificaciones cuando se generen nuevos contenidos
  • Ser responsiva, para que se adapte a celulares, tablets, computadoras, TVs, etc.
  • Ser segura, para que las conexiones entre el usuario, la app y el servidor en el que se aloja estén protegidas de terceros que intenten acceder a información sensible.

 

¿Que ventajas tienen las PWA? Que todos estos ítems mencionados, al utilizar tecnologías modernas y preparadas para desarrollar aplicaciones progresivas, no generan un esfuerzo demasiado extra para los equipos.

Es decir, si ya estamos desarrollando una web app para lanzar un producto, puede valer la pena invertir un poco más en que la misma funcione como una web app progresiva cumpliendo con sus requisitos mínimos.

¿Qué sitios conocidos son PWAs? Garbarino, que lanzó su PWA hace unos tres años, generando grandes optimizaciones al negocio como se puede ver en este estudio de caso de Google.

Otra empresa es AliExpress, que generó un incremento de más del 100% en conversiones de nuevos usuarios.

Links útiles para adentrarse en las PWA:

  • El sitio web.dev, por Google Developers
  • Lighthouse, una herramienta de Google para analizar la performance de los sitios web, que nos permite detectar si una URL es progresiva.
  • PWABuilder, para transformar sitios en PWAs