ScrumIA

← All modules

🌐 scrumia-kotlin-multiplatform-mobile

The Kotlin Multiplatform Mobile composition preset — six KMP-specific rule families and a single key that re-exports the satellites a KMP project runs.

slot · implementation version · 0.2.0

What it is responsible for

Six refusals that shape a Kotlin Multiplatform Mobile project so the multiplatform rules apply where they apply and never leak where they don't. expect/actual stays in commonMain for the contract, in the platform source set for the implementation; source-set layout keeps platform code in its own source set; platform tests and shared dependencies live where they compile for every target; a Cocoapods pod is declared once across the KMP module and the iOS project; the target list is the one in the Gradle DSL, not the one an IDE invents; Gradle wiring goes through the Kotlin Multiplatform plugin's source-set DSL, not raw implementation(...). Ships a scrumia-kotlin-multiplatform-mobile reference skill and re-exports the six satellites (scrumia-kotlin, scrumia-gradle, scrumia-ktor, scrumia-material3, scrumia-effect, scrumia-functional-programming) by configuration.

What it refuses

An expect outside commonMain. An actual in commonMain. Android imports in commonMain, Swift bridges in commonMain, JVM-only APIs in iosMain. A platform test in commonTest. A shared dependency in commonMain that ships to a target with no API surface for it. A Cocoapods pod declared in both the KMP module and the iOS project's Podfile. A target the build does not compile for, or a target the IDE invents. A dependency in dependencies { implementation(...) } instead of dependencies { "commonMainImplementation"(...) }.

The assumption it makes

Assumes Kotlin Multiplatform Mobile is a distinct surface from a pure-JVM project, and that the rules on what crosses source sets and what doesn't are the rule set a KMP project is owed. The pivot is compose-only: it ships a reference, not a stack-membership; the satellites are dissociable; the pivot is the way to get the seven together rather than the way any one of them depends on another. Costs the friction of a satellite list to update when one is added, pays back in a single key that re-exports the rules a KMP project runs.

Its skills

Tags

What it plugs into

RegisterDirectionModule
find-speccontributesscrumia-specs
implementcontributesscrumia-github-project
reviewcontributesscrumia-github-project

Install it

/plugin install scrumia-kotlin-multiplatform-mobile@scrumia

Read the source on GitHub