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 • Equip 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?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.