Mejor integración para Open Web Apps en Android

26 agosto, 2014 4:39 por

Esta es una traducción del artículo original publicado en el blog de Mozilla Hacks.

Hasta ahora, el desarrollo de aplicaciones web en móviles ha sido un poco difícil.

Después de invertir el tiempo desarrollando tu aplicación, hacer que tus usuarios la instalen resulta difícil. Especialmente cuando el concepto de instalar una aplicación web no está muy bien definido.

El método más popular es añadir un acceso directo a la pantalla de inicio. Esta es una problemática en un varios frentes, entre otras cosas porque la gestión de aplicaciones web – especialmente alrededor del lanzamiento, el intercambio y las desinstalación de aplicaciones web – difiere significativamente de la gestión de las aplicaciones nativas.

Open Web apps en Android

La aplicación web «existe» solamente en la pantalla de inicio, no en el panel de aplicaciones.

Open Web apps en Android

Cuando está ejecutándose, no está claramente marcada en la lista de Aplicaciones Recientes.

Incluso una vez que obtengas algo como un flujo de usuario elegante para la instalación de tu aplicación en la pantalla de inicio del teléfono, a menudo encontrarás que tu aplicación está ejecutándose en un visor web degradado o desactualizado, sin las mejoras de compatibilidad y optimización de velocidad de un navegador de escritorio.

Lo que a nosotros como desarrolladores nos gustaría, es un moderno y rápido tiempo de ejecución que esté actualizado en nuestros dispositivos.

¿No sería bueno también para nuestros usuarios lanzar y gestionar sus aplicaciones web de la misma forma en que lo hacen las aplicaciones nativas?

Presentando el APK Factory

Hemos estado trabajando por bastante tiempo en hacer que las aplicaciones web sean una realidad en el escritorio. En el escritorio, si tu instalas una aplicación web, Firefox reempaquetará la aplicación como una aplicación de escritorio, así que se integrará con el resto de tu sistema – como fue detallado en el reporte del progreso de las Open Web Apps multiplataforma.

Esto significa estar en el menú de Inicio en Windows, o en la pantalla de Control de Lanzamiento en Mac OS X.

A partir de Firefox 29, esto aplica a Android también.

Esto significa que como desarrollador web, puedes confiar en un moderno y actualizado ambiente de ejecución web para correr tus aplicaciones web. Incluso mejor, el ambiente de ejecución está proporcionado por una aplicación Android ordinaria, lo que significa que se mantendrá moderna y actualizada, y finalmente podrás decirle adiós al Android Browser.

Open Web Apps en Android

Una aplicación web, llamada ShotClock. Nota su ícono en la esquina superior derecha de la pantalla.

El usuario experimentará tu aplicación web como si ésta fuera una aplicación Android nativa real:

  • La aplicación aparece en el Panel de Aplicaciones y la lista de Aplicaciones Recientes, con su propio nombre e íconos,
  • La aplicación puede ser instalada y desinstalada como si fuera una aplicación Android nativa,
  • La aplicación puede ser actualizada como una aplicación Android nativa.
Open Web Apps en Android

En el Panel de Aplicaciones.

Open Web Apps en Android

En la lista de Aplicaciones Recientes: Todas estas aplicaciones son aplicaciones web.

Open Web Apps en Android

Instalada con ciertos permisos.

Mejor todavía, es que hacemos estos cambios sin que el desarrollador necesite hacer algo. Como desarrollador, llegas a escribir aplicaciones web asombrosas, y no preocuparte sobre las diferentes empaquetados necesarios para entregar las aplicaciones web a tus usuarios.

Así que si ya estás haciendo aplicaciones de primera clase para Firefox OS, estás haciendo aplicaciones de primera clase para Android.

Los detalles técnicos

En Firefox, puedes instalar una aplicación usando una llamada al método window.navigator.mozApps.install(manifestUrl). Cualquier sitio web puede usar esta API, así cualquier sitio web puede ser un tienda de aplicaciones.

