Motivation

As a sufferer of tinnitus, I have a hard time getting to sleep. At first I would lie awake for ages listening to the constant ringing sound until eventually I was overcome with tiredness and finally drifted off. I tried white noise but it didn't help. Listening to ambient music seemed to make it harder to get to sleep. One day I discovered podcasts and everything changed.

At first I enjoyed listening because I enjoyed the content, so it didn't matter that I couldn't get to sleep. Over time I began to drift off more easily with the podcast on. These days I only have to play 5 minutes of anything and I'll be sleeping like a baby.

Over time I've tried a few different podcasting apps - Google Casts, Podbean, ACast and more recently I've come to like Pocket Casts. None are perfect for my needs though so I decided to make my own.

Development

This project is early in development. The list of features available so far are:

The implementation uses the provider pattern to allow splitting of logic and presentation. Data is stored in a SQLite database, although it will most likely be moved to Hive or Drift because Flutter's SQFlite package requires different code paths depending on whether the platform is mobile or desktop.

During the subscription process, all of the data is fetched from the feed. This process can be time consuming so it is done inside its own isolate, leaving the main isolate free to keep the UI running smoothly.

Screenshots