Una App nativa es aquella aplicación que obtenemos de Google Play (Android), de la App Store (iOS) o a través de un enlace del Market Privado (iOS). Requiere descarga e instalación en el dispositivo.

Una PWA es una aplicación a la cual se accede directamente a través de una dirección Web. Es compatible con cualquier navegador que respete los estándares Web y puede abrirse desde cualquier dispositivo: móvil (Chrome en Android y Safari en iOS), tablet o PC.

¿Qué diferencias hay entre una App nativa y una PWA?

Las PWA no necesitan ser descargadas en el dispositivo: aunque puedes instalarla en el dispositivo no necesita esperar a ser descargada, sino que se accede prácticamente al instante en cuanto entras en la URL o abres el icono de la App.

El aspecto visual entre las PWA y las App nativas es prácticamente el mismo pero puede ocurrir que determinadas animaciones que requieran un uso dedicado del hardware del teléfono no tengan la misma fluidez, ya que los Service Workers (consulta más abajo) no soportan el acceso al chip gráfico del dispositivo, cosa que una App nativa sí puede hacer. Estas diferencias apenas se notan y dependen de las prestaciones del dispositivo donde se utilice.

En estas capturas puedes ver cómo se visualiza una PWA instalada en Android e iOS:

Y aquí la misma App en su versión PWA en Android e iOS desde Chrome/Safari:

Así se ve una App nativa:

Las PWA no tienen ningún coste (Resellers / Partners): publicar en PWA no tiene costes de publicación ni de mantenimiento.

Las PWA se publican de forma rápida y sencilla: no necesitas cuenta de Desarrollador ni subir la aplicación a ninguna tienda de Apps. Una vez publicada obtendrás una URL y se actualizará automáticamente según hagas cambios en el constructor.

Las PWA tienen casi todas las funcionalidades disponibles en nuestro constructor, pero por limitaciones en los Service Workers (consulta más abajo) hay algunas funcionalidades no disponibles: Funcionalidades disponibles para las PWA

¿Qué son los Service Workers?

Si traducimos al español Service Workers (SW) significa "trabajadores de servicios". Los "servicios" son las características (hardware) que nos puede ofrecer un dispositivo: cámara, GPS, procesador gráfico, giroscopio, micrófono, etc.; y "trabajadores" son las línea de código que comunican las PWA con el teléfono a través del navegador Web (por ejemplo Google Chrome).

En resumen, es lo que comunica la PWA con el hardware teléfono. Las App nativas comunican directamente con el hardware del teléfono sin navegador Web por medio.

Dicho esto, por el momento existen limitaciones como por ejemplo con las notificaciones Push:

  • Android tiene los Service Workers más avanzados del mercado y permiten que puedan enviarse notificaciones push a PWA de Chrome, pero por ejemplo no pueden enviarse a un punto GPS fijo o geo-fencing porque los SW no lo permiten.
  • iOS dispone de unos SW más limitados y desde Safari o Chrome no es posible enviar notificaciones push.

Es por este motivo por el que no hay algunas funcionalidades disponibles para las PWA, pero no te preocupes, los SW están en constante desarrollo y mejora y pronto dejarán de existir limitaciones.

¿Por qué mi PWA parece diferente a la nativa?

Puede ser que tu App PWA parezca diferente a las aplicaciones Android, iOS o del previsualizador, pero esto no es un fallo. Se debe a que las PWA no pueden acceder a determinadas funcionalidades nativas de los dispositivos móviles (Service Workers):

Para saber qué funcionalidades no son compatibles con las Progressive Web App revisa este artículo: Funcionalidades disponibles para las PWA

Si las imágenes guardan una relación de aspecto diferente puede deberse a los ajustes del navegador (zoom u opciones de accesibilidad). Si instalas la PWA se mostrará el ancho total y se visualizará con normalidad. Para ello sigue estos pasos.

También, debes tener en cuenta que nuestro constructor es multiplataforma y utiliza recursos del kit de desarrollo de cada plataforma. Por ejemplo, es posible que ocurra que una tipografía tenga un tamaño o un ancho determinado en PWA para Android pero la versión nativa de iOS tenga otro distinto.

¿Encontró su respuesta?