Budget Planner KMP
The same budget planner — now on every platform, from a single codebase.
The Problem
The original Budget Planner was built for a single platform. That meant separate codebases were needed to reach other targets — duplicated logic, duplicated bugs, and twice the maintenance burden for what is fundamentally the same application.
The Solution
Budget Planner KMP rewrites the core of the application in Kotlin Multiplatform, sharing business logic — data models, repository layer, CSV parsing, and transaction categorisation — across all targets from a single codebase. Each platform gets a native UI while the logic underneath stays consistent and tested in one place.
Shared Logic, Native Feel
The shared module handles everything that does not touch the screen: budget calculations, recurring transaction detection, CSV column mapping, and local persistence. Platform-specific modules consume this via a clean interface and render with native UI components, so the app feels at home on each target without compromising code reuse.
Why Kotlin Multiplatform
Unlike cross-platform frameworks that abstract the UI layer, KMP leaves UI rendering to each platform and shares only the logic. This avoids the common trade-off between code sharing and native performance or appearance — the shared module compiles to JVM bytecode on Android and JVM desktop, and to a native binary on iOS.