Wednesday, January 10, 2018

2018 Plans

Now that the holidays are over I thought I would share my plans for this year and discuss the current state of 3.0.  For those not aware, I track all my active development, future development, and feature requests on trello here:  To see my current progress on 3.0, the ones you want to look at are "3.0 - Alpha 1", "3.0 - In Progress", and "3.0 Complete".

Anyway I just finished up rewriting all the Dsp / Audio Effect management code (essentially everything dsp/eq related that was NOT in the audio engine).  There have been some long standing bugs like the equalizer not applying on startup or the bass boost not being applied until you toggled it off and on that I really hope will not be present in this rewrite.  My original intent with 3.0 was to just rewrite the UI, but I ended up rewriting a lot of the backend in the process.  Tons of the old code was written 6-7 years ago back when gingerbread was present so it had a lot of unnecessary and/or deprecated code in it.  I am also a much better engineer than I was back then so being able to completely redo entire systems has led to a much more efficient and easier to maintain baseline.  The downside is that its taking much more time than I originally planned.

If you look on trello, the 3.0 lists show about 15 remaining tasks before I can release the first alpha.  I will try to estimate how long I think they will take so you guys can get an idea when the first alpha might be released.  Keep in mind my estimates are most likely the best case scenario..  I only get around 12-20 hrs a week (depending on how I spend my weekends) to do android dev, so the odds of this taking longer than I estimate is pretty high.  Sometimes I miss the early days of GMMP when I was able to get 40-50 hrs in a week.

Remaining tasks for Alpha 1 (summarized):

  • Equalizer / Effects UI - Most of the hard work was already done with my recent dsp management refactoring so this task is just pure UI development.  ~ 2 weeks
  • Playlists UI - I already rewrote the playlist file handling 2 months ago and the playlists UI is pretty straight forward in general. ~ 1-1.5 weeks
  • Navigation - Nothing has really been done yet with the side navigation drawer and to efficiently handle swapping back and forth between the different views.  I anticipate this being a pretty large task.  ~ 3-4 weeks
  • Landscape Support - Most of the UIs are pretty usable already in landscape, so this will probably be just designing the landscape version of now playing (for alpha 1.. i definitely plan on optimizing all UIs for landscape/tablets before the final release).  ~ 2 weeks
  • Preferences UI - Will be pretty simple to start (will go into more detail on preferences later) ~ 1-2 weeks
  • Action hookup - A lot of the menu options / gestures / etc are not completely set up.  I finished the frameworks and implemented a few actions for demonstration, but thats it.  ~ 1-2 weeks
  • Bug fixes / Testing before release ~ 3 weeks

Remember this is a best case scenario and if I get emails or questions asking for an ETA, my response is going to be "when its done" (this is my typical response anyway since estimating time is very hard to do.. a single bug can consume weeks before finding a resolution).  If we add up my estimates and look at the current date I would guess the first alpha release will be sometime in April.  As mentioned before the Alpha will be ran through a separate google+ community from the beta.  A lot of people in the beta do not actually frequent the g+ page, so I do not want to push an update to the beta channel until I have restored all the features / customizations from 2.x (or well.. all the ones i plan on restoring).

GMMP will most likely be in alpha for awhile.  There are still a huge list of capabilities to readd and new ones I want to add (check trello).  For customizations I think I will be taking a different approach this time around and not just load everything up in the preferences UI.  Almost all the UI based customizations will be accessible from the toolbar menu in the actual UI.  This should make customizing the UI much faster and easier.

Betas will come once all the features and customizations are complete.  It will be strictly for bug fixes and minor tweaks, so depending on how good of a developer I am.. this period may be short.. or long depending on how many bugs pop up. 

In summary, the 3.0 final release is still a long way off, but I think a usable alpha version will be available in a few months.  Also keep in mind that 3.0 isnt just a pure rewrite.  I have been adding new capabilities as well (multi genre / artist support, new loudness enhancer audio effect, grid view, bookmark ui, improved shuffle, and permissions) and more are planned (auto dj mode, true album shuffle mode, artist images, app shortcuts, song details view, and year view).