Native Android

Tuno — Android Music Player

Tuno is a native Android music player for local MP3 files, built with Kotlin and Jetpack Compose. It brings device music discovery, a searchable library, playlists, favorites, and playback into a consistent dark interface with orange accents.

Built end to end using AI tools for interface design and code generation, with me directing the product requirements and reviewing the results. Tuno explores delivering a complete native Android product through an AI-led workflow, from visual design to implementation.

The app uses MVVM architecture, Room for persistent collections, and an Android Media3 playback service. Users can scan their device or select individual files without copying the original audio into app storage. Duplicate detection and partial-import handling keep the library predictable.

Playback includes seeking, shuffle, repeat, and an editable queue. Tuno restores the queue and playback position when reopened, remaining paused until the user presses Play. Missing files, denied permissions, and empty collections have dedicated recovery actions.

An offline privacy policy, import guide, licenses, and email support are available in the app. Tuno has no user-tracking analytics; Android backup remains enabled for eligible saved app data.

Screenshots

Emulator renders of the Compose UI with sample tracks and playlists. Artwork, song titles, counts, and durations are presentation data, not usage metrics.

Tuno — Library with search, sorting, song rows, and persistent mini-player
Library with search, sorting, song rows, and persistent mini-player
Tuno — Now Playing with artwork, seek bar, and playback controls
Now Playing with artwork, seek bar, and playback controls
Tuno — Playlist Detail with artwork, playback actions, and tracks
Playlist Detail with artwork, playback actions, and tracks
Tuno — Up Next with the current song and reorderable upcoming tracks
Up Next with the current song and reorderable upcoming tracks
Tuno — Favorite songs with Play All and Shuffle
Favorite songs with Play All and Shuffle
Tuno — Unavailable song recovery with Locate File and Skip Song
Unavailable song recovery with Locate File and Skip Song

Responsibilities

  • Defined the product requirements for a local MP3 player with music discovery, playlists, favorites, and queue management.
  • Directed AI tools across interface design and code generation for the Kotlin and Jetpack Compose app.
  • Guided the implementation of persistent collections with Room and service-based playback with Android Media3.
  • Specified recovery flows for unavailable files, denied permissions, empty collections, and failed imports.
  • Reviewed the generated design and implementation against the intended listening experience.