An Android app that uses Blockchain Charts & Statistics API to experiment android libraries and different architectures.
This app is being developed using MVVM with clean architecture concepts.
- Koin for dependency injection
- Java Platform Plugin to manage dependencies between modules.
- MPAndroidChart as chart library
- Github actions for CI
- Jetpack libraries(ViewModel, Activity)
- Coroutines + retrofit for http requests
- Kotlinx.Serialization for JSON handling
- Detekt & formatting(ktlint) for static analysis
- Activity Scenario for unit and instrumented testing
- robolectric for unit testing
- Espresso assertions for UI testing
- Screenshot Tests for Android for chart testing
- MockWebServer for API and integration testing
The CI machine run the following steps:
- detekt & formatting (ktlint)
- unit tests
- instrumented testing
- snapshot tests
This project is being built using Android studio 4.1.3, so, I do recommend install the latest stable version.
./gradlew test
will run all unit testing
./gradlew detekt
will run detekt
./gradlew connectedVariantNameAndroidTest
will run instrumented tests
To run snapshot testing you need:
- install
python 2.7
python-pillow
ANDROID_HOME
mapping your sdk path- Run snapshot testing using Pixel 3 device API 27
./gradlew verifyDebugAndroidTestScreenshotTest
to run snapshot testing
App icon Blockchain by Andrejs Kirma from the Noun Project Error Icon made by Smashicons available at Flaticon