While working on my Kotlin Multiplatform project, I kept running into the same problem: I needed something, searched Maven Central, found either nothing maintained or nothing with the simple coroutine-friendly API I wanted. So I built them myself. Twice.

This is the story of KMP Network Monitor and KMP In-App Review — two small libraries, what gap each fills, why expect/actual is the right pattern for both, and what I learned publishing them to Maven Central.

Why two libraries?

Both solve the same category of problem: platform APIs that every mobile app needs, but that KMP doesn't abstract for you. In a KMP project, you either write them twice, find a library, or build one.

I tried the middle option first. What I found was either abandoned, overly complex for my needs, or missing one of the two platforms. And since I'd never built a KMP library before — I decided this was a good excuse to start. So I built both myself.