¿Qué son las miniapps?

Componentes básicos y compatibilidad

Las miniapps son apps pequeñas (por lo general, de 2 a 4 MB) que requieren una superapp para ejecutarse. Lo que tienen en común, independientemente de la superapp, es que se compilan con ("dialectos" de) tecnologías web HTML, CSS y JavaScript. El tiempo de ejecución de una miniapp es una WebView en la superapp, no en el sistema operativo subyacente, lo que hace que las miniapps sean multiplataforma. La misma miniapp puede ejecutarse en la misma superapp, independientemente de que se ejecute en Android, iOS o algún otro SO. Sin embargo, no todas las miniapps se pueden ejecutar en todas las superapps. Obtén más información sobre este tema más adelante.

Campañas discovery

Las miniapps a menudo se descubren ad hoc a través de códigos de barras en 2D de la marca, lo que resuelve un desafío importante entre la transición de los canales en línea a la transición de conversiones sin conexión a Internet. Por ejemplo, ir del menú físico de un restaurante a una app pequeña de pago, o de un monopatín eléctrico físico a una app de alquiler. En la siguiente imagen, se muestra un ejemplo de un código de barras en 2D de marca para la miniapp de demostración de WeChat con el código. Por lo general, otras apps superno podrán reconocer el código de barras.

Código de barras en 2D con la marca WeChat
Cuando se escanea este código de barras en 2D con la app WeChat, se inicia una miniapp de demostración.

Las miniapps también se pueden descubrir mediante búsquedas normales dentro de la app, se pueden compartir en mensajes de chat o formar parte de un artículo de noticias en un feed de noticias. Algunas superapps tienen la noción de cuentas verificadas que pueden contener miniapps en sus perfiles. Las miniapps se pueden destacar cuando están físicamente cerca, como la miniapp de una empresa frente a la que el usuario está parado, o virtualmente cerca, como cuando el usuario obtiene instrucciones sobre cómo llegar en un mapa que se muestra en la superapp. Las miniapps que se usan con frecuencia están disponibles en un panel lateral de apps al que se puede acceder en muchas superapps con un gesto de deslizamiento hacia abajo o a través de una sección especial en el menú de la superapp.

La experiencia del usuario

Todas las superapps tienen más o menos la misma interfaz de usuario para las miniapps. Una barra superior temática con el nombre de la miniapp y, en la esquina superior de la pantalla, un botón de cierre en el extremo derecho precedido por un menú de acciones que proporciona acceso a funciones comunes, como compartir la app, agregarla a una lista de favoritos o a la pantalla principal, denunciar apps abusivas, proporcionar comentarios y configurar parámetros. En la siguiente captura de pantalla, se muestra una miniapp de Shopping que se ejecuta en el contexto de la superapp Alipay con el menú de acciones abierto.

La superapp de Alipay ejecuta una miniapp de Shopping. Se destacan la barra superior, los botones de menú de acciones y los de cierre. Se abre el menú de acciones.
Se abrió el menú de acciones de una miniapp de compras que se ejecuta en la superapp de Alipay.

Paradigmas de IU

Por lo general, hay una barra de pestañas inferior para la navegación principal de la app en miniatura. La mayoría de los superproveedores de apps ofrecen componentes que ayudan a los desarrolladores a implementar con rapidez paradigmas de IU comunes, como carruseles, acordeones, barras de progreso, íconos giratorios, interruptores, mapas, etcétera. Esto también ayuda a que la experiencia del usuario entre las diferentes miniapps sea coherente, lo que se fomenta en los Lineamientos de Diseño del Mini Programa de WeChat. Esto es similar a lo que Apple incentiva con sus Lineamientos de Interfaz humana de Apple, y Google con sus recomendaciones de Diseño para Android.

La miniapp de demostración de Douyin que muestra el componente de control deslizante de Douyin (carrusel) con botones de avance automático, indicadores de puntos, etcétera.
Componente de control deslizante de Douyin (carrusel) con varias opciones.

Entrega

En lugar de entregarse por secciones como recursos separados, las miniapps se entregan como apps empaquetadas encriptadas, es decir, como archivos que contienen todos los recursos en un solo archivo. A diferencia de las apps web normales, no se entregan desde el origen particular del creador de la miniapp, sino directamente desde el proveedor de la superapp. Todavía pueden acceder a las APIs desde los servidores del creador de la miniapp, pero los recursos principales (comúnmente conocidos como shell de la app) deben entregarse desde el superproveedor de apps. Las miniapps deben declarar los orígenes a los que solicitan datos adicionales.

Almacenamiento en caché, actualizaciones y vínculos directos

Las miniapps se guardan en la caché de la superapp, de modo que la próxima vez que el usuario inicie una miniapp almacenada en caché, se cargará casi al instante. Si hay una actualización, se carga un nuevo paquete de app. El número de versión puede ser parte del URI de inicio (consulta Descubrimiento), de modo que la superapp sepa desde el principio si la versión almacenada en caché local sigue siendo actual. De manera opcional, el URI de inicio también contiene la página deseada de la miniapp, por lo que es posible establecer un vínculo directo a páginas específicas de estas miniapps. Mediante un mapa del sitio, las miniapps pueden declarar cuáles de sus páginas deben indexarse por el minirastreador de apps del proveedor de la superapp.

