What this is about
People expect streaming apps to just work. Press play, it plays. Switch apps, audio keeps going. No crashes, no buffering wheels. Simple from the outside, a lot of moving parts underneath.
We build native Android streaming apps. Kotlin, Jetpack Compose, Media3/ExoPlayer. The same stack you see in the biggest media apps on the Play Store.
How we build
Architecture
Clean Architecture with MVVM or MVI, depending on what the project needs. Kotlin Coroutines and Flow for async work. Hilt or Koin for dependency injection. Every module is testable on its own.
Media3 and ExoPlayer
This is where we spend most of our time. MediaSession and MediaSessionService for background playback. Adaptive streaming with HLS and DASH. Widevine DRM for protected content. We also track QoE metrics like startup time, rebuffer ratio, dropped frames, and seek latency.
Media3Watch (open source)
We open-sourced a small SDK called Media3Watch. It prints formatted session summaries to Logcat so you can debug playback issues fast. If you want, it can also report to a self-hosted backend (Ktor + PostgreSQL) with Grafana dashboards out of the box.
Results
- 99%+ crash-free rates in production
- 40% faster startup compared to first versions
- 100K+ active users on Play Store apps
- Architectural refactors that cut future feature dev time by about 30%
Who we built for
We have built streaming applications for major content platforms and broadcasters across Turkey and the Middle East. Live TV, on-demand libraries, offline playback, radio streaming. The kind of apps where millions of subscribers are paying for something that needs to work perfectly every time they open it.
Most of this work was done in-house for large organizations, so we can not name names. But the scale speaks: apps on the Play Store serving hundreds of thousands of active users, running against the same content catalogs you would see on major TV platforms in the region.
Tech
Kotlin · Jetpack Compose · Media3/ExoPlayer · MediaSession · Coroutines/Flow · Clean Architecture · MVVM/MVI · Hilt/Koin · Retrofit/OkHttp · Ktor · Kotlinx Serialization · Coil · Docker · Grafana · PostgreSQL
Need a streaming app that just works? Get in touch.