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) las tecnologías web HTML, CSS y JavaScript. El entorno de ejecución de una app mini es un WebView en la superapp, no el sistema operativo subyacente, lo que hace que las apps mini sean multiplataforma. La misma miniapp se puede ejecutar en la misma superapp, sin importar si esta se ejecuta en Android, iOS o en otro SO. Sin embargo, no todas las miniapps pueden ejecutarse en todas las superapps. Obtén más información sobre esto más adelante.
Discovery
A menudo, las miniapps se descubren de forma ad hoc a través de códigos de barras 2D de marca, lo que resuelve un desafío importante de la versión sin conexión a la versión en línea, por ejemplo, pasar de un menú de restaurante físico a una miniapp de pago o de una scooter eléctrica física a una miniapp de alquiler. En la siguiente imagen, se muestra un ejemplo de un código de barras 2D de marca para la miniapp de demostración de WeChat. Cuando se escanea el código con la superapp de WeChat, la miniapp se inicia directamente. Por lo general, otras super apps no podrán reconocer el código de barras.

Las miniaplicaciones también se pueden descubrir a través de la búsqueda normal en la superapp, compartir en mensajes de chat o formar parte de un elemento de noticias en un feed de noticias. Algunas super apps tienen la noción de cuentas verificadas que pueden contener mini apps en sus perfiles. Las miniapps se pueden destacar cuando están físicamente cerca geográficamente, como la miniapp de una empresa frente a la que se encuentra el usuario, o virtualmente cerca, como cuando el usuario obtiene instrucciones sobre cómo llegar en un mapa que se muestra en la superapp. Las miniapps de uso frecuente están disponibles en un panel lateral de la app al que, en muchas superapps, se puede acceder 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 super apps tienen más o menos la misma interfaz de usuario para las mini apps. Una barra superior personalizable con el nombre de la app mini y, en la esquina superior de la pantalla, un botón para cerrar 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 la app. En la siguiente captura de pantalla, se muestra una miniapp de compras que se ejecuta en el contexto de la superapp de Alipay con el menú de acciones abierto.

Paradigmas de la IU
Por lo general, hay una barra de pestañas inferior para la navegación principal de la app. La mayoría de los proveedores de super apps ofrecen componentes que ayudan a los desarrolladores a implementar rápidamente paradigmas comunes de la IU, como carruseles, acordeones, barras de progreso, selectores, interruptores, mapas, etcétera. Esto también ayuda a que la experiencia del usuario entre diferentes miniapps sea coherente, lo que se fomenta en los Lineamientos de diseño de programas de miniaplicaciones de WeChat. Esto es similar a lo que Apple incentiva con sus Lineamientos de la interfaz humana de Apple y Google con sus recomendaciones de Design for Android.

Entrega
En lugar de entregarse por partes 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, tampoco se entregan desde el origen particular del creador de miniapps, sino directamente desde el proveedor de superapps. Aún pueden acceder a las APIs desde los servidores del creador de miniapps, pero los recursos principales (conocidos comúnmente como shell de la app) deben entregarse desde el proveedor de superapps. Las apps pequeñas deben declarar los orígenes de los que solicitan datos adicionales.
Almacenamiento en caché, actualizaciones y vinculación directa
Las miniapps se mantienen en la caché de la superapp, por lo que la próxima vez que el usuario inicie una miniapp almacenada en caché, esta se cargará casi de inmediato. Si hay una actualización, se carga un nuevo paquete de la app. El número de versión puede ser parte del URI de inicio (consulta Descubrimiento), de modo que la superapp sepa con anticipación si la versión almacenada en caché de forma local sigue siendo actual. De manera opcional, el URI de inicio también contiene la página deseada de la app mini, por lo que es posible establecer vínculos directos a páginas específicas de las apps mini. A través de un mapa del sitio, las apps pequeñas pueden declarar cuáles de sus páginas debe indexar el rastreador de apps pequeñas del proveedor de superapp.