Finder de macOS que muestra una carpeta que contiene archivos ".wxapkg" de la miniapp de WeChat almacenados en caché.
Las miniapps se almacenan en caché como apps empaquetadas encriptadas.

Seguridad y permisos

El superproveedor de apps revisa las miniapps, lo que significa que los usuarios las perciben como más seguras que las apps web. Deben declarar con anticipación los permisos potencialmente obligatorios en un manifiesto o en un archivo de configuración en miniatura de la app que, para algunos proveedores, también requiere explicaciones de los motivos por los que se necesita cada permiso. Por supuesto, las miniapps aún pueden mientir, pero les resultará difícil justificar por qué, por ejemplo, intentar acceder a los sensores de movimiento sin un motivo aparente para el usuario. El incentivo de usar la huella digital del usuario es mucho menor en comparación con la Web, dado que, generalmente, el usuario ya accedió a la superapp (consulta Identidad, pago y gráfico social).

Cada vez que una miniapp realiza una operación que requiere un permiso especial, se muestra al usuario un mensaje que, si la plataforma lo aplica, también incluye la justificación de uso, según lo que indique el desarrollador. La siguiente captura de pantalla muestra la miniapp de demostración de Douyin, que le solicita permiso al usuario para compartir su ubicación. En algunas superapps, también existe una API imperativa que pueden aprovechar para solicitar permisos sin usarlos de inmediato o solo para verificar el estado de un permiso. Esto puede incluir una API para abrir la configuración central de permisos de la superapp, que corresponde a la Configuración de sitios de Chrome. Las miniapps también deben declarar de antemano los orígenes de todos los servidores de los que potencialmente solicitarán datos.

La miniapp de demostración de Douyin que muestra un mensaje de ubicación geográfica con dos opciones: "Not Allowed" y "Allowed".
La miniapp de demostración de Douyin que solicita el permiso de ubicación geográfica.

Acceso a funciones potentes

La superapp de hosting ofrece acceso a API potentes a través de un puente JavaScript que se inserta en WebView que ofrece la superapp (consulta Componentes básicos y compatibilidad). Ese puente de JavaScript proporciona hooks a las APIs del sistema operativo. Por ejemplo, una función de JavaScript de miniapp como getConnectedWifi() (la capacidad de una miniapp de obtener el nombre de la red Wi-Fi activa en ese momento) de forma interna se facilita a través de la API de getConnectionInfo() de Android o de la API de CNCopyCurrentNetworkInfo() de iOS. Otros ejemplos de potentes APIs de dispositivos expuestas en superapps comunes son Bluetooth, NFC, iBeacon, GPS, portapapeles del sistema, sensores de orientación, información de la batería, acceso al calendario, acceso a la agenda telefónica, control del brillo de la pantalla, acceso al sistema de archivos, hardware de vibración para comentarios físicos, acceso a la cámara y al micrófono, grabación de pantalla y creación de capturas de pantalla, estado de red, conectores UDP, escaneo de códigos de barras, información de memoria del dispositivo y mucho más.

La miniapp de demostración de WeChat que muestra un control deslizante que controla el brillo de la pantalla del dispositivo al máximo.
La miniapp de demostración de WeChat configura el brillo de la pantalla del dispositivo al máximo.

Acceso a servicios en la nube

Muchas superapps también proporcionan acceso “sin servidores” a los servicios en la nube del superproveedor de apps que, además de la computación en la nube y el almacenamiento en la nube sin procesar, con frecuencia también incluyen tareas de nivel superior como traducción de texto, detección de objetos o clasificación de contenido en imágenes, reconocimiento de voz y otras tareas de aprendizaje automático. Las miniapps se pueden monetizar con anuncios, que suelen estar disponibles por los proveedores de este tipo de apps. Por lo general, las plataformas de superapps también proporcionan datos de estadísticas en la nube, de modo que los desarrolladores de miniapps puedan comprender mejor cómo los usuarios interactúan con sus apps.

Identidad, pago, gráfico social

Una función muy importante de las miniapps es la identidad y la información de gráficos sociales que se comparte desde la superapp. Las superapps, como Douyin o WeChat, comenzaron como sitios de redes sociales en el sentido más amplio, donde los usuarios tienen una identidad (a veces verificada por el Gobierno), una red de amigos o seguidores y, con frecuencia, también se almacenan datos de pago. Por ejemplo, una miniapp de Shopping puede (o incluso debe) procesar cualquier pago directamente a través de las APIs de pago de la superapp y, con el consentimiento del usuario, puede obtener datos del usuario, como su dirección de envío, número de teléfono y nombre completo, todo sin tener que obligar al usuario a completar formularios excitantemente. A continuación, puedes ver la miniapp de Walmart en ejecución en WeChat, abierta por primera vez y con una cara conocida.

La app en miniatura de Walmart que muestra el rostro y el nombre del autor en la pestaña "Yo".
La miniapp de Walmart con una vista personalizada de "Yo" en la primera visita.

Las miniapps se vuelven muy populares si permiten que las personas compartan sus logros, como las puntuaciones más altas en un juego, y desafíen a sus contactos a través de actualizaciones de estado. La miniapp está a solo un toque de distancia, por lo que los usuarios pueden participar en la competencia sin inconvenientes y, por lo tanto, la miniapp aumenta su alcance.

Agradecimientos

Joe Medley, Kayce Basques, Milica Mihajlija, Alan Kent y Keith Gu revisaron este artículo.