Broadcasts: Streaming Radio

April 01 2020

Way back in 2016 I built myself a mini streaming radio player app to use at home and give to family. It included all our local Irish radio stations, and had the most simplistic vanilla UI — a true minimum viable product.

MobileRadio's initial UI from 2016

It worked! Barely! But it was enough to satisfy what I wanted, so I put 'MobileRadio' on the shelf at the time, forgotten with the piles of other abandoned projects, and never really thought about going back to it.

After the announcement of Catalyst (UIKit on macOS) at WWDC 2019, I figured it would be fun to build a Catalyst app from the ground up for Mac, with no initial intention of bringing it to iPhone or iPad. I trawled my projects folder and came across MobileRadio and figured it would be the perfect example.

I put a lot of love into building this Radio app for Mac, using UIKit, and delved deep into talking to AppKit where necessary to try and build an experience worthy of being on macOS. Using Apple's new Podcasts app as a template, I replicated its UI using all of the latest APIs and technologies from iOS 13, relying heavily on context menus.

HCC Radio on macOS

At this point I had no intention of shipping this radio app, on macOS or otherwise, but I was inspired by all the developers debuting their Catalyst apps with the launch of macOS Catalina and, in my excitement, figured I could make a showcase product of sorts. I named it HCC Radio (High Caffeine Content, that is), included just the pre-set Irish radio stations, and unleashed it upon the world. I figured it was a pretty good example of Catalyst, respectful of the Mac user experience; thus far, HCC Radio has done well for itself, in its limited niche of Irish radio streaming apps!

HCC Radio reviews

One of the more interesting questions I had last year was around AppleScript support in Catalyst (then, Marzipan) apps — it was possible, for sure, but I had no idea if such an app would make it through App Review. I took it upon myself to build AppleScripting into HCC Radio, just to illustrate some macOS, uh, deep cuts in an app built with iOS APIs.

AppleScript in HCC Radio

HCC Radio was a fun side project, but there's something really motivating about actually shipping software, and I was compelled to try bringing the app to iOS. Unlike most Catalyst projects, HCC Radio was built first for Mac, so the next obvious choice was to bring it to iPad — conceptually similar in many ways, iPad would be able to reuse the existing structure of the app, where iPhone would require a rethink of navigation. I wanted to build a kind of iPad app for people like me who want so much more than just a blown-up iPhone app, and I'm really happy with how it's turned out.

If I was going to bring this to iOS, and expand the app with new features, I needed a better product name: and so 'Broadcasts' was born!

Broadcasts on iPad

Broadcasts, unlike HCC Radio, has full support for adding your own stations and collections, syncs over iCloud, and runs on iOS and iPadOS. On the Mac, it retains the AppleScript support it had before, whereas on iOS it supports mouse & trackpad and has a pull-down Command menu with discoverable keyboard shortcuts.

Like HCC Radio, Broadcasts is a free app with the preset Irish Radio stations, but, if you want to unlock editing features it asks for a simple $5 in-app purchase — no subscription or monthly fees required. Being an app with Universal Purchase, if you buy it on iPhone or iPad you get the Mac version for free, and vice versa. This is the first time I've ever shipped an app with in-app purchase, so I'm pretty curious to see how it lands.

If you've been following my development threads on Twitter, you'll be pleased to know that Broadcasts is now live on the App Store for iPhone, iPad, and Mac. 🎉

It's free, go try it out, and I hope you like the iPad UI as much as I do. Check out its mouse & trackpad support if you can, and let me know what kind of features you'd like to see next! 😬