Day 11(a): Persistence refactor, export/import, UI polish, and splitting App.kt

The last Android-only code moved into shared KMP. JSON export and import landed. The app got a proper color schema with a dark/light toggle. Then App.kt — grown to 1400 lines — got split into focused files without touching the layout, after two earlier failed attempts taught us exactly which composables are safe to extract.

April 18, 2026 · 5 min · Karl-Ernst Kiel

Day 10: Preparing for iOS by testing Android

A feature sprint finished the Song pool with a full Library screen. Then a technical audit triggered an architectural refactor — 130 lines of domain logic moved from Android-only code into the shared KMP module, with 14 new tests that already run on the iOS simulator. Zero lines of iOS code written today, and the app is meaningfully closer to supporting it.

April 17, 2026 · 7 min · Karl-Ernst Kiel

Day 9: Editing, swiping, playlists, and a very satisfying number

The longest session so far. Song and special entry editing, a complete redesign of the swipe gestures, multiple playlist support, JSON persistence, and a jitter measurement that confirms the audio engine is production-ready.

April 16, 2026 · 7 min · Karl-Ernst Kiel

Day 8: Docs and swipe and drag-and-drop

A split session: two new knowledge base articles in the morning, then a long evening of wiring up swipe gestures and drag-to-reorder — including a detour through a custom implementation that never fully worked, ending with the right library call.

April 15, 2026 · 5 min · Karl-Ernst Kiel

Day 2: Picking a name, choosing an architecture, and making the first commit

SessionClick has a name, a GitHub repo, and a KMP project skeleton. Here’s how the decisions fell.

April 8, 2026 · 4 min · Karl-Ernst Kiel