Kotlin Multiplatform para Agentes IA: Ventajas, Desventajas y Errores en Lanzamientos
Desarrollar dos apps con Kotlin Multiplatform (KMP) durante seis meses reveló insights clave: reutilización de código en Android, iOS, Web, Desktop y backend. El código compartido de los agentes se integró con librerías como koog, mcp-sdk y cactus para modelos locales. La experiencia práctica destacó el equilibrio entre el robusto ecosistema JVM y los obstáculos específicos de cada plataforma.
Principales Ventajas de KMP
KMP centraliza la lógica de negocio de los agentes, eliminando duplicaciones. El ecosistema JVM ofrece SDK para proveedores de LLM, mientras que Compose Multiplatform agiliza la UI con recarga en caliente. Las compilaciones nativas de Android aprovechan Skia para iOS, aunque Desktop depende de wrappers JAR.
Beneficios clave:
- Reutilización de código agnóstico a plataformas en 4+ objetivos.
- Ecosistema JVM rico para agentes y modelos.
- Kotlin estable con compatibilidad hacia atrás.
- Compose con fallos mínimos en la UI.
Limitaciones Claras
El soporte multiplataforma exige expect/actual para código específico de plataforma. Las apps de Desktop se inflan por dependencias JVM y Swing, la Web sigue en beta con bugs en librerías y problemas de SEO. La depuración en iOS es básica, la interoperabilidad con Swift va por detrás de JVM. La UI de Desktop a menudo luce fuera de marca.
Desafíos Ocultos en el Desarrollo
Los builds de lanzamiento en macOS toman semanas: dos ID de apps (JRE y app), tres claves de firma, configs separadas para app stores y DMG con notarización (15+ minutos por iteración). Las librerías nativas lo complican: recursos en JARs antes de firmar, exclusiones de ProGuard, compatibilidad con Catalina (63% de usuarios). TestFlight requiere JDK 18+, más builds separados aarch64/x86_64.
Pasos típicos de lanzamiento:
- Generar claves para stores y distribución directa.
- Incrustar recursos nativos en JARs.
- Manejar ofuscación de ProGuard.
- Notarización y depuración (5+ iteraciones).
- Pruebas en macOS legacy.
Falta de expertos senior en KMP: el mercado laboral prefiere devs de plataforma única. Tareas específicas (como certs gubernamentales en iOS vs. Android) exigen expertise profundo. Los LLM fallan en casos edge.
Conflictos de Librerías y Sobreingeniería
Librerías alpha como kotlinx-datetime generan choques de versiones: koog arrastra deps incompatibles desde septiembre. La Web carece de Dispatchers.IO, forzando branches en código compartido. Deslocalizar lógica JVM para Android/Desktop/backend suma tiempo de compilación pero duplica reflexión.
Elecciones inteligentes:
- Código compartido JVM: compromisos en reflexión.
- Loggers: equilibrio entre logback y defaults sensatos.
- Pruebas: mock de contexto Android, agregar Desktop para velocidad.
Xcode agrava el dolor: lanzamientos lentos, autocompletado laggy, crashes aleatorios. Solo el 6,1% de devs de Stack Overflow 2025 lo toleran.
Construyendo Agentes IA sin Frameworks
Descarté langchain4j (hinchado, desactualizado) y koog (alpha, deps excesivas como simpleOpenAIExecutor). Implementación custom: grafo de nodos con callbacks de transición, clasificación, RAG, manejo de errores. Victorias: control total, deps mínimas, sin bloat de OpenTelemetry.
Los grafos de agentes visualizan para depuración, persistencia de máquina de estados construida manualmente para resiliencia. Pruebas en targets de código compartido con mocks de plataforma.
Probando Código de Agentes
Pruebas corren en iOS/Android con mocking de contexto. Desktop acelera CI. Problemas: compilaciones largas, Dispatchers dependientes de plataforma. Mejor práctica: pruebas unitarias JVM, pruebas de integración específicas de plataforma.
Lecciones clave:
- Lanzamientos en macOS demandan semanas para claves, notarización, ProGuard.
- Conflictos de versiones en librerías alpha (kotlinx-datetime) rompen builds.
- Agentes custom superan frameworks para LLM nicho (como GigaChat).
- Expertos senior en KMP son raros; habilidades de plataforma esenciales.
- Xcode es un cuello de botella en desarrollo iOS.
Veredicto general: KMP vale la pena para agentes IA con backends JVM, pero lanzamientos e iOS/Web requieren expertise serio.
— Editorial Team
Aún no hay comentarios.