Apps dinámicas y de rápida actualización: migración hacia las micro apps
27 de Diciembre de 2024Escribe Maximiliano Britez, Head of Engineering de redbee
El funcionamiento monolítico de las aplicaciones, por un lado, permite lanzar aplicaciones con rapidez y facilidad en el soporte, ya sea para iOS como para Android. La contracara es que aquellos beneficios se convierten, luego, en obstáculos para la evolución de dichas aplicaciones: aumenta el riesgo de errores y ralentiza la velocidad de desarrollo; limita la flexibilidad y escalabilidad ante nuevos requerimientos, y la autonomía de los equipos de desarrollo; reduce la frecuencia de lanzamientos y genera problemas en el rendimiento y la experiencia de los usuarios.
Este escenario, promueve la necesidad de migrar el desarrollo de aplicaciones hacia una arquitectura modular basada en micro apps. Esta estrategia nos permite actualizaciones rápidas y frecuentes, reduce la duplicación de esfuerzos y facilita la identificación de problemas y la implementación de mejoras.
La transformación de una aplicación monolítica móvil presenta desafíos significativos. En este caso, la necesidad de desacoplar tanto el frontend como el backend, simplificar la estructura y mejorar la experiencia del usuario, puede llevarnos a adoptar una estrategia de micro apps con React Native y a crear una capa de BFFs especializada en cada flujo funcional.
Esta estrategia permite obtener autonomía en los despliegues, mejorar la modularidad, y resolver uno de los grandes problemas de las aplicaciones móviles: la duplicación de esfuerzos al desarrollar para diferentes plataformas. Sin embargo, la introducción de micro apps y cargas dinámicas también trae consigo nuevos retos, como los tiempos de carga para los usuarios y el punto de falla potencial al manejar contenido dinámico. Para mitigarlos, puede adoptarse un enfoque híbrido que permita decidir si una micro app es cargada de manera dinámica o estática, dependiendo de las necesidades.
Es importante resaltar que no hay reglas fijas para este tipo de arquitecturas. Las decisiones tomadas deben estar alineadas con la naturaleza de la aplicación, su experiencia de usuario y su complejidad. La estrategia adoptada en un proyecto puede ser muy exitosa, mientras que, en otro con diferente alcance y requisitos, puede no ser la más adecuada. Cada solución debe evaluarse en función de las necesidades específicas del producto, los usuarios y las limitaciones técnicas.
Al final, lo que buscamos es encontrar un equilibrio entre la flexibilidad, la escalabilidad y la simplicidad de la arquitectura para que la aplicación siga siendo robusta y mantenible a largo plazo.
(*) Maximiliano Britez: Head of Engineering de redbee