- 100% Kotlin-only project.
- Coroutine, Jetpack compose, Hilt, Flow, Paging 3, AndroidX,MVVM, JUnit tests, MockWebServer.
- Jacoco Plugin to check test coverage
- 100% Gradle Kotlin DSL setup.
- Dependency versions managed via
buildSrc
. - CI Setup with GitHub Actions.
- Kotlin Static Analysis via
ktlint
anddetekt
. - Issues project (bug report + feature request)
This project is using Gradle Kotlin DSL as well as the Plugin DSL to setup the build.
Dependencies are centralized inside the buildSrc folder. This provides convenient auto-completion when writing your gradle files.
This project is using ktlint to format your code. To reformat all the source code as well as the buildscript you can run
# Run lint and display issues
./gradlew ktlintCheck
To fix the issues, run:
# Run lint and try to fix issues automatically (not all issues are fixable this way)
./gradlew ktlintFormat
This project is also using detekt to analyze the source code, with the configuration that is stored in the detekt.yml file (the file has been generated with the detektGenerateConfig
task).
# Run Detekt static code analysis validation
./gradlew detekt
If we ever need to re-generate our baseline for detekt run:
# Re-generate the baseline for Detekt
./gradlew detektBaseline
This project is using Jacoco to check test coverage. To generate the test coverage report you can run
# Generate test coverage report
./gradlew jacocoTestDebugUnitTestReport
There are currently the following workflows available:
- Android Pull Request & Master CI - Will run the
build
,check
andassembleDebug
tasks.
Pull the code on this branch, import into Android Studio, from there you can run it like a standard android project project or run ./gradlew assembleDebug. Further notes can be found here https://developer.android.com/studio/build/building-cmdline#DebugMode