Giter VIP home page Giter VIP logo

cointrend / cointrend Goto Github PK

View Code? Open in Web Editor NEW
190.0 4.0 26.0 929 KB

Lightweight Open-Source Crypto Monitor ๐Ÿ“ฑ๐Ÿ“ˆ Android MVVM/MVI Multimodule Clean Architecture, Unidirectional Data Flow, Kotlin Flows, Room, Retrofit, Coroutines, 100% Jetpack Compose ๐Ÿš€ Available on Google Play โ–ถ๏ธ and F-Droid ๐Ÿค–

Home Page: https://cointrend.flycricket.io

License: GNU General Public License v3.0

Kotlin 100.00%
cryptocurrencies cryptocurrency-prices jetpack-compose jetpack-compose-charts android-architecture clean-architecture clean-architecture-android jetpack-compose-animation material-design-3 coingecko-api

cointrend's Introduction

CoinTrend

Lightweight Open-Source Crypto Monitor

Android AndroidAPI Kotlin JetpackCompose License Release

Get it on Google Play Get it on F-Droid


Lightweight, fast and private cryptocurrencies monitor for Android ๐Ÿ“ฑ๐Ÿ“ˆ No Ads, no trackers, just coins ๐Ÿ’Ž

Features

  • Market: real-time updates of the Trending Coins (the most searched coins in the last 24h) and the Top Coins (the top 250 cryptocurrencies by market cap).
  • Favourites: track your favourite coins at a glance by adding them to the favourite list and sorting them as you wish.
  • Search: search over 10.000 coins by name or symbol.
  • Settings: choose the tracking configuration you need.

Lightweight

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.

Technical Details

  • 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 BaseAutomaticRefreshDataFlowUseCase which 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.

Powered By

Credits

Contributors

Libraries

Support

CoinTrend as a FOSS project does not generate any revenue. If you wish to support the developers you can donate some sats at the Bitcoin address below:

Bitcoin

bc1qszr4jv77n737569vhsdwgq3zc2x47n39mlq82f

Monero

47h4uVziTTNgWVmorhoJ5YAvC3pbjnLUb6t9v9BcRyWY4koyuFf8dQE41caPSVy5pcfh5WvMAwzSZ27omunS2AxHDhJbeeJ

License

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/>.

cointrend's People

Contributors

davidepanidev avatar zineeeddine avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

cointrend's Issues

Make the tabs swipe!

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is.

I'm always frustrated when I can't switch between trending, favorites and search tab with a swipe from left to right or vice versa. There are other applications letting this do, but not this.

Describe the solution you'd like
A clear and concise description of what you want to happen.
Make them swipeable!

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Not any

Additional context
Add any other context or screenshots about the feature request here.

