Toolverse
All skills

kotlin-multiplatform

by vitorpamplona

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

Quick info

Category
Mobile
Views
105

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

Related skills