Skip to content

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

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages