Cómo programar la miniapp

Qué funcionó bien para las apps pequeñas

En este capítulo, quiero analizar las lecciones que aprendí cuando investigué las miniapps desde el punto de vista de un desarrollador web o responder a la pregunta de qué significa desarrollar de esta manera.

Componentes

En lugar de reinventar la rueda y hacer que los desarrolladores compilen otra implementación de paradigmas comunes de la IU, como pestañas, acordeones, carruseles, etc., las miniapps solo se envían con una selección predeterminada de componentes que se puede extender en caso de que necesites más. En la Web, también hay muchas opciones, algunas de las cuales mencioné en el capítulo sobre componentes de miniaplicaciones. En un mundo ideal, las bibliotecas de componentes en la Web se compilarían de manera tal que pudieras mezclarlas libremente. En la práctica, con demasiada frecuencia, existe un cierto bloqueo en relación con un sistema de diseño que debes aceptar cuando usas un componente, o la biblioteca de componentes se distribuye de manera que es todo o nada, pero no se pueden agregar componentes individuales fácilmente a un proyecto. Sin embargo, hay componentes atómicos que puedes usar de forma aislada o bibliotecas como generic-components que no tienen diseño de forma intencional. Parece una buena idea encontrar y usar esos recursos.

Modelo-vista-ViewModel

El patrón arquitectónico modelo–vista–modelo de vista (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 de backend (el modelo), significa que la vista no depende de ninguna plataforma de modelo específica. Si bien existen algunas desventajas documentadas del patrón, en general, funciona muy bien para aplicaciones de la complejidad de las apps pequeñas. Puede destacarse especialmente con bibliotecas de plantillas enriquecidas (consulta el próximo capítulo).

Pensamiento por página

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

Proceso de compilación

Las apps en miniatura 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 el trabajo innecesario y mantener la velocidad sin importar el tamaño del proyecto. Si bien es un momento inicial para tecnologías como los paquetes web, es algo que se puede agregar fácilmente al proceso de compilación.

Funciones potentes

La plataforma web ha adquirido muchas funciones nuevas recientemente. Ahora es posible acceder a los dispositivos a través de Bluetooth, USB, HID, serie y NFC. En la Web, estas funciones potentes están disponibles directamente, por lo que no programas para una API que proporciona el puente de JavaScript, sino para la API del navegador sin un actor intermedio.

Agradecimientos

Este artículo fue revisado por Joe Medley, Kayce Basques, Milica Mihajlija, Alan Kent y Keith Gu.