CryptoWatch is a cryptocurrency tracking Android application I built as a learning project to explore clean architecture (MVVM) with Retrofit, RoomDB, and Hilt. It fetches real-time crypto market data from the CoinGecko API and allows users to browse trending coins, search for tokens, and save favorites locally.
The app is designed to be modular, responsive, and extensible – aiming to eventually support full portfolio tracking with simulated investments and chart visualizations.
As an Android developer, I wanted to create something meaningful while solidifying my grasp on the following:
- MVVM architecture with proper separation of concerns
- Retrofit for REST API consumption
- RoomDB for local storage
- Hilt for dependency injection and testability
- LiveData + ViewModel lifecycle management
This project also introduced me to good UI practices using RecyclerView
, Glide
for image loading, and a scalable repo-pattern-based data layer.
Layer | Tech |
---|---|
Architecture | MVVM + Repository Pattern |
UI | Jetpack Compose XML + RecyclerViews |
Networking | Retrofit + CoinGecko API |
Image Loading | Glide |
Local Storage | Room Database (planned for watchlist) |
DI | Hilt |
- 🔥 Trending Coins – Fetched from
/search/trending
endpoint of CoinGecko. - 🔍 Search – Search coins with live suggestions using
/search
. - 💾 Saved Coins – Locally persist your favorite coins for quick access.
- 📈 Candlestick Chart – Visualize coin price trends with MPAndroidChart.
- 💡 Built with scalability in mind – the architecture supports easy extension (e.g., charts, portfolio features).
This project uses the free & public CoinGecko API, which requires no authentication. You can find their full documentation here:
📎 https://www.coingecko.com/en/api/documentation
Some of the endpoints I use:
GET /search/trending
GET /search?query={query}
CryptoWatch/
├── data/
│ ├── retrofit/ # API models and service
│ └── db/ # Room entities & DAO (coming soon)
├── di/ # Hilt Module
├── repo/ # Repositories for Room and Retrofit
├── viewmodel/ # ViewModel classes
├── fragments/
│ ├── trending/
│ ├── chart/
│ ├── search/
│ └── saved/
├── utils/ # RecyclerView adapters, UI helpers
Trending | Search |
---|---|
![]() |
![]() |
Saved | Chart |
![]() |
![]() |
-
Clone this repository
git clone https://github.com/your-username/CryptoWatch.git
-
Open in Android Studio
-
Sync Gradle & run on emulator/device
-
You're good to go! No API key needed – CoinGecko is mostly public.
- ✅ Trending, Search, and Saved features implemented
- ✅ Candlestick chart (MPAndroidChart) added
- ✅ RoomDB-backed persistence implemented
- 🧠 Coming Soon:
- Portfolio simulator
- Dark mode support
I’m a passionate Android developer exploring modern app development techniques. This project is part of my journey into scalable architecture and clean code practices. Feel free to reach out or fork the repo!