Sales-Edge-AI — an AI sales coach for Android and iOS, from one Kotlin codebase
A sales rep records a client meeting on their phone. The app transcribes it, scores the conversation, and files it against the right opportunity in the pipeline. Twenty-five screens, fourteen features, Android and iOS — built by one person.
The whole product runs on a single Kotlin Multiplatform codebase with Compose Multiplatform for the UI, which means both apps share their screens, not just their networking layer. That works right up until it doesn’t, and the place it doesn’t is recording — the one thing the product lives or dies on.
Android and iOS have different audio APIs, different rules about what a backgrounded app may do, and different ways of taking the microphone away mid-session. So the recording session sits behind one interface in shared code and is implemented twice underneath: MediaRecorder with a foreground service on Android, AVAudioRecorder reached through a C-interop bridge with a background audio session on iOS. Fourteen platform boundaries like it across the app. Everything above them is shared.