Skip to content

iNoles/CoinCanvas

Repository files navigation

CoinCanvas

Compose Multiplatform Crypto Dashboard (Android • Desktop • Web • iOS)

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.


Features

Full Compose Multiplatform Support

  • Android (Jetpack Compose)
  • Desktop (Compose for Desktop)
  • Web (Compose HTML Canvas)
  • iOS (Compose Multiplatform for iOS)

One UI. One design system. One codebase.


Real‑Time Crypto Market Data

  • Live prices, market caps, volumes, supply
  • Sort by price, market cap, volume, etc.
  • Clean, expressive stat layouts

Expressive Gradient Price Charts

  • Smooth cubic Bézier curves
  • Vertical gradient stroke
  • Adaptive scaling
  • Built with Compose Canvas
  • Optimized for dark mode

Custom Expressive Design System

  • Ocean‑blue color palette
  • Large expressive shapes
  • Premium typography hierarchy
  • Expressive cards, list items, and top bars
  • Consistent spacing + motion patterns

Tech Stack

Core

  • 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

Networking

  • Ktor Client — multiplatform HTTP client
  • Kotlinx Serialization — JSON parsing with @Serializable models

Data & Persistence

  • 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

Project Structure

This is a Kotlin Multiplatform project targeting Android, iOS, Web, and Desktop (JVM).

📱 /iosApp

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

Shared Kotlin Multiplatform module containing:

  • UI (Compose Multiplatform)
  • ViewModels
  • Networking (Ktor)
  • Models
  • Repository layer
  • Design system

Subfolders:

  • commonMain — shared code for all platforms
  • androidMain — Android‑specific implementations
  • iosMain — iOS‑specific implementations (e.g., CoreCrypto, platform APIs)
  • jvmMain — Desktop‑specific code
  • wasmJsMain — Web‑specific code

This structure allows platform‑specific optimizations while keeping most logic shared.


Screenshots

Desktop


Getting Started

Clone the repo

git clone https://github.com/iNoles/CoinCanvas.git
cd CoinCanvas

Run Android

Open in Android Studio → Run

Run Desktop

./gradlew :desktopApp:run

Run Web

./gradlew :webApp:jsBrowserDevelopmentRun

Run iOS

Open iosApp in Xcode → Run on simulator or device

About

Compose Multiplatform crypto dashboard with real‑time market data, expressive UI, and support for Android, iOS, Web, and Desktop.

Topics

Resources

License

Stars

Watchers

Forks

Contributors