A free, privacy-focused Android music player for your personal music library.
Resona is a native Android music player built with Kotlin that lets users listen to music from their own music servers, without ads or unnecessary tracking.
The goal was to build a smooth, modern music experience where users can access their music library, stream songs, and enjoy their favorite tracks from anywhere. Instead of depending on a subscription-based music platform, Resona gives users more control over their own music.
The Idea Behind Resona
I wanted to build a music player that combines a clean, modern interface with the freedom to use personal music servers. Many users already have their own music collections, but accessing them through a convenient mobile app can be challenging.
Resona aims to make that experience simple by connecting to services like Navidrome and Jellyfin, allowing users to access their personal music libraries both locally and remotely.
Key Features
Personal Music Library
Connect to your own music server and browse your music collection from your Android device.
Music Streaming
Stream your favorite songs from supported servers, whether you're connected to your local network or accessing your server remotely.
Offline Listening
Enjoy downloaded music without needing an active internet connection.
Modern Music Experience
A clean interface designed to make browsing music, exploring your library, and controlling playback simple and intuitive.
Privacy-Focused
Resona is designed around a straightforward principle: your music experience should be yours, without ads or unnecessary tracking.
Native Android Performance
Built with Kotlin for Android, Resona focuses on a lightweight app size, responsive interactions, and a smooth user experience.
Supported Music Servers
Resona has been tested with:
Navidrome — Connect to your personal music streaming server.
Jellyfin — Access music from your self-hosted media library.
Both local-network and remote server connections have been tested.
Technology Stack
Kotlin — Native Android development
Android — Platform and application development
Media3 / ExoPlayer — Audio playback
Jetpack Compose — Modern Android UI
Coroutines and Flow — Asynchronous operations and reactive data handling
Room — Local data storage
Development Highlights
I developed Resona as a native Android application rather than using a cross-platform framework. This gave me direct control over Android features and allowed me to focus on performance, application size, and the overall user experience.
One of the key goals was keeping the app lightweight. The app bundle is approximately 10 MB, with an installed size of around 4 MB when delivered through Google Play.
I also worked on integrating different music server systems so users can access their existing music collections instead of being locked into a single music provider.
My Role
I handled the project from development through release preparation, including:
Planning the application structure
Building the native Android app
Integrating music server APIs
Implementing audio playback and music library access
Designing the user experience
Testing local and remote server connections
Preparing the app for Google Play release
Project Goals
Resona is designed to be a free music player that gives users more control over how they access and enjoy their music. The long-term vision is to keep improving the experience while maintaining its focus on privacy, performance, and personal music ownership.