Seguridad y permisos
El proveedor de la superapp revisa las miniapps, lo que significa que los usuarios las perciben como más seguras que las apps web. Deben declarar sus permisos potencialmente necesarios de antemano en un manifiesto o un archivo de configuración de miniaplicación, que, para algunos proveedores, también requiere explicaciones sobre por qué se necesita cada permiso. Por supuesto, las apps pequeñas aún pueden mentir, pero les costaría justificar por qué, por ejemplo, intentan acceder a los sensores de movimiento sin un motivo que sea evidente para el usuario. El incentivo para crear una huella digital del usuario es mucho menor en comparación con la Web, ya que, por lo general, el usuario ya accedió a la superapp (consulta Identidad, pago y grafo social).
Cada vez que una app mini realiza una operación que requiere un permiso especial, se le muestra al usuario un mensaje que, si la plataforma lo aplica, también incluye la justificación del uso, como lo indica el desarrollador. En la siguiente captura de pantalla, se muestra la mini app de demostración de Douyin cuando le solicita permiso al usuario para compartir su ubicación. En algunas super apps, también hay una API imperativa que las mini apps pueden aprovechar para solicitar permisos sin usarlos de inmediato o solo para verificar el estado de un permiso. Incluso puede incluir una API para abrir la configuración de permisos de la superapp central, que corresponde a la Configuración del sitio de Chrome. Las miniapps también deben declarar de antemano los orígenes de todos los servidores de los que potencialmente solicitarán datos.

Accede a funciones potentes
La superapp de host ofrece acceso a APIs potentes a través de un puente de JavaScript que se inserta en el WebView que ofrece la superapp (consulta Elementos básicos y compatibilidad). Este puente de JavaScript proporciona hooks en las APIs del sistema operativo. Por ejemplo, una función de JavaScript de miniaplicación como getConnectedWifi()
(la capacidad de una miniaplicación para obtener el nombre de la red Wi-Fi activa actualmente) se facilita a través de la API de getConnectionInfo()
de Android o la API de CNCopyCurrentNetworkInfo()
de iOS. Otros ejemplos de APIs de dispositivos potentes 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 de 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 la red, sockets UDP, escaneo de códigos de barras, información de la memoria del dispositivo y mucho más.

Acceso a servicios en la nube
Muchas super apps también proporcionan acceso “sin servidores” a los servicios en la nube del proveedor de la super app que, además de la computación en la nube y el almacenamiento en la nube sin procesar, a menudo también incluyen tareas de nivel superior, como la traducción de texto, la detección de objetos o la clasificación de contenido en imágenes, el reconocimiento de voz y otras tareas de aprendizaje automático. Las miniapps se pueden monetizar con anuncios, que suelen estar disponibles a través de los proveedores de superapps. Por lo general, las plataformas de super apps también proporcionan datos de análisis de la nube, de modo que los desarrolladores de mini apps puedan comprender mejor cómo interactúan los usuarios con sus apps.
Identidad, pago y gráfico social
Una característica muy importante de las miniapps es la información de identidad y gráfico social que se comparte desde la superapp. Las superapps como Douyin o WeChat comenzaron como sitios de redes sociales en el sentido más amplio, en los que los usuarios tienen una identidad (a veces verificada por el Gobierno), una red de amigos o seguidores y, con frecuencia, también datos de pago almacenados. Por ejemplo, una miniapp de compras puede (o, a veces, 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 de forma tediosa. A continuación, puedes ver la miniapp de Walmart ejecutándose en WeChat, abierta por primera vez, y me saluda con un rostro familiar.

Las miniapps pueden ser muy populares, ya que 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 problemas, y la miniapp puede aumentar su alcance.
Agradecimientos
Este artículo fue revisado por Joe Medley, Kayce Basques, Milica Mihajlija, Alan Kent y Keith Gu.