Skip to content

Latest commit

 

History

History
27 lines (21 loc) · 1.74 KB

File metadata and controls

27 lines (21 loc) · 1.74 KB

BitcoinTracker

An Android application that fetches the current Bitcoin exchange rate using a network call to the Blockchain API and displays it in an appropriate graph of market price over time.

Architecture

The application is built upon the MVVM architecture and according to Google's app architecture guidelines and SOLID principles. Each layer of the application holds a reference to one layer below it and contacts the layer above it using a callback. See diagram:

Application Architecture Diagram

The repository layer and the layers below it are an asynchronous environment, so the components communicate using RxJava Singles that are subscribed on the IO scheduler and observed on the Android Main Thread scheduler. Once the data reaches the ViewModel layer, it is converted to LiveData, because LiveData is lifecycle-aware and will provide the data to the View on the UI thread, only if it's in the foreground.

Dependency graph diagram:

Dependency Graph Diagram

Technologies used