Herramientas para desarrolladores de miniapp

La experiencia del desarrollador

Ahora que ya expliqué qué son las mini apps per se, quiero enfocarme en la experiencia del desarrollador en las distintas plataformas de super apps. El desarrollo de mini apps en todas las plataformas se realiza en IDEs que proporcionan de forma gratuita las plataformas de superapps. Si bien hay más, quiero enfocarme en los cuatro más populares y un quinto para la app rápida a modo de comparación.

IDEs de miniapps

Al igual que las superapps, la mayoría de los IDE solo están disponibles en chino. De hecho, debes asegurarte de instalar la versión en chino y no una versión en inglés (o extranjera) que a veces está disponible, ya que podría no estar actualizada. Si eres desarrollador de macOS, ten en cuenta que no todos los IDE están firmados, lo que significa que macOS se niega a ejecutar el instalador. Bajo tu propia responsabilidad, puedes omitir este paso como se describe en la ayuda de Apple.

Proyectos iniciales de mini apps

Para comenzar rápidamente con el desarrollo de mini apps, todos los proveedores de superapps ofrecen apps de demostración que se pueden descargar y probar de inmediato, y que, a veces, también se integran en los asistentes de "Nuevo proyecto" de los distintos IDE.

Flujo de desarrollo

Después de iniciar el IDE y cargar o crear una mini app (de demostración), el primer paso siempre es acceder. Por lo general, solo necesitas escanear un código QR con la superapp (en la que ya accediste) que genera el IDE. Muy rara vez tendrás que ingresar una contraseña. Una vez que accedas, el IDE conocerá tu identidad y te permitirá comenzar a programar, depurar, probar y enviar tu app para su revisión. A continuación, puedes ver capturas de pantalla de los cinco IDE mencionados en el párrafo anterior.

Ventana de la aplicación WeChat DevTools que muestra el simulador, el editor de código y el depurador.
Herramientas para desarrolladores de WeChat con simulador, editor de código y depurador.
Ventana de la aplicación de Alipay DevTools que muestra el editor de código, el simulador y el depurador.
Herramientas para desarrolladores de Alipay con editor de código, simulador y depurador.
Ventana de la aplicación de Herramientas para desarrolladores de Baidu que muestra el simulador, el editor de código y el depurador.
Herramientas para desarrolladores de Baidu con simulador, editor de código y depurador.
Ventana de la aplicación ByteDance DevTools que muestra el simulador, el editor de código y el depurador.
Herramientas para desarrolladores de ByteDance con simulador, editor de código y depurador.
Ventana de la aplicación Quick App DevTools que muestra el editor de código, el simulador y el depurador.
Herramientas para desarrolladores de Quick App con editor de código, simulador y depurador.

Como puedes ver, los componentes fundamentales de todos los IDE son muy similares. Siempre tienes un editor de código basado en Monaco Editor, el mismo proyecto que también ejecuta VS Code. En todos los IDE, hay un depurador basado en el frontend de las Herramientas para desarrolladores de Chrome con algunas modificaciones, de las que hablaremos más adelante (consulta Depurador). Los IDE per se se implementan como apps de NW.js o Electron, y los simuladores en los IDE se implementan como una etiqueta <webview> de NW.js o una etiqueta <webview> de Electron, que a su vez se basan en una etiqueta <webview> de Chromium. Si te interesan los detalles internos del IDE, a menudo puedes inspeccionarlos con las Herramientas para desarrolladores de Chrome con la combinación de teclas Control + Alt + I (o Comando + Opción + I en Mac).

Las Herramientas para desarrolladores de Chrome se usan para inspeccionar las Herramientas para desarrolladores de Baidu, que muestran la etiqueta webview del simulador en el panel Elements de las Herramientas para desarrolladores de Chrome.
La inspección de las Herramientas para desarrolladores de Baidu con las Herramientas para desarrolladores de Chrome revela que el simulador se implementa como una etiqueta <webview> de Electron.

Pruebas y depuración en simuladores y dispositivos reales

El simulador es comparable con lo que podrías conocer del modo de dispositivo de las Herramientas para desarrolladores de Chrome. Puedes simular diferentes dispositivos Android y iOS, cambiar la escala y la orientación del dispositivo, y también simular varios estados de red, presión de memoria, un evento de lectura de código de barras, una finalización inesperada y el modo oscuro.

Si bien el simulador integrado es suficiente para tener una idea aproximada de cómo se comporta la app, las pruebas integradas en el dispositivo, como con las apps web normales, son irremplazables. Probar una mini app en desarrollo es tan fácil como escanear un código QR. Por ejemplo, en ByteDance DevTools, escanear un código QR generado de forma dinámica por el IDE con un dispositivo real lleva a una versión alojada en la nube de la miniapp que se puede probar de inmediato en el dispositivo. En el caso de ByteDance, la URL detrás del código QR (ejemplo) redirecciona a una página alojada (ejemplo) que contiene vínculos con esquemas de URI especiales, como snssdk1128://, para obtener una vista previa de la mini app en las diversas superapps de ByteDance, como Douyin o Toutiao (aquí tienes un ejemplo). Otros proveedores de súper apps no pasan por una página intermedia, sino que abren la vista previa directamente.

