Crypto is an Android app to track crypto assets values made with MVVM Arch pattern, following Clean Architecture and SOLID principles, Oriented Objects and Reactive Programming paradigms and supported by using the following libraries:
- Jetpack Compose,
- Dagger Hilt,
- Room,
- Retrofit,
- Kotlin Flow,
- AnyChart,
- Coil, and more...
Crypto app.
The architecture is built around Android Architecture Components and follows the MVVM pattern and the recommendations laid out in the Guide to App Architecture.
Diagram of a typical app architecture.
Logic is kept away from Activities and Fragments and moved to ViewModel. Data is observed using Kotlin Flows and the Data Binding Library binds UI components in layouts to the app's data sources. The Navigation component is used to implement navigation in the app, handling Composable Screens or Fragment transactions and providing a consistent user experience.
A lightweight domain layer sits between the data layer
and the presentation layer, and handles discrete pieces of business logic off
the UI thread. See the .\*UseCase.kt
files under /domain
.
The Repository follows the Facate Structural Pattern to handle data operations. Moust of the data is provided mainly from two Data Sources; stored with Room and from the network using Retrofit. The repository modules are responsible for handling all data operations and abstracting the data sources from the rest of the app.
All the information is provided from coincap.io API as well as the logo images.