MCPcopy Index your code
hub / github.com/Patchett/CryptoBuddy

github.com/Patchett/CryptoBuddy @5.3.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release 5.3.3 ↗ · + Follow
463 symbols 939 edges 49 files 65 documented · 14%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

CryptoBuddy

platform license GitHub (pre-)release

Cryptobuddy is an Android app that tracks and displays prices, news, charts, markets, and fundamentals of over 1500 crypto currencies! The app is completely open source with NO ADS EVER! It was a labor of love. I have spent months working on it every night after I get home from work and on weekends.

Features

  • Displays market cap, volume, percent change, price, and coin image for over 1500 crypto currencies
  • List is sortable and searchable
  • Users can add favorites to a separate tab so that they can keep a close eye on the currencies they care about
  • Displays charts for price over time of each currency at different intervals
  • Users can drag their fingers across the chart to see the price at a given time
  • Chart displays data in USD and BTC
  • Statistics about the supply of each currency are displayed on a table under the chart
  • Easily navigate directly to the CoinMarketCap page for a currency from right inside the app
  • Displays markets for each currency sorted by volume
  • Aggregates crypto currency news from many different news sources and displays articles in a clean and aesthetic manner

Libraries Used

  • EasyRest: This library is used extensively for all network calls within the app. It takes care of request caching, multi-threading, and marshalling JSON into objects with Jackson
  • material-dialogs: Library used to show the sorting dialog
  • customtabs: Library used for the web browser with Chrome integrations
  • ToggleButtonGroup: Library used for the buttons which allow users to toggle the date range on the chart
  • MaterialFavoriteButton: Library used for the favorite button on the home screen
  • MPAndroidChart: Used to show price over time chart
  • Picasso: Library used for hassle-free image loading and display
  • GSON: Library used to serialize text from the database into real Java objects and vice-versa

Permissions

android.permission.ACCESS_NETWORK_STATE
android.permission.INTERNET

These two permissions are required so that we can talk to the APIs on the internet that give us information about crypto currencies

Sources

  • CryptoCompare min-api: This API is currently only used for Markets and News
  • CoinMarketCap: Huge thanks to CoinMarketCap! Without their APIs this app would not be possible. They are the backend for chart data, coin images, market caps, volume, prices, and percent changes
  • shields.io: Provides the beautiful build badges at the top of this README
  • Smashicons

Extension points exported contracts — how you extend this code

CustomItemClickListener (Interface)
Created by Ryan on 8/13/2017. [4 implementers]
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/CustomItemClickListener.java
DrawerController (Interface)
(no doc) [2 implementers]
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/DrawerController.java
FavoritesListUpdater (Interface)
(no doc) [2 implementers]
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/currencylist/AllCurrencyListFragment.java
AllCoinsListUpdater (Interface)
(no doc) [1 implementers]
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/currencylist/FavoriteCurrencyListFragment.java
ProgressListener (Interface)
(no doc) [1 implementers]
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/news/CustomWebChromeClient.java

Core symbols most depended-on inside this repo

setText
called by 67
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/TextDrawable.java
format
called by 53
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/singletons/CurrencyFormatterSingleton.java
getSymbol
called by 19
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/models/rest/CMCCoin.java
getPrice_usd
called by 18
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/models/rest/CMCCoin.java
getVolume_usd_24h
called by 18
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/models/rest/CMCCoin.java
getRank
called by 16
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/models/rest/CMCCoin.java
getPercent_change_1h
called by 16
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/models/rest/CMCCoin.java
getPercent_change_24h
called by 16
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/models/rest/CMCCoin.java

Shape

Method 406
Class 52
Interface 5

Languages

Java100%

Modules by API surface

app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/models/rest/CMCCoin.java38 symbols
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/models/rest/DataNode.java31 symbols
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/currencydetails/chartandtable/GraphFragment.java31 symbols
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/currencylist/AllCurrencyListFragment.java30 symbols
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/TextDrawable.java26 symbols
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/models/rest/News.java25 symbols
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/currencylist/FavoriteCurrencyListFragment.java22 symbols
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/models/rest/CoinList.java18 symbols
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/currencydetails/markets/MarketsFragment.java17 symbols
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/models/rest/MarketNode.java15 symbols
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/currencylist/CurrencyListTabsActivity.java15 symbols
app/src/main/java/com/cryptobuddy/ryanbridges/cryptobuddy/currencylist/FavsCurrencyListAdapter.java12 symbols

For agents

$ claude mcp add CryptoBuddy \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact