Kotlin Multiplatform für KI-Agenten: Vor- und Nachteile sowie Veröffentlichungsfallen
Sechs Monate Arbeit an zwei Apps mit Kotlin Multiplatform (KMP) haben zentrale Erkenntnisse geliefert: Code-Wiederverwendung über Android, iOS, Web, Desktop und Backend hinweg. Der gemeinsame Agent-Code integrierte Bibliotheken wie koog, mcp-sdk und cactus für lokale Modelle. Praktische Erfahrungen zeigten das Gleichgewicht zwischen dem robusten JVM-Ökosystem und plattformspezifischen Hürden.
Wichtige Vorteile von KMP
KMP zentralisiert die Geschäftslogik von Agenten und reduziert Duplikate massiv. Das JVM-Ökosystem bietet SDKs für LLM-Anbieter, während Compose Multiplatform die UI mit Hot Reload vereinfacht. Native Android-Builds nutzen Skia für iOS, wobei Desktop auf JAR-Wrappers angewiesen ist.
Wichtige Vorteile:
- Wiederverwendung plattformunabhängigen Codes über 4+ Ziele hinweg.
- Umfangreiches JVM-Ökosystem für Agenten und Modelle.
- Stabiles Kotlin mit Abwärtskompatibilität.
- Compose mit minimalen UI-Problemen.
Klare Einschränkungen
Multiplattform-Support erfordert expect/actual für plattformspezifischen Code. Desktop-Apps blähen sich durch JVM- und Swing-Abhängigkeiten auf, Web ist noch Beta mit Bibliotheksfehlern und SEO-Problemen. iOS-Debugging wirkt rudimentär, Swift-Interop hinkt der JVM hinterher. Desktop-UIs sehen oft unprofessionell aus.
Versteckte Entwicklungsherausforderungen
macOS-Release-Builds dauern Wochen: zwei App-IDs (JRE und App), drei Signierschlüssel, separate Konfigs für App-Stores und DMG mit Notarisierung (15+ Minuten pro Iteration). Native Bibliotheken erschweren alles – Ressourcen in JARs vor dem Signieren, ProGuard-Ausschlüsse, Catalina-Kompatibilität (63 % der Nutzer). TestFlight braucht JDK 18+, dazu separate aarch64/x86_64-Builds.
Typische Release-Schritte:
- Schlüssel für Stores und direkte Verteilung generieren.
- Native Ressourcen in JARs einbetten.
- ProGuard-Verwirrung handhaben.
- Notarisierung und Debugging (5+ Iterationen).
- Test auf älteren macOS-Versionen.
Mangel an KMP-Senior-Experten: Der Arbeitsmarkt bevorzugt Single-Platform-Entwickler. Plattformspezifische Aufgaben (z. B. iOS-Regierungszertifikate vs. Android) erfordern tiefes Know-how. LLMs scheitern an Edge-Cases.
Bibliotheks-Konflikte und Überengineering
Alpha-Bibliotheken wie kotlinx-datetime verursachen Versionskonflikte: koog zieht seit September inkompatible Abhängigkeiten nach. Web fehlt Dispatchers.IO, was Branches im gemeinsamen Code erzwingt. Auslagerung von JVM-Logik für Android/Desktop/Backend erhöht Kompilierzeit, dupliziert aber Reflection.
Kluge Entscheidungen:
- JVM-gemeinsamer Code: Kompromisse bei Reflection eingehen.
- Logger: logback und sinnvolle Defaults balancieren.
- Tests: Android-Kontext mocken, Desktop für Geschwindigkeit hinzufügen.
Xcode verschärft den Schmerz: Langsame Starts, verzögerte Autovervollständigung, zufällige Abstürze. Nur 6,1 % der Stack-Overflow-Entwickler 2025 sind bereit, das zu ertragen.
KI-Agenten ohne Frameworks bauen
Langchain4j ( aufgebläht, veraltet) und koog (Alpha, überflüssige Abhängigkeiten wie simpleOpenAIExecutor) verworfen. Eigene Implementierung: Knotengraph mit Übergangs-Callbacks, Klassifikation, RAG, Fehlerbehandlung. Gewinne: Volle Kontrolle, minimale Abhängigkeiten, kein OpenTelemetry-Ballast.
Agent-Graphen visualisieren für Debugging, Zustandsmaschinen-Persistenz manuell für Resilienz gebaut. Tests zielen auf gemeinsamen Code mit Plattform-Mocks ab.
Testen von Agent-Code
Tests laufen auf iOS/Android mit Kontext-Mocking. Desktop beschleunigt CI. Probleme: Lange Kompilierzeiten, plattformabhängige Dispatchers. Best Practice: JVM-Unit-Tests, plattformspezifische Integrationstests.
Zentrale Erkenntnisse:
- macOS-Releases brauchen Wochen für Schlüssel, Notarisierung, ProGuard.
- Alpha-Bibliotheks-Versionkonflikte (kotlinx-datetime) brechen Builds.
- Eigene Agenten schlagen Frameworks für Nischen-LLMs (wie GigaChat).
- KMP-Senioren sind rar; Plattform-Kenntnisse essenziell.
- Xcode ist ein Engpass für iOS-Entwicklung.
Gesamteinschätzung: KMP lohnt sich für KI-Agenten mit JVM-Backends, aber Releases und iOS/Web erfordern echtes Fachwissen.
— Editorial Team
Noch keine Kommentare.