Crypto App 🤑

App to track cryptocurrencies values

Architecture

The architecture is built around
Android Architecture Components
and follows the recommendations laid out in the
Guide to App Architecture.

Diagram of a typical app architecture.

Presentation layer

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.

Domain layer

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.

Data layer

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.

Data Sources

All the information is provided from coincap.io API
as well as the logo images.

GitHub

View Github