Las aplicaciones móviles son el acceso directo a obtener información dentro de un smartphone. Sin embargo, los usuarios siempre buscan la mejor experiencia posible, prefiriendo la opción que sea más rápida y simple. Algunos usuarios se quejan por tener que instalar un sinfín de aplicaciones que utilizarán por un tiempo breve, y que van llenando la memoria disminuyendo el rendimiento de sus smartphones.
Google respondió a esta problemática creando las Instant Apps. Básicamente son "porciones" de aplicaciones, que no requieren instalarse en el dispositivo. A través de un link de un sitio web se puede acceder a la aplicación instantánea con un solo tap, sin necesidad de tener tiempos de espera de instalación ni disminuir la memoria del dispositivo.
Una aplicación instantánea contiene una o más características de la aplicación base (o aplicación completa) ya creada.
Cómo funciona
Actualmente, las aplicaciones Android se instalan mediante un archivo con extensión .APK. Estos archivos pueden ser descargados desde Google Play Store o manualmente desde un computador personal. Una Instant App puede ser descargada de un sitio web y ser cargada rápidamente.
El siguiente esquema desplegado en la conferencia Google I/O 2017 explica cómo se modificó la estructura de las apps para poder crear aplicaciones instantáneas:
El esquema muestra que antes cada aplicación tenía todas las características o funciones (features) incluidas en el proyecto, que derivaban en un solo gran APK. Ahora con Instant Apps, el código base está un módulo, y se separan las features en otros módulos para generar las Instant Apps que requieran estas características en específico, mejorando también la mantención del proyecto.
Luego de generar las funciones por módulo, se generan 2 APKs - uno para la aplicación a instalar, y otro para la Instant App.
Cuando se desee publicar la Instant App en Google Play, se carga el APK respectivo en el siguiente formulario:
El ejemplo que se mostró en Google I/O 2017 es una aplicación de turismo llamada Banjara, donde se creó una app base con todo el contenido ("main"), e instant apps con acceso a algunos módulos ("details").
Las vistas de Instant App son Lista de atracciones y Detalle de Atracción:
Ventajas y desventajas
En el lado positivo, las instant apps tienen las siguientes ventajas:
- Acceso desde cualquier navegador
- Rápida ejecución y carga de contenido
- Fácil acceso desde una Url
- Tiempos de espera cortos
- No se debe instalar, solo ejecutar y cerrar como un sitio web
- No se llena la memoria del Smartphone
Pero no todo es positivo, y hay que tener en mente las siguientes limitaciones:
- No se puede acceder a toda la aplicación, solo al Feature en específco.
- No puede recibir Push Notifications.
- Solo para dispositivos desde Android Marshmallow (6.0) en adelante.
- Al abrir muchas instant apps, es posible un riesgo de sobrecarga de memoria en la RAM.
Costos de Refactorización
Si nuestro código no esta bien modularizado, los costos de refactorización pueden ser muy altos debido a que las Instant Apps obliga a separar nuestra apicación por Features en específico.
Una mala práctica es contener toda la información en un solo Activity. Las buenas prácticas de Android indican que toda la lógica debe estar implementada en Fragments, y las Activity solo deben alojar fragments.
Es por esto que para crear una Instant App, se debe llamar un Activity en específico (Vista principal) para alojar el contenido que necesitamos.