A cross-platform Podcast app that intelligently synchronizes your state between devices and offers seamless stream-to-download transition during playback.
Like everyone else in recent times, my coworker and I listen to a lot of podcasts. Granted, he listens to much more, but we both well exceed the average. On car rides to work, home, or back to Philly, on walks with my dog, on my trip into the square to get coffee on the weekend: podcasts. Naturally, we wanted to find the best podcast app.
It’s obviously the Podcasts app from Apple, right? Well, it’s all well and good unless you want the stream to interrupt or skip, take a minute to start playing, and occasionally error out saying some nonsense about the episode being unable to load. Our next solution to the problem was Overcast which seemed great and included a feature I desperately needed: the ability to sync between devices. Only the UI was clunky on the website, like navigating through a store with a blindfold on, and the sync between devices was very delayed, almost half an hour at a time. It was passable, though, and then they added ads all over the app and I couldn’t take it anymore. So I jumped over to Castro which offered none of the features and all of the problems of the previous two and got fed up. Without complacency, none of the apps seemed like the right choice. Was it that hard to make a podcast app?
B approached me with some cool designs for the perfect podcast app he’d dreamed about and I immediately got to work. As it usually goes with us, we spent a lot of time iterating on the perfect design, but it helped us hammer out what we needed in an app versus what we wanted in an app. We left out a lot of very cool features in favor of getting a quick release of a basic podcast app: find the podcast you want to hear, subscribe if you’d like, pick an episode, and be able to return to it a later date.
Harp.fm involved my typical (preferred) technology stack: iOS app built with Swift 3, ASP.NET MVC and Web API built with C#, and a SQL database, all hosted on an Amazon AWS instance. My goal with the project wasn’t to do anything new or fancy but create a more reliable podcast app. In doing so, I also created two open-source projects: HFMAudioPlayer, an audio helper for seamless stream-to-download playback, and HFMForms, which I use in most of my apps but finally gave a name to and separated.
A library that I use to help jumpstart new .NET projects.
HFMAudioPlayer combines all the audio players under one roof and provides utility methods and external device hooks.
HFMForms is a library to help you manage complex form layouts.