Crypto App 🤑
App to track cryptocurrencies values
Diagram of a typical app architecture.
Logic is kept away from Activities and Fragments and moved to
Data is observed using
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
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.