Welcome to the KMP Starter Pack Documentation¶
This site centralizes all technical documentation, architecture guidelines, and API references for the Kotlin Multiplatform (KMP) Starter Pack.
π Key Features¶
- Complete Multiplatform Support: Code sharing targeting Android, iOS, and Desktop (JVM).
- Guided Architecture (Clean Architecture / DDD): Strict separation of business logic (Domain), infrastructure (Data), and user interface (Presentation).
- Modern Tech Stack: Kotlin 2.3.21, Gradle 9.5.0, AGP 9.0.0, and Java 25.
- Conditional Continuous Integration: A double-speed CI/CD workflow (10-second JVM Fast-Track vs full Deep-Testing suite before merging into
master). - API Documentation Engine: Automated API doc generation via Dokka v2 and beautiful rendering through MkDocs Material.
π§± Architectural Organization of the Project¶
The shared module :shared strictly follows the guidelines of the Kotlin Architect skill:
- Domain Layer:
- Written in pure Kotlin (zero external framework dependencies).
- Contains self-contained UseCases modeling distinct business features.
- Robust, self-validating data models (using inline
value classpatterns).
- Data Layer:
- Repository implementations and low-level communication (networking via Ktor, database/persistence).
- Transparent Flow exception handling (ensuring
AbortFlowExceptionis never caught by accident).
- Presentation Layer:
- Reactive user interface driven by immutable
StateFlowstructures. - Properly managed coroutine scopes and decoupled ViewModels.
- Reactive user interface driven by immutable
π» Useful Commands¶
Run tests (Fast-Track JVM)¶
./gradlew :shared:jvmTest
Run all tests (All Platforms)¶
./gradlew allTests
Generate API documentation locally (Dokka GFM)¶
./gradlew :shared:dokkaGfm
Compile the MkDocs site locally¶
mkdocs build