Image for post
Image for post
Image for post
Image for post

Introducing MiniCast

Listen To Podcasts On Your Apple Watch

Fabian Pimminger
Dec 13, 2017 · 7 min read

So back to my iPod Shuffle. 😐

The step back to my iPod Shuffle was hard. It’s still working, but it isn’t satisfying anymore. So we decided to take matters into our own hands and made it our quest to build the best possible podcast app for Apple Watch. “Possible” because of the limitations Apple enforces via its provided APIs and existing bugs in watchOS we can’t work around.

We Decided Not to Build a Separate Podcast Ecosystem. 🙅‍♂️

After many many many hours of prototyping, building proof-of-concepts and experimenting with watchOS’ (and iOS’) limitations, we found a way to achieve a “companion-ness” that felt right. On iOS, all features of MiniCast are contained in a single Action Extension. If we could have shipped an Action Extension without a container app, we probably would have. But that’s not possible on the App Store. So there is a container app which guides you through the first steps, how to enable the extension and how to transfer the first test episode. The primary interaction happens directly in the Action Extension in your favorite podcast app.

Image for post
Image for post
Three steps, it’s easy.

MiniCast on Apple Watch

The main task of MiniCast happens intentionally on the Apple Watch. It should be the companion to whichever podcast app you’re using on your iPhone.

Image for post
Image for post

Known Issues — until solutions are possible 👷‍

  • Download is slooooooooow 🐌
    We are using URLSession for downloading audio files. URLSession is the recommended API according to Apple to download large files on watchOS. It’s the same API that is available on iOS, macOS or tvOS, but unlike those platforms, watchOS seems to be throttled and slow. An episode of ATP should usually be downloaded in 5–10 minutes, depending on … well, we don’t know. Maybe there are limitations from Apple because of battery and efficiency considerations. Or perhaps it’s because of the Bluetooth connection.
  • Download Progress Is Not Updating ⏳
    Currently, there seems to be an issue with URLSession that sometimes prevents the app delegate from receiving updated download progress information. The download continues in the background, but there is no possibility to display intermediate progress. Should you notice that the download seems to not progress — just wait. It will download in the background, and you should get a notification when it’s finished.
  • We can’t save the progress of playback 💾
    We are using WKAudioFilePlayer as recommended by Apple for playing extended audio content. WKAudioFilePlayer is currently the only way to play audio while the app is in the background, but it has the limitation that MiniCast doesn’t get notified of the playback position. So when you’re out running and using the Workouts to track your activity, we can’t save the progress of the playback. Until there is a way to get the playback position reliably, we’ve disabled this feature. ➡️ In the meantime you can press firmly on the screen to change the playback position manually.
  • There’s no 30-second forward/rewind buttons in “Now Playing” ⏩
    When controlling playback of MiniCast on the Now Playing Screen or through the Workout app, there is no way to change the buttons as there is on iOS. As Marco Arment noted, this has to be addressed by Apple in a watchOS/SDK update.
  • It’s impossible to change the Volume in MiniCast 🔊
    Another limitation of watchOS. 3rd Party developers are not able to control the output volume as Apple does in its apps. You can still switch to the Now Playing screen to change the output volume. During a workout, you can also swipe to the right to control the volume. It’s not an ideal solution, and we hope to get a proper way to control the volume in the future.

Check out MiniCast on the App Store:

Image for post
Image for post

2017–12–13: A Good Day for Podcasts 🎉 …

… because there are not one but two new podcast apps in the story today. Workouts++ also added a podcast feature today, that is entirely different to our solution. You can listen during a workout activity started IN Workouts++. Combining a workout app with podcasts is a nice workaround to the limitations we face with watchOS because workout apps get more leeway regarding what you can do in the background. And they don’t have to resort to WKAudioFilePlayer and can use the better AVAudioPlayer.

HighLVL

HighLVL Blog

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store