kotlin-multiplatform
Decyzje architektoniczne dla Kotlin Multiplatform – kiedy dzielić kod między platformy, a kiedy trzymać osobno.
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Skill wspierający architekturę Kotlin Multiplatform w projekcie Amethyst. Pomaga w podejmowaniu decyzji, czy kod powinien być współdzielony między Android, JVM/Desktop i iOS, czy pozostać specyficzny dla platformy. Prowadzi przez drzewo decyzyjne: czy kod jest używany przez 2+ platformy, czy jest czysty Kotlin, czy wymaga expect/actual czy jvmAndroid. Sugeruje prawidłowe umiejscowienie w sourceset (commonMain, jvmAndroid, platform-specific) i integruje się z gradle-expert w kwestiach zależności.
Jak używać
Aktywuj skill kotlin-multiplatform w swoim projekcie Amethyst KMP. Skill automatycznie reaguje na pytania dotyczące abstrakcji platformy, umiejscowienia kodu w sourceset lub tworzenia expect/actual.
Kiedy stoisz przed decyzją architektoniczną (np. "Czy powinienem stworzyć expect/actual czy trzymać to tylko na Androidzie?"), opisz problem w kontekście swojego kodu. Skill przeprowadzi Cię przez drzewo decyzyjne.
Zacznij od głównego pytania: czy kod jest używany przez 2 lub więcej platform (Android, JVM/Desktop, iOS). Jeśli nie – trzymaj kod specyficzny dla platformy.
Jeśli kod jest współdzielony, sprawdź czy jest czysty Kotlin bez API platformowych. Kod czysty (np. parsowanie zdarzeń Nostr, reguły biznesowe) trafia do commonMain.
Dla kodu z zależnościami platformowymi oceń czy różni się między platformami (Android ≠ iOS ≠ Desktop) czy między JVM a resztą (Android = Desktop ≠ iOS/web). Pierwsza sytuacja wymaga expect/actual, druga jvmAndroid.
Jeśli masz problemy z zależnościami Gradle podczas implementacji decyzji, skill integruje się z gradle-expert – opisz błąd a otrzymasz wskazówki dotyczące konfiguracji build.gradle.kts.