CoinSphere is a modern Android mobile app built using Kotlin and Jetpack Compose. It allows users to view real-time cryptocurrency prices, explore detailed coin information, and manage a list of their favorite coins. Designed with a clean UI and powered by reactive architecture, CoinSphere delivers a fast and smooth crypto tracking experience.
| SplashScreen | Loading Screen | Market Screen |
|---|---|---|
|
|
|
| Search Screen | Settings Screen | Error Screen |
|---|---|---|
|
|
|
MVVM is a software architectural pattern that separates the presentation logic (View) from the business logic (Model) and introduces a middle layer (ViewModel) to mediate communication between them. This design pattern promotes better code organization, testability, and maintainability of Android applications.

- Live Market Data — Displays real-time prices, ranks, and change percentages of popular cryptocurrencies
- Search for coins — Search for coins
- Coin Details View — See in-depth info about each coin, including price, change, symbol, and image
- Favorites — Users can mark coins they want to track closely
- Pull-to-Refresh — Easily refresh market data with a swipe
- Error/Empty State Handling — UI reacts gracefully to no internet or failed API calls
- Dark/Light Mode Support — Follows system theme preferences
| Layer | Tool / Library |
|---|---|
| Language | Kotlin |
| UI Toolkit | Jetpack Compose |
| Architecture | MVVM |
| DI | Hilt |
| Networking | Retrofit + OkHttp |
| Async/Reactive | Coroutines + Flow |
| Image Loading | Coil |
| Navigation | Jetpack Compose Navigation |
| Local Storage | Room (for favorites) |
| State Handling | StateFlow, ViewModel |
| API Provider | CoinGecko (public API) |
com.coinsphere
│
├── data
│ ├── remote # Retrofit API services and DTOs
│ ├── local # Room database, DAOs, entities
│ └── repository # Repository interface and implementation
│
├── di # Hilt modules for dependency injection
│
├── ui
│ ├── screens
│ │ ├── market # Main screen showing list of coins
│ │ ├── details # Screen for individual coin info
│ │ └── favorites # User's favorite coins
│ └── components # Reusable Composables (e.g., CoinItem, TopBar)
│
├── navigation # Navigation graph and screen routes
│
├── utils # Constants, formatters, and helper functions
│
└── MainActivity.kt # App entry point and NavHost





