Maheshwar Hari Tripathi
Open to select work 21:00 IST · Portfolio 2026
← Work index Case 06 / 09 Android · Music

Swar

A warm, local-first music player for Android.

In progress 2026 Android
Swar — A warm, local-first music player for Android.

Why it exists

01

MElo proved that a web app could play music, but it also showed the limits of the browser: background playback is fragile, downloads are awkward, and the whole thing feels like a website in a costume.

Swar is the native rebuild. It keeps the warm editorial interface I wanted and moves playback, library and downloads into Android's media stack.

Recorded 2026
Kaushambi, India

The constraints

02
  • 01Android 8 and above, including cheap phones with aggressive background limits.
  • 02The JioSaavn endpoint is unofficial and can change without notice.
  • 03A personal build, not a Play Store release.
  • 04No budget for a music catalogue licence.

The approach

03

Use Media3 properly

Playback runs in a MediaSessionService with a persistent notification and lockscreen controls. The UI observes the player rather than owning it, so navigation does not interrupt audio.

Local library as the source of truth

Downloaded and on-device tracks live in Room. Streaming results are cached metadata, not treated as permanent library entries.

Design for one hand

The player is built around a thumb-reachable transport bar and a queue sheet. No hidden gestures that require a second hand.

What it actually does

04
  • 01Background playback with lockscreen and notification controls.
  • 02On-device music library.
  • 03JioSaavn search and streaming.
  • 04Downloads for offline listening.
  • 05Queue management and recently played.

Technical notes

05

Kotlin and Compose, with Media3's ExoPlayer underneath. Hilt handles dependency wiring; Room stores the local library and download state. The app is modular so playback, catalogue and UI can change independently.

The current release build is 18.2MB. It is a personal APK and is not distributed publicly.

Role
Design, Android development, playback architecture
Year
2026
Platform
Android
Stack
Kotlin, Jetpack Compose, Media3, ExoPlayer, Room, Hilt, JioSaavn API
Status
In progress

Honest limits

06
  • 01The streaming endpoint is unofficial and may break.
  • 02No gapless playback yet.
  • 03Android only; there is no desktop or iOS build.
  • 04The APK is a personal build, not a signed store release.

What it taught me

07

“Media apps are judged by what happens when the screen is off. Most of the work was in the service, notification and audio focus, not the pretty player screen.”

Next case — 07 / 09 AnonChat All nine projects