An engineer’s diary on building music apps for Android and iOS — with heavy AI assistance, a tight budget, and a healthy dose of scepticism.
The D-U-N-S came back, and Apple said: enroll as an Individual
The D-U-N-S number arrived about 5 days after the request. I tried to finish the Apple Developer Organization enrollment, and Apple rejected MusicApps.eu as a legal entity — because a plain German Gewerbeanmeldung legally isn’t one. I enrolled as Individual instead, got approved in 30 minutes, and then spent the rest of the day grinding through the Paid Apps Agreement, DSA trader declaration, banking setup, and U.S./Brazil/Mexico tax forms. The App Store seller name will now be my personal legal name, not ‘MusicApps.eu’.
Starting the Apple Developer enrollment (and the D-U-N-S waiting room)
Started the Apple Developer Organization enrollment for MusicApps. Created a dedicated company-domain Apple ID, requested the D-U-N-S number through Apple’s built-in path (free, contained in the enrollment flow), and now wait 5–14 business days for Dun & Bradstreet to respond before the rest of the enrollment can continue.
The iOS port, day one
First day of the SwiftUI port. Most of Phase 5 cleared in one sitting — because the shared KMP module already handled the business logic, only the platform-specific layers (audio engine, file storage, UI) needed iOS implementations. The workflow also shifted: Claude wrote the Swift directly instead of routing through an in-IDE AI.
Better Play Store screenshots: text + feature, one per image
Replaced the plain app screenshots in the Play Store with feature-framed graphics — one feature, one headline, one image. Claude helped tighten the copy; I did the layout in Affinity Designer.
Refreshing the SessionClick landing page
Asked Claude to redesign sessionclick.com. The first attempt was too ambitious and I reverted it via Git. The second, smaller pass — brighter dark palette, the demo video embedded in a phone frame, a new foot-control feature card — stuck.
Shooting a demo video the old-fashioned way
I needed a demo video for the Play Store listing. Generative video tools couldn’t produce anything usable, so I shot it with two phones and a stand. Suno made the soundtrack. Total takeaway: AI video for specific app footage is still hard, filming a phone screen is harder than it looks, and Suno is fun.
Hands-free start/stop with a Bluetooth foot pedal
SessionClick now responds to Bluetooth foot pedals. Pedals marketed as page turners present themselves as keyboards, so the app listens for the keys those pedals send and toggles play/stop. One small feature, one short Gemini prompt, one real bug Claude caught in review.
Selectable click sounds and a haptic tempo circle
Two new features in one session: three pre-recorded WAV click sounds you can pick alongside the existing synth click, and press-and-hold haptic feedback on the main tempo circle. Plus a long debugging detour that turned out to be a lazy-init bug in the native engine.
First batch of beta feedback fixes
Eight items from the first round of beta feedback, in one focused day. A subtle Compose race condition that broke Feel-the-Beat, a rename of “Special Entry” to “Break”, per-playlist rename via a 3-dot overflow menu, an in-library New Song affordance, a system-nav clipping fix, a restructured top-bar menu, and the first version of an Edit Sound screen with live frequency and tone control plumbed all the way down to the Oboe callback.
Hunting for 12 Android testers
Closed testing on Google Play needs 12 testers running the app for 14 days before I can promote to production. Most musicians I know are on iOS. Today was about lowering the friction to join: a public Google Group, license-testing access for the in-app purchase, forum posts on Musora, and a prominent beta block on sessionclick.com.