Qué características tienen las aplicaciones Web Progresivas frente a las aplicaciones nativas y viceversa, en Android [cerrado]


En 2015 Google introdujo un nuevo enfoque para el desarrollo de aplicaciones web para Android: aplicaciones web progresivas. Uno puede crear una aplicación que parecerá una aplicación nativa, podrá usar el hardware del dispositivo como la cámara y los acelerómetros, recibir notificaciones push, tener un icono de lanzador, trabajar sin conexión, almacenar datos locales, etc.

En Android, qué características proporcionan las aplicaciones nativas que las aplicaciones web progresivas no admiten, y viceversa.

Author: Dan Dascalescu, 2016-02-19

2 answers

TL;DR - A partir de febrero de 2017, las Aplicaciones Web Progresivas son una plataforma suficientemente poderosa que Twitter ha movido todo su tráfico web móvil a una React PWA.

A partir de agosto de 2016, las aplicaciones Web Progresivas en realidad ofrecen más acceso al hardware de lo que comúnmente se piensa. Aquí hay una captura de pantalla de whatwebcando.hoy desde mi Chrome 52 estable en Android:

Lo que la Web Puede Hacer Hoy-Chrome 52 en Android

El acceso al hardware incluye

Próximo acceso al hardware

Estas características se están implementando o ya funcionan en algunos navegadores:

Otro punto importante a tener en cuenta es que el Marco de los Ensayos de origen (implementado en Chrome) permite a los fabricantes exponer y probar las capacidades de hardware (o software) sin tener que pasar por el proceso de estandarización. Por ejemplo, un fabricante de teléfonos podría exponer una API para leer los valores de un sensor de presión, refinarlo y luego enviarlo para su consideración al W3C.

Además del acceso por hardware, también hay funciones de software tradicionalmente empleadas por aplicaciones nativas que ahora están disponibles para aplicaciones web.

Tradicionalmente nativo características que las PWA también pueden usar

Estas características cubren muchos casos de uso, y muchas aplicaciones nativas populares hoy en día podrían reescribirse como PWA. Tomemos a Slack, por ejemplo. Su alternativa de código abierto, Rocket.Chat, está construyendo una versión PWA . Para más demos de PWA, ver https://pwa.rocks .

Características similares a las nativas que llegan a PWA

Características nativas de Android aún no disponibles para PWA

  • acceso al sensor de huellas dactilares (en desarrollo)
  • contactos, calendario y el acceso a los marcadores del navegador (la falta de acceso a estos podría verse como una característica por los usuarios conscientes de la privacidad)
  • alarmas
  • funciones de telefonía-interceptar SMS o llamadas, enviar SMS/MMS, obtener el número de teléfono del usuario, leer el correo de voz, hacer llamadas telefónicas sin el diálogo de marcado
  • acceso de bajo nivel a algunas características de hardware y sensores: linterna, sensor de presión atmosférica
  • acceso al sistema: administración de tareas, modificación de la configuración del sistema, logs

Las aplicaciones web progresivas ofrecen características que las aplicaciones nativas carecen

  • descubribilidad: los motores de búsqueda pueden encontrar fácilmente contenido en aplicaciones web progresivas, pero una aplicación nativa centrada en el contenido como StackOverflow no se mostrará entre los resultados de búsqueda de la tienda de aplicaciones para el contenido al que sí ofrece acceso, como "pwa vs.nativo". Este es un problema para comunidades como Reddit, que no pueden exponer sus numerosas subcomunidades a la tienda de aplicaciones como individuales "apps".
  • linkability - cualquier página / pantalla puede tener un enlace directo, que se puede compartir fácilmente
  • bookmarkability - guarde ese enlace para acceder a la vista de una aplicación directamente
  • siempre fresco - no hay necesidad de ir a través de las tiendas de aplicaciones para enviar actualizaciones
  • acceso universal - no sujeto por las tiendas de aplicaciones a veces políticas arbitrarias o (involuntarias) restricciones geográficas
  • grande ahorro de datos, extremadamente importante en los mercados emergentes con acceso a Internet costoso y/o lento. Por ejemplo, el sitio web de comercio electrónico Konga reduce el uso de datos en un 92% para la primera carga migrando a un PWA.
  • baja fricción de distribución - si su aplicación web progresiva está en línea, ya es accesible para los usuarios de Android (y otros dispositivos móviles).

