Transición desde Apps de Chrome

Opciones de migración

Existen dos opciones principales para migrar desde las Apps de Chrome: aplicaciones web y extensiones de Chrome:

Las apps de Chrome se pueden migrar a aplicaciones web o extensiones de Chrome

En la mayoría de los casos, las aplicaciones web son la ruta preferida. Las extensiones de Chrome se pueden usar en algunos casos de uso que la Web no admite, como ejecutar en segundo plano sin una interfaz de usuario.

Aplicaciones web

La alternativa preferida para migrar desde Apps de Chrome es compilar una aplicación web. De esta manera, puedes usar funciones avanzadas, como las del proyecto de capacidades web. Las APIs que forman parte del proyecto de funciones ahora abarcan la mayoría de los casos de uso que antes se podían alcanzar con las APIs de la app de Chrome. Sin embargo, no es obligatorio usar ninguna de estas funciones: la flexibilidad de la Web permite a los desarrolladores elegir el nivel de complejidad que mejor se adapte a sus necesidades.

Ventajas de las aplicaciones web

Las aplicaciones web tienen algunas ventajas sobre las aplicaciones de Chrome:

  • Portabilidad: Las apps de Chrome solo se ejecutan en Chrome. Las aplicaciones web se ejecutan en la mayoría de los navegadores y sistemas operativos, aunque la compatibilidad con diferentes API varía entre ellos.
  • Experiencia del desarrollador: Las Apps de Chrome usan las mismas tecnologías que las aplicaciones web (HTML, JavaScript y CSS), pero algunas de sus capacidades avanzadas (por ejemplo, las páginas de fondo) no son estándar y, por lo tanto, requieren conocimientos adicionales.
  • Conjunto de funciones: Las Apps de Chrome dependen de APIs que ya no se mantienen ni actualizan con funciones nuevas. Las aplicaciones web dependen de la Web abierta, que evoluciona continuamente y tiene acceso a todas las APIs actualizadas.
  • Instalación y actualizaciones: Las Apps de Chrome requieren instalación y actualización manuales y, a veces, requieren revisiones de la tienda. Se puede acceder a las aplicaciones web directamente desde un navegador y, de forma opcional, se pueden instalar. Las actualizaciones de las aplicaciones web son instantáneas en el momento de la implementación en cuanto el navegador recupera los nuevos archivos.
  • Asistencia: Si bien las Apps de Chrome y las aplicaciones web tienen comunidades considerables, la plataforma web tiene una presencia mucho mayor y ofrece una gama más amplia de herramientas de desarrollo, como frameworks y bibliotecas, para brindar asistencia a los desarrolladores.

Apps web progresivas

Las apps web progresivas (AWP) son solo aplicaciones web que se compilan y optimizan con APIs modernas para ofrecer capacidades, capacidad de instalación y confiabilidad mejoradas. Su implementación te permite lograr experiencias similares a las de las apps en la Web.

Instalación

Las AWP son instalables en las plataformas de escritorio y dispositivos móviles, pero esto es opcional, ya que aún se puede acceder a ellas directamente desde el navegador. Los usuarios que eligen instalar una AWP pueden iniciarla mediante íconos y accesos directos. Puedes proporcionar metadatos en el archivo de manifiesto web de la AWP para indicar que, cuando se inicia después de la instalación, esta se abre en su propia ventana.

Confiabilidad

Las AWP tienen la capacidad de funcionar de manera coherente, incluso en condiciones de red desafiantes. Esto es posible gracias a un componente central de las AWP, conocido como service worker. Los service workers te permiten interceptar solicitudes de red y entregar contenido almacenado en caché para garantizar que la app funcione sin conexión o en situaciones de mala conectividad. Las bibliotecas como Workbox ofrecen un conjunto de estrategias listas para usar que te permiten implementar funciones comunes sin conexión, lo que simplifica en gran medida el desarrollo.

Capacidades mejoradas

