Kotlin Multiplatform sample project with Jetpack Compose and SwiftUI
Check this basic, simple KMP project with latest and greatest libraries. You can also easily learn and keep your knowledge up-to-date in both Jeptack Compose and SwiftUI.
| Android | iOS |
|---|---|
![]() |
![]() |
- Shared ViewModels π
- Shared resources (svg, strings) with moko-resources
- MVVM + Reducer implementation = MVI
- List and detail screens
- Favourite user feature with SQLDelight
- Simple paging functionality
- Linter & formatter (detekt, swiftlint)
- Common tests
- Dark mode
- Automated dependency update with Renovate
- GitHub Actions config: GitHubUserFinder.yml
- GitHub API
- Coverage report (kover)
Check Dependencies.kt for more details
- π Ktor - Network
- π SQLDelight - LocalDB
- π Koin - DI framework
- π Kermit - Logger
- π¨ moko resources - Shared resources
- π¦ Testing - Common unit tests in
sharedmodule with MockHttpClient - π Linter & formatter
- π Kover - Kotlin code coverage tool
Use
./gradlew koverVerify koverHtmlReportto verify and generate the coverage report with a custom rule:
kover {
verify {
rule {
isEnabled = true
name = "Minimum coverage verification error"
target =
kotlinx.kover.api.VerificationTarget.ALL
bound {
minValue = 90
maxValue = 100
counter =
kotlinx.kover.api.CounterType.LINE
valueType =
kotlinx.kover.api.VerificationValueType.COVERED_PERCENTAGE
}
}
}
}After that we can use the Kotlinx Kover Report to add the coverage report to the PR as a comment
- Android Studio Flamingo | 2022.2.1 | with KMM plugin
- Xcode 14.3

