🎵 INTRODUCING Direct Music Player
Virtually all mobile user listen to music, with their favourite music player - be it — the default players (from manufacturers) or the one downloaded from play store.
There are tons of music player on play store, not gonna lie, building another one might seem unnecessary.
While there are lots of music player out there, I feel like most:
- Use libraries, which may not be up to date with current recommended standard
- Are bloated with lots of unnecessary/unused features
- Contains lots of annoying ADS 😠
Taking the above points into consideration, I decided to build a music player — Direct Music Player
- Using all the fancy new stuffs from Android
- With a very simple and modern UI — Without useless features
- NO ADS and Absolutely free.
👋 SAY HELLO TO DIRECT MUSIC PLAYER
Ladies and Gentlemen. 😏.
Today, I am introducing Direct Music Player to the world — A very simple, modern and beautiful music player for android.
Direct Music Player — Apps on Google Play
Here’s a quick look and feel of the application:
BUILT WITH
Direct Music Player is written entirely in Kotlin
FEATURES
- Play song from your device
- Add a song as favourite/like a song
- Browse through artiste and play songs from them
- Browse through album and play songs from the album
- Search and play songs from your device
- Create and store songs in a playlist
- Dark and Light mode 🌗
LIBRARIES USED
- Exo Player
Used for playing Audio
google/ExoPlayer: An extensible media player for Android (github.com - Coroutines
Used for performing asynchronous operations
Kotlin coroutines on Android | Android Developers - Dagger Hilt
For dependency injection
Dependency injection with Hilt | Android Developers - Room
For storing data locally
Save data in a local database using Room | Android Developers - DataStore and ProtoDataStore
For storing key-value pairs and typed objects
DataStore | Android Developers - Live Data and Flow (Used interchangeably)
For basically sending updates to UI when in active state amongst other uses.
Learn advanced coroutines with Kotlin Flow and LiveData (android.com) - Equalizer View
The equalizer animation shown when a song is played
HugoGresse/AndroidVuMeter: A fake VuMeter — Equalizer for android (github.com) - Indicator Fast Scroll
Fast scroll for jumping to a particular position in recyclerview
reddit/IndicatorFastScroll: Android library providing a simple UI control for scrolling through RecyclerViews (github.com) - Glide
For image loading
bumptech/glide: An image loading and caching library for Android focused on smooth scrolling (github.com) - Other libraries: Firebase, Timber and Dexter..
ARCHITECTURE
Model-View-ViewModel (MVVM)
NOTE:
If you want to learn more about some of these libraries and architecture, I have written some comprehensive article about most of them:
LIVEDATA AND FLOW
Flow/LiveData….What Are They? Best Use Case. (Lets Build a Login System) | by Inuwa Ibrahim | ProAndroidDev
MVVM ARCHITECTURE AND NAVIGATION COMPONENT
How I Built a Simple Currency Converter App — Using Recommended Android Pattern and Architecture | by Inuwa Ibrahim | The Startup | Medium
STILL TO COME (TODO)
- Optimisation for small and larger screens and devices — Currently works great for 5.0' screen and above but not optimised for screens < 4' and tablet/large devices 😞
DOWNLOAD
You can download and test current release on Google Playstore:
Direct Music Player — Apps on Google Play
REQUEST/COLLABORATE/CONTRIBUTE
To be honest, this was supposed to be a hobby side project, but if you feel this has the potential to be up there with the best and wanna help out, feel free to reach out to me.
For features, requests or complains…
Send a mail:
directmusicplayer@gmail.com
CONTACT ME
Thanks for your time 👏