Table of Contents
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.
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.
See the open issues for a list of proposed features (and known issues).
- Top Feature Requests (Add your votes using the 👍 reaction)
- Top Bugs (Add your votes using the 👍 reaction)
- Newest Bugs
Reach out to the maintainer at one of the following places:
- GitHub issues
- Contact options listed on this GitHub profile
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!
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!
The original setup of this repository is by Avtandil Kupreishvili.
For a full list of all authors and contributors, see the contributors page.
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.
This project is licensed under the Apache Software License 2.0.
See LICENSE for more information.
- 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)