Code Monkey home page Code Monkey logo

gs-ts / bitfinexclient Goto Github PK

View Code? Open in Web Editor NEW
18.0 2.0 8.0 218 KB

An Android app written in Kotlin that demonstrates a clean architecture with MVVM, websockets using WebScoket client Scarlet, and RxAndroid/RxKotlin.

Kotlin 100.00%
android kotlin android-architecture-components mvvm rxandroid rxkotlin clean-architecture koin scarlet bitfinex bitfinex-api bitfinex-websocket-api viewbinding databinding-android diffutil-recyclerview websocket

bitfinexclient's Introduction

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 developed with Kotlin.

Clean architecture consists of three layers:

  • Data, includes data objects, databases, network clients, repositories.
  • Domain, includes use cases of business logic. This layer orchestrates the flow of data from Data Layer to Presentation and the other way.
  • Presentation, includes UI related components, such as ViewModels, 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.

Android Jetpack Components used:
  • Activity
  • Fragment
  • ViewModel
  • LiveData
  • View Binding (used to replace findViewById and synthetic binding)
  • Data Binding (used for Layouts and binding expressions), example: binding expression
  • ActivityScenario, for instrumentation test (part of AndroidX Test)
  • Espresso
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

Screenshots:

Sources:

bitfinexclient's People

Contributors

gs-ts avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.