El manifestUrl es la URL de un documento manifest.json que describe la aplicación para tu teléfono sin cargar la aplicación:

  • El nombre y descripción de la aplicación, posiblemente traducida a varios idiomas.
  • El ícono de la aplicación, en varios tamaños para diferentes densidades de píxeles.
  • Los permisos que la aplicación necesita para ejecutarse.
  • Las WebActivities  (actividades web) que la aplicación quiere registrar.
  • Para aplicaciones empaquetadas solamente, éste provee una URL al archivo ZIP conteniendo el código y recursos de la aplicación.

En Firefox para Android, implementamos este método enviando la URL a un servicio gestionado por Mozilla que construye una APK para Android específicamente para la aplicación.

Los APK creados por por el Factory usa el excelente framework Resource de Android así que los íconos y la traducción correcta son mostradas al usuario, respetando la localización del usuario y la pantalla del teléfono.

Los permisos de la aplicación web son mostrados como permisos de Android, así el usuario tendrá una experiencia completamente nativa al instalar tu aplicación.

Para aplicaciones empaquetadas, el APK incluye también una copia del archivo ZIP empaquetado, así que no se requiere una conexión adicional una vez que la aplicación es descargada.

Para aplicaciones alojadas, la primera vez que la aplicación es lanzada, los recursos listados en su appcache son descargados, así que los lanzamientos siguientes, pueden ocurrir tan rápido como sea posible, sin requerir una conexión de red.

Y si quieres detectar si la aplicación está ejecutándose en una aplicación web o en una página web, comprobar el método getSelf() te ayudará:

if (window.navigator.mozApps) {
    // Estamos en una plataform que soporta el API de apps.
    window.navigator.mozApps.getSelf().onsuccess = function() {
        if (this.result) {
            // Estamos corriendo en una web app instalada.
        } else {
            // Estamos corriendo en una página web.
            // Tal vez deberíamos mostrar un botón de instalación.
        }
    };
}

Mantener tus aplicaciones actualizadas

Para aplicaciones alojadas, puedes acualizar tus aplicaciones como siempre: sólo cambia la aplicación en tu servidor, y tus usuarios captarán esos cambios la siguiente vez que ejecuten tu aplicación. Puedes cambiar tanto como quieras, y tus usuarios tendrán la última versión de la aplicación cada vez que se la inicien y se conecten a tu servidor.

Si por alguna necesidad cambias el manifiesto de la aplicación, tus usuarios tendrán una APK actualizada para que actualicen sus instalaciones existentes.

Por ejemplo, si quieres cambiar los íconos de la aplicación, o incluso el nombre, cambiando el manifiesto de la aplicación, harás que el servicio del APK Factory regenere el APK de la aplicación, y notificará a tus usuarios que hay una nueva versión disponible para instalar.

Para aplicaciones empaquetadas, se aplica el mismo mecanismo: Cambia el archivo ZIP del paquete de la aplicación, luego actualiza el número de la versión en el archivo manifiesto de la aplicación, y el APK Factory captará estos cambios y notificará a tus usuarios que una aplicación actualizada está disponible. Tus usuarios serán notificados que hay una nueva APK para instalar. Así de simple.

¿Eso es todo?

Este es un proyecto emocionante. Requiere muy poca intervención del desarrollador web y no hay APIs adicionales para usar: sin embargo, representa un paso adelante en usabilidad de aplicaciones web en Android.

Ahora que hemos dado el paso para generar las APK para aplicaciones web, esto nos da una plataforma para remover las líneas entre aplicaciones web y aplicaciones. Compruébalo por ti mismo y ayúdanos a mejorar las características: ¡Obtén Firefox Beta desde Google Play Store, instala aplicaciones desde el Firefox Marketplace y déjanos saber lo que piensas!

The following two tabs change content below.

AngelFQC

Web Developer at BeezNest Latino
Ingeniero de Sistemas y Computación. Desarrollador PHP. Mozilla Peru. Chamilo LMS Developer.

Compartir artículo:

  • ¡Participa!

    Colabora con la comunidad »
    En Mozilla lo importante son las personas. Descubre cómo puedes colaborar.

    Boletín Firefox

    Suscríbete al boletín de novedades de Firefox.

  • Descargas

    Descarga los programas de Mozilla.

    Lo más visto

    cc-by-sa