kotlin-multiplatform
Platform abstraction decision-making for Amethyst KMP project. Guides when to abstract vs keep platform-specific,\nsource set placement (commonMain, jvmAndroid, platform-specific), expect/actual patterns. Covers primary targets\n(Android, JVM/Desktop, iOS) with web/wasm future
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Platform abstraction decision-making for Amethyst KMP project. Guides when to abstract vs keep platform-specific,\nsource set placement (commonMain, jvmAndroid, platform-specific), expect/actual patterns. Covers primary targets\n(Android, JVM/Desktop, iOS) with web/wasm future considerations. Integrates with gradle-expert for dependency issues.\nTriggers on: abstraction decisions (\
How to use
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.