Local-first Flutter music player with Android-native playback, persistent library data, and automated APK releases on GitHub.
Built with the tools and technologies:
- 🌞 Overview
- 🔥 Features
- 🌅 Project Structure
- 🚀 Getting Started 4.1. 🌟 Prerequisites 4.2. ⚡ Installation
- 🤝 Contributing
- 📜 License
AudioDockr is a Flutter-based Android music player that keeps its core UX in Dart while using native Kotlin playback plumbing for media controls, audio focus, and notification handling.
The project now includes:
- Android-native playback and media session integration
- Persistent local data for playlists, likes, recents, and search history
- Automatic Git-based Android version naming during build
- A GitHub Actions workflow that builds and publishes the latest release APK to the repo Releases page on every push
- Search YouTube-backed music content from the app
- Play audio with native Android media controls
- Save liked songs, recents, and custom playlists locally
- Add tracks to custom playlists from the player
- Auto-generate Android app version names from the current Git revision
- Auto-build and publish
app-release.apkto GitHub Releases via Actions
Every push to the GitHub repository now triggers:
flutter pub getflutter build apk --release- upload of the latest
app-release.apkto the repository Releases page
Workflow file:
.github/workflows/android-release.yml
Release behavior:
- the workflow updates a rolling prerelease tagged
continuous - the newest APK replaces the previous one
- Android
versionNameis derived from Git, for example:b43fce4b43fce4-dirty
lib/
├── api/
│ └── youtube_service.dart
├── providers/
│ ├── library_provider.dart
│ ├── playback_provider.dart
│ └── search_provider.dart
├── screens/
│ ├── downloads_screen.dart
│ ├── home_screen.dart
│ ├── library_screen.dart
│ ├── now_playing_screen.dart
│ ├── search_screen.dart
│ ├── settings_screen.dart
│ └── shell.dart
├── services/
│ └── native_player_service.dart
├── widgets/
│ ├── app_bottom_bar.dart
│ ├── infinite_marquee_text.dart
│ ├── mini_player.dart
│ └── playlist_sheets.dart
├── database_helper.dart
├── main.dart
└── theme.dartThis project requires the following dependencies:
- Flutter SDK
- Android Studio or Android SDK
- A connected Android device or emulator
Build from source and run the app:
-
Clone the repository:
❯ git clone https://github.com/SyntaxAdi/AudioDockr.git
-
Navigate to the project directory:
❯ cd AudioDockr -
Clean existing dependencies:
flutter clean
-
Install the app dependencies:
flutter pub get
-
Start the app or build an APK:
flutter run
flutter build apk
- 💬 Join the Discussions: Share feedback, ideas, and design suggestions.
- 🐛 Report Issues: Submit bugs or request features for AudioDockr.
- 💡 Submit Pull Requests: Open a PR with focused, reviewable changes.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your GitHub account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone . - Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.' - Push to GitHub: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
This repository does not currently include a LICENSE file. Add one before distributing or reusing the project under explicit terms.