El proyecto de funciones web ayuda a las aplicaciones web a lograr muchos casos de uso que las Apps de Chrome podrían implementar. Sin embargo, el modelo de seguridad de la Web impone ciertas limitaciones. Estos son algunos ejemplos de funciones web avanzadas que puedes usar en lugar de las APIs de apps de Chrome existentes:

  • Acceso mediante Bluetooth y USB: Bluetooth Web y Web USB ofrecen una alternativa a chrome.bluetooth y chrome.usb, respectivamente.
  • Administración del sistema de archivos: La API de File System Access es la alternativa a la API de chrome.fileSystem.
  • Combinaciones de teclas: Las aplicaciones web pueden admitir combinaciones de teclas para escuchar varios eventos de teclas (p.ej., keydown), pero las combinaciones que puedes admitir son limitadas. Cuando tu app web se usa en el modo de pantalla completa, puedes interceptar estas combinaciones de teclas del sistema con la API de Keyboard Lock.
  • Almacenamiento persistente: Solicitar el permiso de Almacenamiento persistente en tu aplicación web puede ofrecer capacidades similares a las del permiso unlimitedStorage en Apps de Chrome.
  • Ubicación geográfica: La API de ubicación geográfica se puede usar en aplicaciones web para ubicar la posición de un usuario, como alternativa al permiso de ubicación geográfica.
  • Procesamiento en segundo plano: Las alternativas al permiso background incluyen la API de Background Sync y la API de Periodic Background Sync.
  • Copiar en el portapapeles: La API de Async Clipboard te permite copiar y pegar imágenes y texto de manera programática.

Extensiones de Chrome

Las aplicaciones web son la mejor alternativa para migrar desde las Apps de Chrome, pero las extensiones de Chrome pueden ser una opción en algunos casos. Las extensiones también se compilan con tecnologías web (HTML, CSS y JavaScript) y se pueden usar para agregar o modificar funciones del navegador y personalizar otras aplicaciones web para mejorar la experiencia del usuario.

Compila una extensión independiente

Según la experiencia del usuario que desees proporcionar, podría tener sentido convertir tu app de Chrome en una extensión. Por ejemplo, puedes proporcionar un botón de acción del navegador que muestre una pequeña ventana emergente para tu interfaz de usuario o que navegue a una página que proporcione tu extensión. Este modelo de IU puede ser más adecuado para las apps que realizan la mayor parte de su trabajo en segundo plano.

Conecta una extensión de Chrome desde una aplicación web

Si tu app de Chrome ofrece funciones que no están disponibles en la plataforma web, es posible conectar una extensión de Chrome a una aplicación web y otorgarle acceso a las APIs de extensión.La desventaja de este enfoque es que los usuarios o los administradores de TI tienen que gestionar dos partes diferentes (aplicación web y extensiones complementarias). Es importante tener en cuenta que las extensiones de Chrome no se pueden ejecutar en algunos navegadores. Debes detectar cuando la funcionalidad requerida no esté disponible y proporcionar un texto explicativo para los usuarios de esos otros navegadores.

¿Debo crear una aplicación web o una extensión de Chrome?

