ofir-bar / BitfinexClient

Android app showing details of the BTC/USD currency pair, at real-time

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BitfinexClient

An android app that showing the details of the BTC/USD currency pair, at real-time:

  • a summary (current price, price change, volume, low, high) - ticker
  • a table with the order book

MVVM pattern with Clean architecture (as much as possible) developed with Kotlin.

Clean architecture consists of three layers:

  • Data, which includes databases, clients, repositories, network
  • Domain, which includes entities, usecases, and interactors
  • Presentation, which includes UI related components, such as ViewModels, Presenters, Layouts, Fragments, Activities

Each layer has its own entities/models which are specific to that package. Mapper is used for conversion of one layer to another.

Sources: 1, 2, 3

Android Jetpack Components used:
  • Fragment
  • ViewModel
  • LiveData
  • Data Binding
  • ActivityScenario, for instrumentation test (part of AndroidX Test)
Libraries:
  • Koin, an easy-to-use DI framework. Nice comparison with Dagger

  • RxKotlin / RxAndroid, RxJava bindings for Kotlin / Android

  • Scarlet, a Retrofit inspired WebSocket client, manages the client-server connection for you. It makes use of a StateMachine to handle WebSocket connection correctly. Developed by Tinder, and has been in production for more than one year.

  • OkHttp, an HTTP client for Android and Java applications

  • moshi, JSON library for Kotlin and Java

  • Timber, a logger which provides utility on top of Android’s Log class

About

Android app showing details of the BTC/USD currency pair, at real-time


Languages

Language:Kotlin 100.0%