Ever since I started developing with flutter a year or two ago, one of the things that I’ve always want to make was a Podcast App.
Currently I use Podcast Addict as my player of choice, and while it’s often regarded as the best Podcast App on Android, there are a couple huge flaws that hinders its use for a lot of people: lack of syncing and lack more than 1 non-auto playlist (Edit: Apparently you can have more than one playlists, but you only can add podcasts, not individual episodes to the list) . And while I love Podcast Addict, there’s always a few things I’ve wanted to change, such as:
Not Showing both the current chapter (when applicable) and the podcast’s name and publish date
I wish the chapters page was more integrated with the UI, instead of being a button that goes to another screen
If you open the player from the widget or the notification player and press the OS’s back button it would quit the app instead of going the list of podcasts
I don’t like the process of ordering the podcast in your own order
I think the app relies a bit too much on the main app drawer
The ‘more’ (vertical triple dot) button has too many items (some with sub items) for one popup menu
These are mostly minor problems, and I do think that this is still by far the best podcast app on Android right now, but I can (barely) code apps, and I’m not doing anything major right now, so why not try it out myself?
- Chapters have gained popularity among a lot of podcast, and it really adds to the podcast, however there is one major flaw with how they currently work: They are embedded in frames in the mp3 / m4a files, not the RSS feed. If I was working in Java, then this would be relatively trivial as there’s libraries that can extract the frames for me, however the same is not true for Dart; the only library that I found that could get frames from the file, would crash for bigger files, which most podcasts are. If anyone knows of a good library that can do this in Dart, please tell me below.
Syncing and Storage in General
- I’m not sure how I plan to store the subscriptions, listening times, settings, etc. yet
One of the reasons I love Podcast Addict is the general UI, so my app has a lot of parallels when it comes to the UI. While I have lightly touched on parsing the RSS feeds, most of the time I’ve spent so far has been on the UI.
I was about to make a quick change (adding a queue tab) before showing off the screenshots, but I noticed a bug where if there was over 3 items in the bottom navigation bar, then it would ignore the background color and become white. I noticed that I was quite a few flutter versions behind, so I decided to use Android Studio’s update, which also updated the program itself. Slight problem, the dart and flutter plugins aren’t currently compatible with the latest Android Studio version… welp, so:
Here’s Some Screenshots:
Once the Flutter and Dart plugins for Android Studio work again, I’ll continue to work on the UI. After I think I’m “done“ with it, I’ll move to how to store the settings, and then a data model that would work to store podcasts feeds with the bells and whistles added by the app.