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
shared
module with MockHttpClient - 🔍 Linter & formatter
- 📋 Kover - Kotlin code coverage tool
Use
./gradlew koverVerify koverHtmlReport
to 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