Blockchain Mkt

📜 Description

This application focus on using dynamic feature along with Hilt / Dagger2 to request Blockchain data.

📦 Package organization

The project is based on a clean architecture with clear separation among the Data, Domain, and UI layers

  • app-blockchain-mkt
    • app
      • app (UI / Main)
      • data (It is a centralized data module to be used by the other data layers)
    • charts
      • charts (UI)
      • data (Repository)
      • domain (Business Logic)
    • pools
      • data (Repository)
      • domain (Business Logic)
      • pools (UI)
    • stats
      • data (Repository)
      • domain (Business Logic)
      • stats (UI)

PS: All mentioned packages contains unit test coverage except the app-blockchain-mkt/app/data

🏗️ Architecture

💾 Tech-stack

The code is mainly based on the following concepts/libraries:

  • Clean architecture
  • MVVM
  • Dynamic features (Charts, Pools, and Stats are each one dynamic feature)
  • Dependency injection with Hilt (app module) and Dagger2 (feature modules)
  • Coroutines (Data, Domain and View model layers)
  • LiveData (View model / fragment)
  • MPAndroidChart (Graphs and charts)
  • Animations using Lottie
  • And unit testing using JUnit, Jupiter and mockk

📌 Tech-debt

  • Instrumented tests

📸 Preview