Will you support the developers through a donation (https://github.com/CoinTrend#support) if/when the feature is implemented?

  • Yes

Error loading chart data: The Coingecko service is now at capacity

Describe the bug
After changing the time frame for a coin 4 times (e.g. from daily to weekly to monthly to 6 months to yearly) Coingecko API doesn't load data. I suppose this is due to the rate limiting?!

To Reproduce
Steps to reproduce the behavior:

  1. Click on a coin
  2. Change time frame 4 times

Expected behavior
Chart data should be loaded correctly.

Screenshots
If applicable, add screenshots to help explain your problem.

Screenshot_20240114-234530

Smartphone (please complete the following information):

  • Device: Google Pixel 6
  • OS: Android 14
  • Browser: Cromite
  • Version [e.g. 22]

Additional context
Also sometimes happens when switching between coins. Thank you for this great app ๐Ÿ™Œ

Ability to hide Market tab (decluttering the UI)

Is your feature request related to a problem? Please describe.
I dont care about 1000 of shitcoins or which are trending . I want to see the Bitcoin chart and mabybe some shitcoins I choose.

Describe the solution you'd like
I can hide the Market tab (in some settings) and use only favorite tab + search for other shitcoins (and add them to the favorite tab).

Describe alternatives you've considered
None apart forking the app.

Additional context
I like clear minimalistic app without unnecesary clutter. I feel market tab is quite cluttery becuase it provides global view on the market with bitcoin and all shitcoin that is very little relevant to once portfolio.

Ability to set desired period of price change on favorites tab.

Is your feature request related to a problem? Please describe.
I'm interested in a 24h price percentage change for all saved currencies when I open the favorites tab. Would be nice to have an option to set default period of change to display. Probably a bit tricky, because it makes sense to add settings page first.

Describe the solution you'd like
Implement basic settings page and add a dropdown with default period to display for favorites tab: 1h, 24h, week, month, year.

Describe alternatives you've considered
Dropdown or some picker on favorites page (though I think this approach would clutter the interface).

Will you support the developers through a donation (https://github.com/CoinTrend#support) if/when the feature is implemented?

  • Yes, I can donate 50 USD Bitcoin equivalent for this one.

Add Coinmarketcap api as fallback

Is your feature request related to a problem? Please describe.
Using the app fast, instant request to new data etc causes the coingecko api to gives 403

Describe the solution you'd like
Whenever Coingecko API gives 403 call Coinmarketcap api, or free exchange APIs, most exchange APIs don't require a key

Describe alternatives you've considered
Waiting 1-2 sec between consecutive clicks anything

**Will you support the developers through a donation (https://github.com/CoinTrend#support) Yes, but please add low gas fee Addresses like BSC, Solana or Polygon

Favourites sort by, reorganize the order of the favourites

Is your feature request related to a problem? Please describe.
Favourites sort by, reorganize the order of the favorites missing. So the order is the order you added them and cant adjust it

Describe the solution you'd like
Make the order changeable when holding one object (coin) for a while make is possible to move it up / down in the list

Describe alternatives you've considered
Sort by (add option for average portfolio token amount or % share ) or sort by performance etc

Additional context
Your GitHub repo is missing a XMR address to support your work. Thanks

@davidepanidev in case you just want to push this project and show us you improve the app (source upstream given) i can talk to some people in order to boost the playstore version

Widgets for home screen

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
No

Describe the solution you'd like
A clear and concise description of what you want to happen.
We should be able to display our favorited cryptocurrencies with price and a little graph on the home screen
We could make various widget types so everyone could select their needs

Widget v1: Favorite cryptos, their prices and their charts in little view, similar to current favorites tab

Widget v2: Chart only widget with the selected cryptocurrency (price on the top and 24h 1w and 3w buttons in the bottom of the chart widget)

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Not any

Additional context
Add any other context or screenshots about the feature request here.
Will do concept arts later.

Will you support the developers through a donation (https://github.com/CoinTrend#support) if/when the feature is implemented?

  • Yes

theres no display when i open the souce code and the gradle not sync

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Desktop App

Is your feature request related to a problem? Please describe.
A way to track cryptocurrencies privately

Describe the solution you'd like
An desktop app to track cryptocurrencies privately.

Describe alternatives you've considered
A website/frontend like Piped is for YouTube but for CoinGecko or CoinMarketcap.

Additional context
Creating the app using Flutter or Tauri which allows one codebase and can be compiled to Windows, Mac, Linux, Android and iOS.

Error while updating the prices

Describe the bug
When pulling down to refresh the prices of the coins, i get an error popup down on the screen saying "There has been an error while retrieving data. Please try again later"

To Reproduce
Steps to reproduce the behavior:

  1. open the app
  2. Try to refresh the prices by pulling down
  3. Error is displaying

Expected behavior
Pulling down and then the prices are updated.

Screenshots
image

Smartphone (please complete the following information):

  • Device : Pixel 7
  • OS : Android 13
  • App Version : 1.2.0

Setting for startpage

First of all I love this app. It feels like good old Blockfolio days.

I have a suggestion for a feature:
Make a setting that allows you to choose whether the app starts on the "Favorites" or on the "Market" tab.
I believe many people prefer to start their CoinTrend on the "Favorites" tab.
Thanks for your good work in advance!

ferquent "You appear to be offline" message right at app start

Describe the bug
Quite often when starting the app immediately after the splash screen i see "you appear to be offline. Please check your internet connection and retry.".

Expected behavior
The app should give more time for coingecko to respond before showing this message

Screenshots
If applicable, add screenshots to help explain your problem.
Screenshot_20240115-193405_CoinTrend

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6] OnePlus Nord N200
  • OS: [e.g. iOS8.1] Android 13
  • Browser [e.g. stock browser, safari] Firefox 121
  • Version [e.g. 22] 1.3.1

Additional context
Add any other context about the problem here.

AboutScreen

Is your feature request related to a problem? Please describe.
A screen where put links to GitHub source code, GitHub issues, contacts (email), and link to Bitcoin donations.

Describe the solution you'd like
A Jetpack Compose Screen (AboutScreen) like the CoinDetailScreen. I'll describe below the items from top to bottom:

Each item inside a section can be a simple text, but it would be better with an icon placed on the left for each of them (like the crypto Cards that show the crypto icon).

Additional context
The Screen is very simple so I see no need to create a corresponding ViewModel. The navigation to this Screen will be placed in the "Settings" tab that will be added in the following release.

Syncable Portfolios & Watchlists

Is your feature request related to a problem? Please describe.
Portfolios and watchlists

Describe the solution you'd like
The ability to have multiple portfolios and multiple watchlists that are private and can be synced with other devices.

This syncable feature can work by having the portfolio and watchlists be saved into a file which is read and written to by the app. Users can use Syncthing or an alternative to Syncthing to sync the portfolio and watchlist files between devices, the app will not store the portfolios and watchlists within the app but in a file instead. Such a file should be encrypted by the user to prevent other apps from reading the data.

Describe alternatives you've considered
Having a server which users can signup to with an email which will save their portfolios and watchlists. Portfolios and watchlists data should be end-to-end encrypted however.

Additional context
None

[Feature request] Organize Favorites

Hello,

Can you implement a way of organizing favorites? Maybe by dragging them up/down list, as well as an option to organize alphabetically?

Small note: The word Favorites is spelt incorrectly both on the bottom navigation and top left when in favorites. Should be spelt: Favorites

Shitcoins priced in BTC

Is your feature request related to a problem? Please describe.
Shitcoins needs to be priced in BTC, pricing in USD gives very little sense.

Describe the solution you'd like
Ideally shitcoins priced in BTC by default, alternatively some switcher/setting to switch it from USD base to BTC base

Describe alternatives you've considered
There is none. (Apart forking this app.)

Additional context
If I hold some shitcoin, I only want to know if it performed better then BTC. Price in USD has no meaning beceause I am always exiting that shitcoin into BTC.

auto refresh

Is your feature request related to a problem? Please describe.
The app should auto refresh the data say every 30 seconds

Describe the solution you'd like
Auto refresh data

Describe alternatives you've considered
Allow login to coingecko to access the higher API call limits

Additional context
Add any other context or screenshots about the feature request here.

Will you support the developers through a donation (https://github.com/CoinTrend#support) if/when the feature is implemented?

  • Yes

Donate button

I love to send you some sat the app is usefull. More sats if you implement the features/feedback from other issues I have created

Dastest option is to add donate button with the Lightning Address (https://lightningaddress.com/)

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.