Easy to use app which just shows list of cryptocurrencies, their present market values along with their Candle Chart. I have used CoinMarketCap API as datasource for this application. You can bookmark some currencies to watchlist which appear on the Watchlist screen.
Android device running with Android OS 6.0 (API Level 23) or above. Designed for Phones and NOT for Tablets.
- App queries the
coinmarketcap.com
API to fetch cryptocurrencies and properly parses the JSON Response. - Each List item displayed by the App for the crypto currencies should contain relevant text and information about the currency.
- This includes -
- Current Market value.
- Candle chart for different time periods.
- Increase/Decrease in rate percentage.
- Networking operations are handled by Retrofit library.
- Clicking on cryptocurrency redirects to details page.
- On device rotation -
- The layout remains scrollable.
- The app saves state and restores the list back to the previously scrolled position.
- The UI properly adjusts so that all contents of each list item is still visible and not truncated/overlapped.
- When new cryptocurrency data is fetched, the main screen properly updates the new data.
- Check whether connected to internet or not. Also, validate for any occurrence of bad server response or lack of response.
- This app fetches data once from API using
Retrofit
and caches it usingRoom
. The watchlist is stored inSharedPreferences
as list of IDs. It uses Paging Libaray for loading data from database in discrete manner and UI is bound with data usingDataBinding
. - Used
RecyclerView
in place ofListView
(to display the cryptocurrencies) for its advantages in performance and easy placeholders for custom item decoration. CardView
for displaying the cryptocurrency content for each cryptocurrency item.- Components used:
- Lifecycle - Used by
LiveData
. - LiveData - For observing upon data in
ViewModel
. - ViewModel - For managing UI data.
- Room - For persisting data.
- Paging- For loading long list or infinite data in
RecyclerView
- Navigation - For simplifying navigation using
Fragment
. - WorkManager - For running repeated background
Work
. - DataBinding - For binding data with views in layout.
- Lifecycle - Used by
- List of libraries used:
Home Page | Details Page | Market Page | Watchlist |
---|---|---|---|
- Download the app
- Make sure to turn on the Data network before using the app.