Huecos de dependencias en Compose Multiplatform y cómo los solucioné

Guía práctica de Kotlin Multiplatform y Compose Multiplatform: arquitectura modular con mobileModule y nonWasmModule para Android, iOS, Desktop y Wasm, reduciendo duplicación.

19 sept 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Introducción: Kotlin Multiplatform y Compose Multiplatform prometen una experiencia write once run everywhere pero en la práctica existen huecos de dependencias que obligan a soluciones específicas por plataforma. En Q2BSTUDIO, empresa especializada en desarrollo de software a medida, aplicaciones a medida, inteligencia artificial y ciberseguridad, hemos abordado estos retos en proyectos reales y compartimos una propuesta práctica para reducir la repetición de código y mantener una arquitectura limpia.

El problema: muchas librerías diseñadas para Kotlin Multiplatform cubren iOS, Android y JVM pero dejan fuera a Wasm y en ocasiones a Desktop, lo que provoca errores de resolución en Gradle al compilar objetivos Wasm o Desktop. Un ejemplo típico es usar un SDK como RevenueCat desde commonMain y recibir un error Could not resolve para los targets Wasm y Desktop. La solución inmediata suele ser crear actuals duplicados para iOS, Android y Desktop, pero eso genera código repetido y dificulta el mantenimiento.

Mecanismo expect actual: la forma correcta de manejar diferencias de plataforma en KMP es definir la API común con expect en commonMain y proporcionar implementaciones específicas con actual en los módulos de plataforma. Sin embargo, obligar a escribir actuals en cada target sin una estrategia modular lleva a duplicación. Nosotros proponemos una estructura modular que agrupe implementaciones por afinidad de plataforma, reduciendo la repetición y mejorando la claridad del proyecto.

Solución basada en módulos Gradle: creamos módulos dedicados que actúan como source roots para grupos de plataformas. Por ejemplo, para una librería como Room Database que funciona en iOS, Android y Desktop JVM, se puede crear un módulo mobileModule donde alojar los actuals específicos para iOS y Android y un módulo nonWasmModule para Desktop y otras plataformas que no incluyan Wasm. En el caso de Wasm, donde muchas librerías no están disponibles, se puede ofrecer una alternativa ligera basada en localStorage del navegador o en implementaciones específicas de Wasm.

Cómo implementarlo paso a paso: 1 Definir expect en commonMain cubriendo la API común. 2 Crear mobileModule con los actuals para iOS y Android; marcar el directorio como source root en Gradle. 3 Crear nonWasmModule con el actual único que cubra JVM y Desktop; para Wasm ofrecer una implementación alternativa o un stub que use localStorage. 4 Actualizar el build Gradle de la app para que mobileModule y nonWasmModule dependan del módulo common, heredando dependencias compartidas. Con esto se evita repetir actuals iguales en varios targets y se mejora la escalabilidad del código.

Ejemplo práctico: si Room funciona en iOS, Android y Desktop, pones la implementación común en commonMain y un solo actual en nonWasmModule para JVM/Desktop; en mobileModule incluyes adaptaciones específicas de Android e iOS. Para Wasm puedes crear un actual que traduzca operaciones de persistencia a localStorage o indexedDB evitando errores de resolución y permitiendo builds exitosos en el target Wasm.

Buenas prácticas y recomendaciones: usar nombres de módulos claros como mobileModule o nonWasmModule para facilitar la navegación, documentar qué plataformas cubre cada módulo, mantener los actuals mínimos y delegar lógica compleja a la capa común siempre que sea posible. Revisar las dependencias de librerías KMP antes de integrarlas y preparar adaptadores para objetivos no compatibles reduce sorpresas en CI y en compilaciones multiplataforma.

Beneficios para tu empresa: esta estrategia ayuda a mantener una base de código más limpia y reduce el esfuerzo de mantenimiento, especialmente en proyectos que requieren funcionalidades avanzadas como agentes IA o integración con servicios cloud. En Q2BSTUDIO combinamos estas técnicas con soluciones de inteligencia artificial para empresas y servicios cloud aws y azure para ofrecer proyectos robustos y escalables.

Servicios vinculados: si necesitas ayuda para migrar o diseñar arquitecturas multiplataforma, en Q2BSTUDIO podemos acompañarte desde la definición técnica hasta la entrega. Ofrecemos desarrollo de aplicaciones a medida y software a medida adaptado a exigencias de negocio y seguridad, así como soluciones de inteligencia artificial y ciberseguridad. Conecta con nuestras capacidades en desarrollo a medida visitando desarrollo de aplicaciones y software a medida en Q2BSTUDIO o conoce nuestras propuestas de IA en servicios de inteligencia artificial para empresas.

Conclusión: Compose Multiplatform y Kotlin Multiplatform son poderosas pero requieren organización y una estrategia modular para cubrir huecos de dependencias. La creación de módulos dedicados como mobileModule y nonWasmModule y el uso correcto de expect actual permiten reducir la duplicación y ofrecer builds estables para Android, iOS, Desktop y Web. En Q2BSTUDIO combinamos estas prácticas con experiencia en inteligencia de negocio, power bi, agentes IA y ciberseguridad para entregar soluciones completas y seguras.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat