The app is meant to be used in such a way, that you download your favorite music offline & listen it whenever without internet connection.
β¬ Android users can download pre-compiled APK here: Download (Changelog: v0.0.2+2-pre-release)
Please consider β starring the repository, if you are enjoying the app. You can join Gitter for feedback.
NOTE: You might see a dialog "Your phone and personal data are more vulnerable to attack by unknown apps." when installing this app. But let me tell you that, this app is safe as you are seeing the code in this repository & secondly the app will not ask for any of your device permissions at all (not even storage). So, you are safe. Still, it is your choice.
| Browse Offline | Download Music | Listen Offline |
|---|---|---|
![]() |
![]() |
![]() |
These GIFs are only 25 FPS π. Please wait for the GIFs to load, if they appear choppy to you.
![]() |
![]() |
THE CURRENT PRE-RELEASE OF APP IS JUST TO HAVE BASIC FEATURES, LIKE FREE MUSIC DOWNLOAD, OFFLINE PLAYBACK & USER INTERFACE. YOU CAN LOOK AT TEMPORARILY INCLUDED CURRENTLY ADDED AND TO DO SECTION OF README, FOR THE SENSE OF PROGRESS. MANY FEATURES, THAT AN IDEAL MUSIC APP HAS, ARE STILL MISSING. YOU CAN CONTRIBUTE, IF YOU WANT TO. PLEASE β STAR THE REPOSITORY TO SUPPORT THE PROJECT. IF YOU FEEL CONFUSED WHEN USING THE APP, THEN YOU CAN TAKE HELP FROM THE FAQ.
Beautiful looking, yet full of unique features.
-
β¬ Free Music Download
- You download the music of your choice for free and listen offline.
-
β¨ Stunning User Interface
- The app has every element on screen beautifully animated, & very strictly follows material.io guidelines.
-
π Ads Free Forever
- No advertisements!
-
π‘ Safe To Use
- The app does not ask for any of your device permissions at all. (Not even storage).
- Album & track search.
- Track downloads for offline playback. (Generally a track will take under
3010 seconds to be downloaded.205 seconds, if you have good connection.) - Saving track & album metadata offline.
- Background play & media notification.
- Adding whole album to playlist, when playing a track from it.
- Deleting downloaded tracks.
- Simultaneously downloading tracks of an album.
- Playlist Support (Very basic at the moment, will improve in future.)
- Now Playing (Will improve in future.) & About Screens
- Accent Colors
- Dark Mode
The code that this app uses for the majority of work like saving, deleting, playing music & managing history etc. is here in the repository.
Apart from above, the app uses Python 3 based back-end for serving to the user requests. You can see it here in this repository. It is managed by @raitonoberu & me.
You can help me by providing translations for the app in your language & see the app running in your native language.
For that purpose, you can checkout this file on the repository, you can translate this, even if you have little to no knowledge of Dart.
| Language | Provider |
|---|---|
| Russian | @raitonoberu |
| Slovenian | @mytja |
| Portuguese | @bdlukaa |
| Hindi | @alexmercerind |
| German | @MickLesk |
Thankyou!
| Package | Maintainer |
|---|---|
| animations | flutter |
| http | flutter |
| path | flutter |
| path_provider | flutter |
| just_audio | ryanheise |
| audio_service | ryanheise |
| url_launcher | flutter |
For pre-release v0.0.2+2
-
How do I download music?
- Go to the 'Collection' tab, and tap on the search bar. Then, enter a keyword to search & select the mode (i.e Album or Track) in which you want to search. You'll be greeted with the music close to your keyword in a moment. Tap on your preferred result, it's album will show up to you. Now, tap on the tracks you want to save offline.
-
How do I play my saved music?
- Go to the 'Collection' tab (or the starting screen of the app), and tap (or should I say, spin) the refresh button to see your latest music. Now, play whatever you want.
-
How do I control media playback?
- 'Now Playing' tab of the app is for this job. You can do the basic job from the app notification itself.
-
How do I delete a saved track?
- In your 'Collection' tab, open the album to which that track belongs. Long press that track (which you want to delete) and tap 'YES' for deleting confirmation.
-
How do I delete a saved album?
- In your 'Collection' tab, open the album that you wanna delete. Press the bin button in the top right corner.
-
Why is the first search on app generally slower & delayed ?
- This is because of the fact that our backend goes to sleep, if no users are online. So it takes time for it, to warm up again on your first request.
-
My favorite music is incorrectly downloaded. What is wrong with it?
- Open issue, providing the name of album & track.
-
I'm seeing the error 'We all have bad days' when downloading my music. What is wrong?
- This will most likely happen when something is wrong on our side (like dependencies of server are not up to date or our server's IP got blocked with 429 responses due to high amount of requests etc.). You can open issue, if you see this over a long period of time, generally I'll fix this quickly.
This application is powered by Flutter, which uses Dart as its programming language.
The only reason to choose Flutter for this app was because, it seemed promising & has great pre-defined widgets and styles. It was a great moment for me to learn it, as it is growing (becoming popular) at a very fast rate.
Assuming that you have already installed Flutter SDK on your device.
You can start the app in following way:
- Clone the repository and enter it
git clone https://github.com/alexmercerind/harmonoid.git && cd harmonoid
- Get the dependencies
flutter packages get
- Run the application on your device
flutter run- This will run the application in the debug mode. To get the optimal performance, use any of the additional paramters
--releaseor--profile.
For building a performant APK, you can write following in your terminal:
Don't forget to setup your keystore.
flutter build apk
You can use additional parameter --split-per-abi to reduce APK size by building separate APKs for each architecture.