Una aplicación web es la tecnología preferida para migrar desde Apps de Chrome. En algunos casos de uso, las extensiones de Chrome podrían ser una mejor opción. Antes de decidirte, analiza qué opción es mejor según diferentes factores:

  • Propósito: Las extensiones de Chrome se usan principalmente para ampliar la funcionalidad del navegador. Entre los casos de uso comunes, se incluyen las herramientas de productividad, el enriquecimiento del contenido de las páginas web y la agregación de información. Las aplicaciones web pueden tener un rango de casos de uso mucho más amplio aprovechando toda la potencia de la Web.
  • Experiencia del usuario: Las extensiones de Chrome suelen tener una interfaz de usuario más limitada y están diseñadas para integrarse con el navegador. Las aplicaciones web pueden tener una interfaz de usuario enriquecida que se ve como una aplicación nativa y altamente personalizable.
  • Portabilidad: Las extensiones de Chrome son específicas de Chrome. Algunos navegadores (por ejemplo, Firefox y Edge) admiten las mismas APIs de extensión que Chrome, pero esta compatibilidad no es universal. Las aplicaciones web son compatibles con todos los navegadores (aunque no todas las APIs lo son).
  • Visibilidad: Las extensiones de Chrome se deben instalar (por ejemplo, desde Chrome Web Store o mediante hosting propio) y se debe acceder a ellas mediante la barra de herramientas del navegador. Las aplicaciones web se pueden cargar instantáneamente a través de una URL y se puede acceder a ellas desde todos los navegadores. Se pueden instalar de manera opcional, pero no es obligatorio.
  • Conjunto de funciones: Las extensiones de Chrome tienen una integración profunda con Chrome mediante las APIs de Chrome. Las aplicaciones web pueden ser más limitadas en tareas de bajo nivel o del sistema. Como se mencionó, es posible llamar a una extensión desde una aplicación web para tener acceso a las APIs exclusivas de extensiones.
  • Trabajo en segundo plano: Las extensiones de Chrome pueden realizar trabajos en segundo plano y ejecutarse incluso cuando la ventana del navegador está cerrada. Por otro lado, las aplicaciones web suelen estar diseñadas para ejecutarse en primer plano y tienen capacidades en segundo plano más limitadas, que se usan principalmente para mejorar el rendimiento y la confiabilidad.

Pasos de la migración

Cómo migrar tus Apps de Chrome

Sigue estos pasos para migrar de una app de Chrome a aplicaciones web o extensiones de Chrome:

  1. Alcance las funciones de tu app: En algunos casos, tu app determinará si debes usar una aplicación web o si la única opción es compilar una extensión de Chrome. En los casos en que ambos pueden satisfacer tus necesidades, tienes la opción de elegir. Consulta el sitio de Funciones web y la referencia de la API de Chrome Extension para obtener más información sobre lo que ofrece cada tecnología.
  2. Aprende y compila: sigue los recursos de aprendizaje para obtener información sobre tecnologías y poner tu app en funcionamiento. La capacitación en AWP y las guías de introducción a la extensión de Chrome son excelentes recursos para empezar a usar cada una de estas tecnologías.
  3. Probar y distribuir: Ofrece tu nueva app a un porcentaje menor de usuarios antes de un lanzamiento más amplio para asegurarte de que funcione bien. Para distribuirlas más ampliamente, puedes acceder a las aplicaciones web e instalarlas desde el navegador. Por lo general, las extensiones de Chrome se distribuyen a través de Chrome Web Store o se alojan en una ubicación propia. Los administradores pueden instalar de manera automática ambos en situaciones administradas.

Migra a tus usuarios

Sin importar la tecnología que hayas elegido migrar de las Apps de Chrome, debes indicarles a los usuarios que desinstalen la app actual y guiarlos a la nueva experiencia.

Te recomendamos que actualices la app para que incluya un mensaje que indique que se descontinuó y que, de ahora en adelante, los usuarios deben visitar tu sitio web o Chrome Web Store (consulta el siguiente ejemplo). También puedes incluir un botón de "desinstalar" que llame al método uninstallSelf().

A partir de Chrome 75, se puede usar el método installReplacementWebApp() dentro de una app de Chrome, en respuesta a un clic en un botón o a otro gesto del usuario, para activar automáticamente el flujo de instalación de tu aplicación web de reemplazo.

Reemplazo de la app de Chrome para Google Fotos

Una consideración adicional es informar a los administradores del navegador Chrome Enterprise y ChromeOS Enterprise para que actualicen las políticas de las apps de sus organizaciones. Es común que los usuarios administrados de Enterprise y Education tengan sus apps y extensiones instaladas de manera automática mediante la política de administración. Los desarrolladores deben informar a los administradores que actualicen su política ExtensionInstallForcelist (que se usa para instalar Apps de Chrome) y la reemplacen por la política WebAppInstallForceList por la URL de tu app web.

Política de instalación automática de extensiones y aplicaciones web de la Consola del administrador.

Asistencia

Si tienes preguntas técnicas, estos son algunos recursos que puedes usar para obtener asistencia: