Android app for tracking cryptocurrency prices. Prices, charts, portfolio — all works offline.
Loads top 100 coins with live prices and 24h change. On the detail screen — interactive price chart with gradient fill, drawn on Compose Canvas without third-party libraries.
Portfolio tracker: enter how many coins you hold, the app calculates current value and shows allocation on a pie chart drawn on Canvas.
Data is cached in Room — the app works offline, showing the last loaded data.
Kotlin · Jetpack Compose · Ktor · Koin · Room · DataStore · Coroutines · Flow · Coil
Follows Clean Architecture and MVVM principles
across three modules: data, domain, presentation.
domain — pure Kotlin, no external dependencies:
models, repository interfaces, use cases.
data — Ktor for network, Room for local storage,
repository implementations.
presentation — Compose screens, ViewModels with StateFlow.
UI reads only from Room via Flow. Network writes to Room. Favorites flag is preserved on every data refresh.
git clone https://github.com/NewikovN/CryptoWatch.gitOpen in Android Studio, run on device or emulator (min SDK 26). No API key required.
CoinGecko API — free Demo plan, no key needed.



