# Roadmap: chart-realtime ## Overview KMP real-time chart library. Six phases v0.1.0 MVP shipped; v0.2.0 polish shipped. ## Milestones | Milestone | Version | Status | Completed | |-----------|---------|--------|-----------| | v0.1.0 MVP | 0.1.0 | ✓ Shipped | 2026-05-20 | | v0.2.0 Polish | 0.5.0-SNAPSHOT | ✓ Shipped | 2026-05-21 | | v0.3.0 iOS Build Pipeline | 0.5.0-SNAPSHOT | ✓ Shipped | 2026-05-21 | | v0.4.0 (TBD) | - | Not started | - | --- ## v0.1.0 — MVP (SHIPPED) Status: ✓ Complete Phases: 6 of 6 complete ### Phases | Phase | Name | Status | Completed | |-------|------|--------|-----------| | 1 | Module Scaffold | ✓ Done | 2026-05-20 | | 2 | Buffer + LoD | ✓ Done | 2026-05-20 | | 3 | State API | ✓ Done | 2026-05-20 | | 4 | Render Engine | ✓ Done | 2026-05-20 | | 5 | Demo App | ✓ Done | 2026-05-20 | | 6 | Polish + Docs | ✓ Done | 2026-05-20 | Delivered: CircularBuffer, LodDecimator, RealtimeChart composable, basic AxisRenderer. --- ## v0.2.0 — Polish (SHIPPED as v0.5.0-SNAPSHOT) Status: ✓ Complete Summary: .paul/phases/v0.2.0-plan-SUMMARY.md ### Delivered - TieredBuffer (3-tier 1h ring buffer, MIN_MAX binning, zero-alloc) - LodMode enum (MIN_MAX, LTTB) — MEAN removed - LTTB render-time decimation (O(n) Largest-Triangle-Three-Buckets) - AxisLabelMode (INSIDE/BESIDE/HIDDEN) with chartLeft/chartBottom insets - T0-relative X-axis timestamps with mm:ss/hh:mm:ss formatting, negative support - Material3 dynamic theming (light/dark, wallpaper-based, API 31+) - Camera cutout / edge-to-edge support - Sensor domain layer (Clean Architecture) - Koin 4.0.0 DI wiring - Package rename: eu.henesis → dev.dtrentin - Git remote: ssh://git@3nt-git.duckdns.org:222/davide.trentin/KMPCharts.git - Sensor rate cap: 200Hz (5_000μs) --- ## v0.3.0 — iOS Build Pipeline (SHIPPED) Status: ✓ Complete Plan: .paul/phases/v0.3.0-ios-build-plan.md ### Delivered - 3 iOS targets compile green (iosX64, iosArm64, iosSimulatorArm64) - `applyDefaultHierarchyTemplate()` wires iosMain/iosTest across targets - `linkDebugFrameworkIosSimulatorArm64` green - `iosSimulatorArm64Test` green — 33 tests, 0 failures - XCFramework `ChartRealtime` produced (debug + release): ios-arm64 + ios-arm64_x86_64-simulator slices - Pre-existing compile bugs fixed: - `@Volatile` → `kotlin.concurrent.Volatile` import - `@JvmName` → `kotlin.jvm.JvmName` import (OptionalExpectation) - `String.format` in AxisRenderer → manual `formatFixed`/`formatScientific`/`pow10` helpers - `NSDate.date()` → `NSDate()` + `timeIntervalSinceReferenceDate` + 1970 epoch offset - Android non-regression confirmed (`assembleRelease`, `publishToMavenLocal --dry-run`) - Local Mac config: removed Linux JDK pin from `gradle.properties`, added `local.properties` for Android SDK --- ## v0.4.0 — Potential Scope (TBD) | Item | Effort | Priority | |------|--------|----------| | Publish to Maven Central / GitHub Packages | M | Medium | | iOS demo app (SwiftUI) | L | Medium | | CI workflow GitHub Actions (Android + iOS) | M | Medium | | Compose compiler stability annotation on SignalConfig | S | Low | | CocoaPods / SPM publication | M | Low | --- *Roadmap updated: 2026-05-21*