Android crypto tracking app built using Jetpack Compose.
The app displays real-time cryptocurrency prices using the CoinCap API, with a list-detail layout showing market data for various cryptocurrencies.
Clone the repo:
git clone https://github.com/nadia-nh/android-crypto-tracker.git
cd android-crypto-tracker
Open the project in Android Studio and run it on an emulator or device.
The app follows the MVVM architecture pattern:
-
MainActivity
Entry point that sets up the Compose UI and initializes the ViewModel. -
CryptoTrackerApp
Root composable that handles navigation between the coin list and detail screens. -
CoinListScreen
Displays a list of cryptocurrencies with their current prices and 24-hour changes. -
CoinDetailScreen
Shows detailed information about a selected cryptocurrency including market cap, volume, and price history. -
CryptoViewModel
Manages UI state, handles API calls, and coordinates data flow using Kotlin Coroutines and Flow. -
Repository
Single source of truth for data operations, fetching data from the CoinCap API.
- Jetpack Compose – Modern declarative UI toolkit
- Retrofit – HTTP client for API calls
- Kotlin Coroutines & Flow – Asynchronous programming and reactive state
- Material Design 3 – UI components and theming
- MVVM Architecture – Separation of concerns
This app was built based on a free course by Philipp Lackner, with code available here.
Additional resources used:
- CoinCap API – Cryptocurrency market data
- Material3 theme generator – Theme customization
- Jetpack Compose crash course
- Generic result wrapper
- Coroutine cancellation and exception handling
- Initial data loading
- One time events in channels and shared flows
- List-detail layout
- Drawing on a canvas in compose