Cómo programar la miniapp

En este capítulo, quiero repasar las lecciones que aprendí de la investigación de miniapps desde el punto de vista de un desarrollador web, o responder a la pregunta qué significa desarrollar la miniapp.

Componentes

En lugar de reinventar la rueda y hacer que los desarrolladores compilen otra implementación de paradigmas de IU comunes, como pestañas, acordeones, carruseles, etc., las miniapps se envían con una selección predeterminada de componentes extensible en caso de que necesites más. De igual manera, en la Web, existen muchas opciones, algunas de las cuales se enumeran en el capítulo sobre los componentes de las miniapps. En un mundo ideal, las bibliotecas de componentes en la Web se compilaban de modo que se pudieran mezclar libremente. En la práctica, muchas veces, hay un cierto compromiso con respecto a un sistema de diseño que debes aceptar cuando usas un componente, o la biblioteca de componentes se distribuye de una manera que es todo o nada, pero ningún componente individual se puede agregar con facilidad a un proyecto. Sin embargo, hay componentes atómicos que puedes usar de forma aislada o bibliotecas como componentes-genéricos que no tienen un diseño específico. Encontrar y usar esos elementos parece una buena idea.

Modelo-vista-vista

El patrón de arquitectura model-view-viewmodel (MVVM), que facilita la separación del desarrollo de la interfaz gráfica de usuario (la vista) a través de un lenguaje de marcado del desarrollo de la lógica del backend (el modelo), significa que la vista no depende de ninguna plataforma de modelo específica. Si bien hay algunas desventajas del patrón documentadas, en general, funciona muy bien para aplicaciones que requieren la complejidad de las miniapps. Puede ser especialmente útil con bibliotecas de plantillas enriquecidas (consulta el capítulo siguiente).

Pensamiento a nivel de la página

La depuración de miniapps muestra que son, en esencia, aplicaciones de varias páginas (MPA). Esto tiene muchas ventajas, como, por ejemplo, permite enrutamiento trivial y diseño por página sin conflictos. Los usuarios aplicaron con éxito arquitecturas de MPA a las apps web progresivas. Pensar en las páginas también te ayuda a administrar recursos como los archivos CSS y JavaScript de cada página, además de otros recursos, como las imágenes y los videos. Lo más importante es que compilar de esta manera significa que obtendrás la división de código basada en rutas de forma gratuita si no cargas nada más. En ese caso, por definición, cada página solo carga lo que necesita para funcionar.

Proceso de compilación

Las miniapps no tienen un proceso de compilación visible. En la Web, las herramientas de compilación modernas, como Snowpack, aprovechan el sistema de módulos integrado de JavaScript (conocido como ESM) para evitar trabajos innecesarios y mantener la rapidez sin importar el tamaño del proyecto. Si bien estamos en las primeras etapas de la tecnología como los paquetes web, es algo que se puede agregar fácilmente al proceso de compilación.

Capacidades potentes

Recientemente, la plataforma web obtuvo muchas funciones nuevas. Ahora es posible acceder a dispositivos mediante Bluetooth, USB, HID, serial y NFC. Cuando las miniapps se ejecutan en WebViews y dependen de un puente de JavaScript, en la Web, estas potentes funciones están disponibles directamente, por lo que no debes programar con una API que proporcione el puente JavaScript, sino con la API del navegador sin un actor intermedio.

Agradecimientos

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