PixelPlayer: An Elegant Offline Music Player That Respects Android Design
Table of contents
In an era where most music apps push subscriptions, cloud sync, and data collection, PixelPlayer takes a refreshingly different approach.
PixelPlayer is a modern, offline-first music player for Android, designed for people who simply want to enjoy their local music library — beautifully, efficiently, and without distractions.
Built using Kotlin, Jetpack Compose, and Material 3, PixelPlayer feels like the music app Google itself would ship if it focused purely on local playback.
This article explores what PixelPlayer is, why it stands out, and how its architecture makes it future-proof for modern Android devices.
What Is PixelPlayer?
PixelPlayer is an open-source Android music player that scans and plays audio files stored locally on your device.
It supports popular formats like MP3, FLAC, AAC, and M4A, and is designed to work completely offline.
Unlike many legacy music players that still rely on outdated UI frameworks, PixelPlayer is built entirely with Jetpack Compose, giving it a smooth, modern, and responsive interface.
At its core, PixelPlayer focuses on three principles:
Offline-first by design
Clean, expressive UI
Modern Android architecture

A UI That Feels Native to Android
One of PixelPlayer’s strongest points is its user interface.
The app uses Material 3 Expressive design with support for:
Dynamic color (Material You)
Light and dark themes
Smooth animations powered by Compose
Responsive layouts across device sizes
Because it’s built using Jetpack Compose instead of XML layouts, the UI feels fluid, consistent, and future-ready. Every interaction — from scrolling through albums to switching tracks — feels intentional and polished.
This is not a “skin on top of old code.”
The UI is the architecture.

Core Music Playback Features
PixelPlayer covers all essential features expected from a serious offline music player:
Local Music Library Scanning
The app automatically scans your device storage and builds a structured music library.
You can browse your collection by:
Songs
Albums
Artists
Background Playback
Music continues playing even when the app is minimized, thanks to a foreground service powered by Media3 (ExoPlayer). Playback controls integrate seamlessly with Android’s system UI.
Home Screen Widget
PixelPlayer includes a Glance-based home screen widget, allowing you to:
Control playback
See current track info
Interact without opening the app
This keeps the experience lightweight and fast.
Built-In Tag Editor (A Rare Feature Done Right)
Many music players ignore metadata editing entirely.
PixelPlayer doesn’t.
It includes a built-in tag editor that allows you to modify:
Song title
Artist name
Album details
Other metadata fields
Under the hood, this is powered by TagLib, which supports multiple audio formats including MP3, FLAC, and M4A.
For users with large local libraries or poorly tagged files, this feature alone makes PixelPlayer extremely valuable.

AI-Powered Features (Without Gimmicks)
PixelPlayer also explores AI-powered enhancements using Gemini.
While the app remains offline-first, AI features are introduced thoughtfully — not as forced replacements for basic functionality.
Instead of turning the app into an experiment, AI is used to enhance discovery and interaction, keeping the listening experience personal rather than algorithm-driven.
This balance is important and rare.
Technical Stack & Architecture (Why Developers Will Appreciate It)
PixelPlayer is a textbook example of modern Android development.
Core Technologies
Language: 100% Kotlin
UI: Jetpack Compose
Audio Engine: Media3 (ExoPlayer)
Architecture: MVVM
Reactive & Scalable Design
State is managed using:
StateFlow
SharedFlow
Asynchronous tasks are handled using:
Kotlin Coroutines
Flow
Dependency & Data Management
Hilt for dependency injection
Room for local database storage
WorkManager for background tasks like library syncing
Media & Networking
Retrofit for networking
Coil for image loading and caching
Amplituda for waveform generation and audio processing
This architecture ensures:
Clean separation of concerns
Easy maintainability
Excellent performance on modern Android devices
Getting Started with PixelPlayer
Prerequisites
Android Studio Iguana (2023.2.1 or newer)
Android SDK 29+
Installation Steps
Clone the repository:
git clone https://github.com/theovilardo/PixelPlay.gitOpen the project in Android Studio
Allow Gradle to sync dependencies
Run the app on an emulator or physical device
The project is well-structured and easy to explore, even for developers new to Compose.
Why PixelPlayer Matters
PixelPlayer is important not because it does something radically new, but because it does everything right:
No unnecessary cloud dependency
No forced accounts or ads
No outdated UI decisions
No bloated feature creep
It respects both users and Android platform guidelines.
In a world full of over-engineered music apps, PixelPlayer proves that simplicity, elegance, and modern engineering still win.
Link: https://github.com/theovilardo/PixelPlayer
Final Thoughts
PixelPlayer feels like a music player built by developers who genuinely care about:
Android design philosophy
Performance
Long-term maintainability
User experience
If you value offline music, clean UI, and modern Android architecture, PixelPlayer is absolutely worth your attention.
This is not just another music player — it’s a reference implementation of how Android apps should be built today.
