- Market: real-time updates of the Trending Coins (the most searched coins in the last 24h) and the Top Coins (the top 100 cryptocurrencies by market cap).
- Favourites: track your favourite coins at a glance by adding them to the favourite list.
- Search: search over 10.000 coins by name or symbol.
CoinTrend stores coins’ data locally and updates them automatically only when needed, thus minimising network data consumption and battery consumption. You can still manually trigger a data update whenever you need it by simply swiping down on each screen!
100% free and open-source
Don’t trust, verify! CoinTrend is 100% free and does not include any ads nor trackers. Check the code out yourself and don’t hesitate to reach out if you have any suggestions!
Designed for Android
The User Interface has been designed by following the latest Google’s Material Design guidelines and by using only native Android components and animations.
100% Jetpack Compose 🚀
Material Design 3 💎
Multimodule Clean Architecture 🏛 as davidepanidev‘s Clean Architecture Compose Concept which consists of 4 separate modules:
- app: Android module that contains the Android Application component and all the framework specific configurations. It has visibility over all the other modules and defines the global dependency injection configurations.
- presentation: Android module MVVM-based. It contains the Android UI framework components (Activities, Composables, ViewModels…) and the related resources (e.g. images, strings…). This module just observes data coming from the undelying modules through Kotlin Flows and displays it.
- domain: Kotlin module that contains Use Cases (platform-independent business logic), the Entities (platform-independent business models) and the Repository interfaces. It contains the
BaseAutomaticRefreshDataFlowUseCasewhich handles the logic to refresh the persisted data when it becomes outdated.
- data: Android module that acts as the Single-Source-Of-Truth (SSOT) of the App. It contains Repositories implementation, the Room Entities for persistence, the data source Api implementations and the corresponding api-specific models.
Unit Testing ⚙️ of the domain logic using MockK, Strickt and Turbine to test Kotlin Flows.
Philipp Lackner: he inspired the LineChart with his StockChart. Check out his YouTube channel for great videos about Android Development!
Zach Klippenstein: he inspired the SegmentedControl with his Composable.
nicolashaan: for the Resultat library.
olshevski: for the Compose Navigation Reimagined library.
mxalbert1996: for the Compose Shared Element library.
CoinTrend is released under the GPL-3.0 License. Unless explicitly stated otherwise all files in this repository are so licensed.
All projects must properly attribute the original source and must include an unmodified copy of the license text below in all forks.
CoinTrend: lightweight, fast and open-source cryptocurrencies monitor Copyright (C) 2022 CoinTrend This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.