CoinCanvas is a modern, expressive cryptocurrency dashboard built with Compose Multiplatform, Material 3, and a fully custom Expressive Design System.
It runs on Android, Desktop, Web, and iOS — all powered by a shared Kotlin codebase.
The app delivers real‑time market data, smooth gradient charts, and a premium UI inspired by ocean‑blue, bioluminescent aesthetics.
- Android (Jetpack Compose)
- Desktop (Compose for Desktop)
- Web (Compose HTML Canvas)
- iOS (Compose Multiplatform for iOS)
One UI. One design system. One codebase.
- Live prices, market caps, volumes, supply
- Sort by price, market cap, volume, etc.
- Clean, expressive stat layouts
- Smooth cubic Bézier curves
- Vertical gradient stroke
- Adaptive scaling
- Built with Compose Canvas
- Optimized for dark mode
- Ocean‑blue color palette
- Large expressive shapes
- Premium typography hierarchy
- Expressive cards, list items, and top bars
- Consistent spacing + motion patterns
- Kotlin Multiplatform (KMP) — shared logic for Android, iOS, Desktop, Web
- Compose Multiplatform — shared UI across all platforms
- Material 3 — modern UI components and theming
- Compose Canvas — custom gradient charts and drawing primitives
- Ktor Client — multiplatform HTTP client
- Kotlinx Serialization — JSON parsing with @Serializable models
- SQLDelight — type‑safe database with shared schema
- expect/actual SQLDelight drivers — platform‑specific driver implementations
- Repository pattern — clean data access layer
- Koin — dependency injection for repositories, services, and ViewModels
This is a Kotlin Multiplatform project targeting Android, iOS, Web, and Desktop (JVM).
Contains the iOS application entry point.
Even when sharing UI with Compose Multiplatform, iOS still requires:
- An Xcode project
- Swift/SwiftUI integration points
- App lifecycle setup
Shared Kotlin Multiplatform module containing:
- UI (Compose Multiplatform)
- ViewModels
- Networking (Ktor)
- Models
- Repository layer
- Design system
Subfolders:
commonMain— shared code for all platformsandroidMain— Android‑specific implementationsiosMain— iOS‑specific implementations (e.g., CoreCrypto, platform APIs)jvmMain— Desktop‑specific codewasmJsMain— Web‑specific code
This structure allows platform‑specific optimizations while keeping most logic shared.
git clone https://github.com/iNoles/CoinCanvas.git
cd CoinCanvasOpen in Android Studio → Run
./gradlew :desktopApp:run./gradlew :webApp:jsBrowserDevelopmentRunOpen iosApp in Xcode → Run on simulator or device
