<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Architecture on MusicApps Dev Blog</title><link>https://blog.musicapps.eu/tags/architecture/</link><description>Recent content in Architecture on MusicApps Dev Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 18 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.musicapps.eu/tags/architecture/index.xml" rel="self" type="application/rss+xml"/><item><title>Day 11(a): Persistence refactor, export/import, UI polish, and splitting App.kt</title><link>https://blog.musicapps.eu/posts/2026-04-18-persistence-export-and-ready-to-test/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.musicapps.eu/posts/2026-04-18-persistence-export-and-ready-to-test/</guid><description>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.</description></item><item><title>Day 10: Preparing for iOS by testing Android</title><link>https://blog.musicapps.eu/posts/2026-04-17-preparing-for-ios-by-testing-android/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.musicapps.eu/posts/2026-04-17-preparing-for-ios-by-testing-android/</guid><description>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.</description></item><item><title>Day 9: Editing, swiping, playlists, and a very satisfying number</title><link>https://blog.musicapps.eu/posts/2026-04-16-editing-swiping-playlists-and-persistence/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.musicapps.eu/posts/2026-04-16-editing-swiping-playlists-and-persistence/</guid><description>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.</description></item><item><title>Day 8: Docs and swipe and drag-and-drop</title><link>https://blog.musicapps.eu/posts/2026-04-15-documentation-and-knowledge-base/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.musicapps.eu/posts/2026-04-15-documentation-and-knowledge-base/</guid><description>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.</description></item><item><title>Day 2: Picking a name, choosing an architecture, and making the first commit</title><link>https://blog.musicapps.eu/posts/2026-04-08-naming-architecture-and-first-commit/</link><pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.musicapps.eu/posts/2026-04-08-naming-architecture-and-first-commit/</guid><description>SessionClick has a name, a GitHub repo, and a KMP project skeleton. Here&amp;rsquo;s how the decisions fell.</description></item></channel></rss>