Skip to main content

Challenge: Code an Android music player in a weekend

I will start with a little background as to why I am doing this.  About a month ago I purchased a 500 GB Archos 5IT which is running 1.6.  I have quite a large music collection and I wanted to be able to listen to it all in my car so this seemed like the perfect player for me. 

"With storage sizes reaching up to 500 GB, your ARCHOS 5 internet tablet can store up to 600 movies, 290,000 songs or 5 million photos. No need to be frugal, store everything on your ARCHOS."

They advertise that it can hold 290k songs, but the first thing I discovered was that the archos music player only supported roughly 32k songs in its library.  The default 1.6 player was complete garbage as well so I begin to search for a decent music player that could support my needs. My choices were limited for 1.6 but I found one app that seemed good enough for the time being.  It was a folder based and had a good amount of customization.  Folder based navigation is great if you know exactly what you want, but it is not ideal if you are just browsing for something to listen to.  It ended up being my best option for 1.6 but I figured maybe there was something better for 2.0+

A week or so ago I got a new phone that ran 2.2 (HTC Thunderbolt) so the first thing I did was start trying out all the other 2.0+ music players out there.  I tried out maybe 10 different players and still that one for 1.6 was the best.  Some players did have some nice features, but not one had everything I wanted.  I also discovered that some of them (both free/paid) were complete garbage.  I know for a fact that I could write something better.

I've been wanting to learn the android sdk for awhile and now that I have some android devices, this is the perfect time to start.  A music player seems like a good starting project for me and I could eventually mold it into something that suits all my needs .  This week I started setting up a dev environment and went through the simple hello world tutorial.  I also started reading the docs online to get an idea what I would be working with.  I was quite impressed with the API google has provided and the other day I casually said to a friend something along the lines of "this android sdk is great.. from the looks of it I could probably hammer out a decent music player in a weekend".

So all that leads me to today.  The statement of making a music player in a weekend stuck with me and sounded like it would be a pretty good challenge for an experienced programmer like myself.  So naturally:

My plan is to track my progress on here throughout the weekend and see what I end up with sunday night.  If I fail no one will have to see this right? ha

So I sit here at roughly 4pm on friday with my autogenerated project that consists of:

public class GMMPMainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

and looks like:


its go time

Popular posts from this blog

GoneMAD Music Player 4.0 released and is now free!

GoneMAD Music Player 4.0 is now fully rolled out!  After 14 years since initial release as being a paid app, I've decided to try something different and switch to being free with ads.  The market is completely different nowadays compared to the early 2010s.  Ads are everywhere and users typically do not want to pay for apps / games / etc.  But don't worry, those users who previously purchased the unlocker or in app purchase unlock will continue to get an ad free experience.  New users will also have the option to purchase an in app purchase to permanently remove ads.   Note: There is a bug with 4.0 where users with the standalone unlocker may see ads when they first upgrade.  You typically fix this by just force stopping the app and restarting.  Ads should not come back after that.  Alternatively you can contact gonemadsoftware@gmail.com and I can help you out as well.  I have no intention on making users who already paid see ads. W...

GoneMAD Music Player 4.0 fixes (4.0.1 - 4.0.4)

There have been a few updates for GMMP 4.0 fixing issues since the release.  This post covers all of them so far.  4.0.4 should hopefully be the last one for a bit.  I think I fixed everything that has been reported so far that I could reproduce. 4.0.4 is currently in review and should be available on Google Play shortly Changelogs: 4.0.4 (2025-08-22): Fixed crash playing audio with more than 8 channels Fix rare crash trying to seek Crossfade errors should no longer stop playback Fixed date added getting set incorrectly on a long/restarted initial scan Fixed issue updating album artist art for album artists with no associated tracks Fixed smart crossfade. It will no longer incorrectly crossfade on consecutive tracks Status bar icon color should now match toolbar icon color Fixed some text / button colors when using dynamic theme 4.0.3 (2025-08-18): Updated translations Another audioengine fix 4.0.2 (2025-08-14): Smart playlists should now show the correct results when nav...

4.1

4.1 marks the end of life for Android Lollipop (5.0/5.1).  Some of GMMP's dependencies require the SDK level 23 or higher, so I was forced to also increase the min sdk to 23 (android 6.0).  According to the google play store statistics there are around 50 or so users on 5.0/5.1, so I do apologize for dropping support.  10 years of support is fairly decent nowadays anyway.   I've also increased the target SDK to android 16.  With this increase I had to account for the forced "edge-to-edge" that google is making all apps support.  If any UI element ends up behind the navigation buttons, certainly let me know.  I am pretty sure I did everything correctly but I only had one device that I was able to test on (pixel 6a) 4.1.0 (2025-09-03): Updated target SDK to Android 16 Updated dependencies Updated translations