ByteDance Herramientas para desarrolladores muestra un código QR que el usuario puede escanear con la app de Douyin para ver la mini app actual en su dispositivo.
ByteDance DevTools muestra un código QR que el usuario puede escanear con la app de Douyin para realizar pruebas inmediatas integrado en el dispositivo.
Página de destino intermedia para obtener una vista previa de una mini app de ByteDance en varias de las súper apps de la empresa, abierta en un navegador de escritorio normal para realizar ingeniería inversa del proceso.
Página de destino intermedia de ByteDance para obtener una vista previa de una mini app (se abre en un navegador para computadoras para mostrar el flujo).

Una función aún más atractiva es la depuración remota de vista previa basada en la nube. Después de escanear un código QR especial generado por el IDE de Likewise, la miniapp se abre en el dispositivo físico, con una ventana de Herramientas para desarrolladores de Chrome ejecutándose en la computadora para la depuración remota.

Un teléfono celular que ejecuta una mini app con partes de la IU destacadas por el depurador de ByteDance DevTools que se ejecuta en una laptop que la inspecciona.
Depuración remota inalámbrica de una mini app en un dispositivo real con las Herramientas para desarrolladores de ByteDance.

Debugger

Depuración de elementos

La experiencia de depuración de la mini app es muy familiar para cualquier persona que haya trabajado con las Herramientas para desarrolladores de Chrome. Sin embargo, existen algunas diferencias importantes que hacen que el flujo de trabajo se adapte a las mini apps. En lugar del panel Elements de las Herramientas para desarrolladores de Chrome, los IDE de mini apps tienen un panel personalizado que se adapta a su dialecto particular de HTML. Por ejemplo, en el caso de WeChat, el panel se llama Wxml, que significa WeiXin Markup Language. En las Herramientas para desarrolladores de Baidu, se llama Swan Element. Las Herramientas para desarrolladores de ByteDance lo llaman Bxml. Alipay lo denomina AXML, y la app rápida hace referencia al panel simplemente como UX. Analizaré estos lenguajes de marcado más adelante.

Inspección de una imagen con el panel &quot;Wxml&quot; de WeChat DevTools. Muestra que la etiqueta en uso es una etiqueta &quot;image&quot;.
Inspección de un elemento <image> con las Herramientas para desarrolladores de WeChat.

Funcionamiento interno de los elementos personalizados

La inspección de WebView en un dispositivo real a través de about://inspect/#devices revela que las herramientas para desarrolladores de WeChat ocultaban deliberadamente la verdad. Donde WeChat DevTools mostró un <image>, lo que realmente estoy viendo es un elemento personalizado llamado <wx-image> con un <div> como su único elemento secundario. Es interesante observar que este elemento personalizado no usa Shadow DOM. Hablaremos más sobre estos componentes más adelante.

Inspección de una miniapp de WeChat que se ejecuta en un dispositivo real con las Herramientas para desarrolladores de Chrome. Mientras que las Herramientas para desarrolladores de WeChat informaron que estaba viendo una etiqueta &quot;image&quot;, las Herramientas para desarrolladores de Chrome revelan que, en realidad, estoy trabajando con un elemento personalizado &quot;wx-image&quot;.
Al inspeccionar un elemento <image> con las Herramientas para desarrolladores de WeChat, se revela que, en realidad, es un elemento personalizado <wx-image>.

Depuración de CSS

Otra diferencia es la nueva unidad de longitud rpx para píxeles responsivos en los distintos dialectos de CSS (más información sobre esta unidad más adelante). WeChat DevTools usa unidades de longitud CSS independientes del dispositivo para que el desarrollo para diferentes tamaños de dispositivos sea más intuitivo.

Inspección de una vista con un padding superior e inferior especificado de &quot;200rpx&quot; en las Herramientas para desarrolladores de WeChat.
Inspección del padding especificado en píxeles responsivos (200rpx 0) de una vista con las Herramientas para desarrolladores de WeChat.

Auditoría de rendimiento

El rendimiento es fundamental para las mini apps, por lo que no sorprende que WeChat DevTools y otras herramientas para desarrolladores tengan una herramienta de auditoría integrada inspirada en Lighthouse. Las áreas de enfoque de las auditorías son Total, Rendimiento, Experiencia y Prácticas recomendadas. Se puede personalizar la vista del IDE. En la siguiente captura de pantalla, oculté temporalmente el editor de código para tener más espacio en la pantalla para la herramienta de auditoría.

Ejecutar una auditoría de rendimiento con la herramienta de auditoría integrada Las puntuaciones muestran Total, Rendimiento, Experiencia y Prácticas recomendadas, cada una con 100 de 100 puntos.
La herramienta de auditoría integrada en las Herramientas para desarrolladores de WeChat que muestra el total, el rendimiento, la experiencia y las prácticas recomendadas.

Simulación de API

En lugar de requerir que el desarrollador configure un servicio independiente, la simulación de respuestas de API forma parte directamente de WeChat DevTools. A través de una interfaz fácil de usar, el desarrollador puede configurar los extremos de la API y las respuestas simuladas deseadas.

Configuración de una respuesta simulada para un extremo de API en WeChat DevTools.
Función integrada de simulación de respuestas de API de WeChat DevTools.

Agradecimientos

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