Nota final: los PWA se ejecutan, con la misma base de código, tanto en el escritorio como en la mayoría de los dispositivos móviles. En entornos de escritorio (ChromeOS y más tarde Mac y Windows), se inician de la misma manera que otras aplicaciones y se ejecutan en una ventana de aplicación normal (sin pestaña del navegador).

 139
Author: Dan Dascalescu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-04 20:12:58

La principal ventaja de las aplicaciones nativas es que pueden acceder a todas las API nativas que una plataforma podría ofrecer (contactos, flash de cámara, SMS, telefonía, red, bluetooth, sensores, sockets raw...) mientras que una aplicación web progresiva no puede (todavía), ya que están limitados por las capacidades web estándar.

El objetivo de las aplicaciones web progresivas es ampliar estas capacidades para cubrir los casos más críticos. En este estado de ánimo, echa un vistazo a Progressive Web Apps: Escapar pestañas Sin Perder el Alma donde se puede encontrar una lista de lo que una aplicación web progresiva debe ofrecer:

  • Responsive: para adaptarse a cualquier factor de forma
  • Conectividad independiente: Progresivamente mejorada con los Trabajadores de servicios para permitirles trabajar sin conexión
  • Interacciones tipo aplicación: Adopte un modelo de aplicación Shell + Content para crear navegaciones e interacciones appy
  • Fresh: de forma transparente y siempre actualizada gracias al proceso de actualización de Service Worker
  • Seguro: Servido a través de TLS (un requisito de Trabajador de servicio) para evitar fisgonear
  • Detectable: Son identificables como "aplicaciones" gracias a los manifiestos del W3C y el alcance de registro de los Trabajadores de Servicios que permite a los motores de búsqueda encontrarlos
  • Re-engageable: Puede acceder a las UIs de re-engagement del sistema operativo; por ejemplo, Notificaciones push
  • Instalable: a la pantalla de inicio a través de las indicaciones proporcionadas por el navegador, lo que permite a los usuarios "mantener" las aplicaciones que encuentran más útiles sin la molestia de una aplicación tienda
  • Enlazable: lo que significa que son cero fricción, cero instalación y fáciles de compartir. El poder social de las URL importa.

Desde estos puntos, linkable fue una de las primeras características importadas por aplicaciones nativas de la Web Abierta en forma de mobile deep linking.

Pero mención especial merecen el combo fresco + instalable ya que representa una de las principales ventajas de la Web como plataforma sobre la alternativas nativas. Aquí instalable significa que aparece en la pantalla de inicio. Esto no significa que deba pasar las etapas de descarga e instalación. Abre una URL o descubre un servicio mientras navega y se hace: aparece en la pantalla de inicio.

Fresh se refiere a cómo funciona una web regular, ofreciendo una carga instantánea y actualizaciones sin interrupciones. No se le pide que instale una actualización desde la web de YouTube, se implementa y usted lo consume la próxima vez que lo visites.

No estoy hablando de los beneficios de los puntos restantes porque estabas preguntando por las diferencias y, por ejemplo, re-engagement es algo que las aplicaciones nativas ya tienen a través de servicios push y notificaciones y ahora las aplicaciones web se han puesto al día.

Otra pregunta relacionada y clave es sobre qué plataforma es más adecuada para sus necesidades. Si no está accediendo a capacidades de hardware especiales, la Web debería ser suficiente y al elegir la web, está libre de los mercados, los ecosistemas propietarios y, por cierto, puede garantizar cierto grado de ubicuidad y interoperabilidad.

Como notas finales, te recomiendo que navegues www.flipkart.com desde un móvil con Chrome. Es bastante impresionante: sin errores, navegación suave, sensación de aplicación. Desconéctate y seguirá funcionando. Un verdadero ejemplo del mundo real de ese post. Agregue la aplicación a la pantalla de inicio y la próxima vez que la abra, la experiencia es aún mejor.

Puede echar un vistazo a Firefox OS, así como un ejemplo de traer más API de plataforma a la Web Estándar (con más o menos éxito).

 11
Author: Salva,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-26 10:52:54