A Nimble Survey KMM project.
- BuildKonfig embedding values from gradle file into BuildKonfig.
- Koin as lightweight DI framework.
- Networking
- Ktor as networking client.
- kotlin-serialization for data serialization.
- jsonapi-kotlin for JSON-API parsing.
- Logging with Napier.
- Settings & Storage
- multiplatform-settings for saving simple key-value data.
- Android: use androidx-security-crypto.
- iOS: use KeychainSettings.
- multiplatform-settings for saving simple key-value data.
- Testing
- mockative for mockking shared module.
- Kotest for additional assertions, property testing and data driven testing.
- Turbine as testing library for kotlinx.coroutines Flow.
- kotlinx-resources supports for reading resources in tests.
- Code coverage by Kover.
- Code analysis with Lint and Detekt.
- Annotation processing with KSP.
- Jetpack Compose.
- Koin.
- Logging with Timber.
- Testing
- MockK, Kotest, and Turbine.
- Jetpack Compose Instrument tests executed by Robolectric.
- Distributing to Firebase.
- TBD
Clone the repository
git clone [email protected]:luongvo/kmm-survey.git
-
Build types
debug
release
-
Environment
staging
: local development and testing distribution.production
: production deployment.
- Lint:
$ ./gradlew lint
Report is located at: ./android/build/reports/
and ./shared/build/reports/
- Detekt
$ ./gradlew detekt
Report is located at: ./build/reports/detekt
- Run unit testing:
$ ./gradlew android:testStagingDebugUnitTest
$ ./gradlew shared:testDebugUnitTest
- Run unit testing with coverage:
$ ./gradlew koverMergedHtmlReport
Report is located at: ./build/reports/kover/
This project is Copyright (c) 2014 and onwards Nimble. It is free software and may be redistributed under the terms specified in the LICENSE file.
This project is maintained and funded by Nimble.
We ❤️ open source and do our part in sharing our work with the community! See our other projects or hire our team to help build your product.
Want to join? Check out our Jobs!