This application focus on using dynamic feature along with Hilt / Dagger2 to request Blockchain data.
The project is based on a clean architecture with clear separation among the Data, Domain, and UI layers
- app-blockchain-mkt
- app
- app (UI / Main)
- data (It is a centralized data module to be used by the other data layers)
- charts
- charts (UI)
- data (Repository)
- domain (Business Logic)
- pools
- data (Repository)
- domain (Business Logic)
- pools (UI)
- stats
- data (Repository)
- domain (Business Logic)
- stats (UI)
- app
PS: All mentioned packages contains unit test coverage except the app-blockchain-mkt/app/data
The code is mainly based on the following concepts/libraries:
- Clean architecture
- MVVM
- Dynamic features (Charts, Pools, and Stats are each one dynamic feature)
- Dependency injection with Hilt (app module) and Dagger2 (feature modules)
- Coroutines (Data, Domain and View model layers)
- LiveData (View model / fragment)
- MPAndroidChart (Graphs and charts)
- Animations using Lottie
- And unit testing using JUnit, Jupiter and mockk
- Instrumented tests