Skip to content

A Cryptocurrency price tracker app on Android mobile devices

License

Notifications You must be signed in to change notification settings

hexley21/CoinFuse


Project license Pull Requests welcome

Table of Contents

About

CoinFuse is a powerful and user-friendly platform for tracking cryptocurrency market capitalization and gaining insights into the world of cryptocurrencies. With real-time data, comprehensive coin information, and more, our app simplifies the complex world of crypto for enthusiasts, traders, and investors. Join us on this exciting journey of exploring and analyzing the crypto market.

Screenshots
Coin Menu Coin Details
Coin Exchanges Exchanges Menu
Exchange Details Profit Calculator
Dark
Coin Menu Coin Details
Coin Exchanges Exchanges Menu
Exchange Details Profit Calculator

Built With

The CoinFuse app follows a modular architecture that promotes separation of concerns and modularity. It consists of the following modules, each responsible for specific functionality:

  • App Module: The main module of the app that encompasses the UI elements and user interface-related functionalities. It utilizes the following Android Architecture Components:

    • LiveData: Used for data observation and propagation between the view-models and UI components.
    • Data Binding: Binds UI components in layouts to data sources, simplifying UI updates.
  • Presentation Module: This module contains the view-models responsible for orchestrating the interaction between the UI components and the domain layer. It utilizes LiveData for reactive data updates.

    • ViewModel: Stores and manages UI-related data, ensuring data survives configuration changes.
  • Domain Module: Encapsulates the core business logic and use cases of the app. It defines interfaces and contracts that the data layer must implement.

  • Data Module: Implements the repositories defined in the domain module and acts as a bridge between the domain and the external data sources. It incorporates the following Android Architecture Components:

    • Room: Handles local database caching and retrieval.
  • Remote Module: Handles data retrieval from external APIs and utilizes Retrofit for network communication.

  • Local Module: An Android-specific module that focuses on storing and accessing data locally. It includes Room for local database caching and Shared Preferences for managing application preferences.

By following this modular architecture, the CoinFuse app achieves a clean separation of concerns, promotes code reusability, and facilitates easy maintenance and testing. The app also incorporates several Android Architecture Components, such as LiveData, ViewModel, Data Binding, and Room, to enhance its functionality and provide a smooth user experience.

Figma jam diagram

Roadmap

See the open issues for a list of proposed features (and known issues).

Support

Reach out to the maintainer at one of the following places:

Project assistance

If you want to say thank you or/and support active development of CoinFuse:

  • Add a GitHub Star to the project.
  • Tweet about the CoinFuse.
  • Write interesting articles about the project on Dev.to, Medium or your personal blog.

Together, we can make CoinFuse better!

Contributing

First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.

Please read our contribution guidelines, and thank you for being involved!

Authors & contributors

The original setup of this repository is by Avtandil Kupreishvili.

For a full list of all authors and contributors, see the contributors page.

Security

CoinFuse follows good practices of security, but 100% security cannot be assured. CoinFuse is provided "as is" without any warranty. Use at your own risk.

For more information and to report security issues, please refer to our security documentation.

License

This project is licensed under the Apache Software License 2.0.

See LICENSE for more information.

Acknowledgements

  • ongakuer - CircleIndicator - A lightweight indicator like in nexus 5 launcher. (Apache-2.0 license)
  • bumptech - glide - An image loading and caching library for Android focused on smooth scrolling. (Apache-2.0 license)
  • airbnb - lottie - Render After Effects animations natively on Android and iOS, Web, and React Native. (Apache-2.0 license)
  • PhilJay - MPAndroidChart - A powerful 🚀 Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations. (Apache-2.0 license)
  • facebook - shimmer-android - An easy, flexible way to add a shimmering effect to any view in an Android app. (BSD license)
  • ReactiveX - RxJava - RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM. (Apache-2.0 license)
  • square - retrofit - A type-safe HTTP client for Android and the JVM. (Apache-2.0 license)
  • square - okhttp - Square’s meticulous HTTP client for the JVM, Android, and GraalVM. (Apache-2.0 license)
  • google - dagger - A fast dependency injector for Android and Java. (Apache-2.0 license)
  • mockito - mockito - Most popular Mocking framework for unit tests written in Java. (MIT license)
  • robolectric - robolectric - Android Unit Testing Framework. (MIT license)
  • google - Material icons - Material Design Icons' growing icon collection allows designers and developers targeting various platforms. (Apache-2.0 / Ubuntu font license)

About

A Cryptocurrency price tracker app on Android mobile devices

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published