Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

34 Commits

Folders and files

Repository files navigation

CryptoTrack

A cryptocurrency price tracker for Android built with Kotlin and XML Views. Displays live prices, charts, and details for top coins using the CoinGecko free API.

Screenshots

List Screen Detail Screen Dark Mode
image DetailScreen ListDark

Architecture

MVVM + Clean Architecture with a single-module package-by-layer structure.

com.premkumar.cryptotrack/
├── data/           # Remote (Ktor) + Local (Room) data sources
│   ├── remote/     # CoinGecko API client, DTOs
│   ├── local/      # Room database, DAO, entities
│   └── repository/ # Repository implementations
├── domain/         # Business logic, no Android dependencies
│   ├── model/      # Plain Kotlin domain models
│   ├── repository/ # Repository interfaces
│   └── usecase/    # Use case classes
├── presentation/   # UI layer (Fragments, ViewModels, XML layouts)
│   ├── splash/     # Splash screen with app logo
│   ├── list/       # Coin list with search, currency selector, theme toggle
│   ├── detail/     # Coin detail with line/candle charts, details card
│   ├── common/     # Shared adapter, formatters, chart marker
│   └── theme/      # Light/Dark mode manager (persisted)
└── di/             # Koin DI modules

Tech Stack

Layer Technology
Language Kotlin
UI XML Views, Material Components
Architecture MVVM, LiveData, Clean Architecture
DI Koin
Networking Ktor Client (OkHttp engine)
Local Cache Room
Image Loading Coil
Charts MPAndroidChart (LineChart + CandleStickChart)
Navigation Jetpack Navigation Component (single Activity)
Loading Shimmer (Facebook)
Theme Light / Dark / System (persisted via SharedPreferences)

Features

  • Top 100 Coins — Live prices, 24h change, sorted by market cap
  • Search — Client-side filter by name or symbol
  • Currency Selector — USD, EUR, INR
  • Detail Screen — Rank, icon, price, 24h change, chart (line/candle)
  • Timeframes — 24H, 7D, 30D, 90D, 1Y
  • Chart Tooltip — Tap chart to see exact price + date
  • Dark/Light Mode — Toggle via sun/moon icon on list screen
  • Offline Support — Cached coin list shown with banner when offline
  • Tablet Layout — SlidingPaneLayout master-detail on sw600dp+ (NOt Yet Finished)
  • Rate Limit Handling — Friendly Snackbar on CoinGecko 429 errors

Setup

No API key required. Clone and build:

git clone <repo-url>
cd CryptoTrack
./gradlew assembleDebug

The app uses CoinGecko's Keyless Public API — no registration needed.

Known Limitations

  • The free CoinGecko tier is IP-rate-limited; rapid refreshing may trigger 429 errors
  • Chart data is fetched on demand and cached only in memory (per ViewModel session)
  • Detail screen requires network connectivity (no offline fallback for charts/details)

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages