Overcast by Marco Arment is, in my opinion, the best-designed and best overall podcast client for iOS.

This is not because of its looks, its excellent features like Voice Boost or Smart Speed, or its no-nonsense playlist features. Rather, it’s the best designed because of its conceptual simplicity, and the features it does not have. Most other podcast clients, including Apple’s own, allow every podcast episode to be marked as played or unplayed, and then to be downloaded or not downloaded. Additionally, most of them allow you to stream a podcast episode, as well as download it before playing it.

Overcast dispenses with that: a podcast is either downloaded, or not downloaded. That’s it. A podcast that is downloaded is either unplayed, or in progress. The section in a podcast’s settings where downloaded podcasts are listed is just called “Unplayed.” (There is now the ability to tell the app not to delete episodes after they have been played–but there is still no explicit played/unplayed feature in the app.)

This makes managing podcasts very easy. You never run into a situation where a podcast you want to listen to is new and unplayed but not yet downloaded–as soon as the podcast is available, it automatically downloads. And if you’re done with a podcast, you simply swipe to delete it. You don’t have to worry about some distinction between marking a podcast played (but not deleting it), deleting it (but not marking it as played), or both deleting a podcast and marking it as played. (When I’m done with a podcast episode in Apple’s podcast app before it’s over, I always both mark it played and delete it.)

Marco has said before that he is working on adding streaming. I hope he can do that without losing the app’s simplicity. For example, just allow people to stream episodes from the “All” area, without adding a played/unplayed feature. And rename the current “Unplayed” area to “Downloaded.”

Overcast’s design simplicity comes with tradeoffs: it’s not a suitable app for particular use cases. I will list two. There are some podcasts that I subscribe to where I want to listen to every single episode. Perhaps sequentially. There are many history podcasts of this sort–for example, Mike Duncan’s “The History of Rome” podcast, which ran from July 2007 through September 2013, is 179 episodes, and you really have to listen to them from the beginning. It would be unwieldy to download all of these, and they might fill up your phone. There are many “history of” podcasts of this sort. Another podcast I listen to is the USCCB’s “Daily Readings” podcast–the Catholic lectionary. This podcast updates once a month, with one episode per day of the month. But I might not want to download thirty-one episodes all at once. For podcasts like this, there are two options. One, don’t listen to those podcasts with Overcast. Use Apple’s built-in Podcast.app, instead, for instance. Or, use Overcast for those podcasts, but keep track of which ones you have listened to some other way and just manually download each episode before you want to listen to it. I just use Podcast.app. It’s not written in the sky with letters of fire that you can only use one podcast app at a time.

The fact that Overcast has a simplified approach to podcasts comes with tradeoffs is no reason to reject its simplified approach.1 A complicated approach comes with tradeoffs, too, though they can be less visible–the amount of time users spend fiddling with settings, mental overhead, and so on. I wish more apps would ditch “essential” features the way Overcast has.

I note the one area where I disagree with Marco’s approach: his lack of support for chapters. It’s not that I disagree with his conclusion that it’s not worth the development time to add a feature requested by a minority of users–though I am one of those users (chapters are useful for navigating the weekly 9 hour, full-text podcast of The Economist). But rather, I don’t think that adding chapter support would necessarily add UI complexity: I would add the list of chapters to where podcast show notes are currently displayed, and, if a podcast has both notes and chapters, display the notes under them. Navigating through chapters would be solely through this interface. I wouldn’t bother with “skip chapter” buttons or automatically scrolling in the list to the currently-playing chapter. Users who don’t care about chapters would never see any of this. However, this might not be enough for some chapter-loving users, so screw them (me). ↩

Podcasts will never be good in Apple’s ecosystem until it implements better syncing. Ideally, podcast syncing should work just like other forms of RSS syncing–that is, with a web app backend.

Long version:

Apple has done a lot to help podcasting. Podcasts existed before Apple, but by integrating podcasts into iTunes, and making it easy to discover and subscribe to podcasts, and listen to them both on computers and iPods, Apple made this new medium more accessible to people who don’t want to fiddle around with specialized software, feeds, and media files.

That’s why it’s unfortunate that Apple has done nothing useful with podcasts for years–first allowing its software to stagnate, then releasing a flawed application that does little to move podcast-listening forward (and due to its flawed execution, even moves it backward).

This piece is right: Apple’s iOS app “Podcasts” might be the worst consumer software Apple ever released–even beating Quicktime 4.0. But it is important to recall that podcasts sucked the way they were, too. Before, you had to manage podcasts in iTunes on a Mac or PC and sync the recordings over. You could manually download individual episodes of subscribed podcasts from iOS but not add new subscriptions or have feeds automatically refresh directly on your device.

One of the many failings of the new app is that it does not entirely move away from this obsolete model–probably because iPod Nanos and Classics still require it. It is still possible to use iTunes to manage individual podcast files and sync them over to your iPhone or iPod. I hope this goes away soon–podcasts should stay in sync between portable devices and iTunes, but they should not sync directly from iTunes to anywhere. iTunes should be just another client application when it comes to podcasts, not some sort of podcast master control system. More on syncing in a bit. (Also, it should be noted that unless you have “Podcasts” installed on your iOS device you can still use podcasts the exact same way as always, manually syncing over files and listening to them in the Music app.)

But the basic premise of the new Podcasts app is correct–podcast should download directly to the phone and not have to sync over from a desktop client. They should be in a separate app that is customized to podcast listening and not part of the music app.

The most obvious flaw with the Podcast app is its lack of execution. It is hard to use, ugly, crashes frequently, and mysteriously re-downloads old episodes. It works well sometimes–but an erratic program is in some ways worse than one that doesn’t work at all, because it can be more frustrating. Third-party apps like Downcast and Instacast are better, more reliable implementations of the idea of standalone podcatchers that run right on an iOS device. They make it easy to add subscriptions, refresh your feeds, add/delete individual episodes, and organize podcasts into playlists. They even offer better playback controls–I am fond of Downcast’s 2 minute and 30 second skip features, and that it can play back podcasts at “3x” speed.

(Side note. Most people understand by now how time-stretching works. This is what allows you to listen to recordings at a higher speed without changing their pitch. This involves more signal processing than just playing back a recording faster, which causes “chipmunking.” But most time-shifting speeds are labelled misleadingly. Apple’s 2x speed is really 1.5x speed; a 100 second original recording will go by in 68 seconds. Downcast’s advertised 3x speed is actually 2x speed. It is not difficult to get accustomed to listening to podcasts at this faster rate, but much faster than double is too difficult to understand. Side side note: Time-shifting works as well as it does because human speech is so redundant. This is what makes it possible to understand someone in a noisy room or talk over a low-bandwidth connection. The more redundancies you can cut out of human speech, the faster you can listen to it, but it becomes more likely that you’ll miss a word or two if, e.g., a dog barks.)

Most of the problems with Podcasts are fixable. It shouldn’t be hard for Apple to make a standalone podcaster for iOS that doesn’t totally suck. But the more basic problem will be harder to fix. This is the lack of synchronization between devices.

When I add a podcast subscription to Podcasts on my iPhone it should automatically show up on my iPad and on Apple TV and in the iTunes application on a Mac or PC. An episode that shows as unplayed should show as unplayed on the others, and the play position should likewise sync between devices. (A file might be downloaded to one device, however, and not the others. For example, an Apple TV might only stream podcasts and not download them all ahead of time. Whether or not a new and unplayed episode downloads to a device, or is only streamed, should be a per-device setting that does not sync.)

As it stands, the only synchronization between devices is play position, and only in the case that the same file is downloaded to different devices. This is exactly how syncing in iBooks works, by the way. There, if you copy a Project Gutenberg ePub (“sideloading”) to both your iPhone and your iPad the page-position will sync between your devices. The file itself will not sync between devices, unless you’ve bought it from the iBookstore. This might be an appropriate behavior for books, but with podcasts, it is more useful if played/unplayed and subscriptions sync between devices.

(Podcast files can also sync between Podcasts and iTunes, just as ePub files and PDFs can sync from iBooks back to iTunes and thence to another iOS device. However, the synchronization I am talking about is not the traditional “device attached by a wire or WiFi to a computer” syncing, but automatic syncing over the Internet. While for large files there is still a place for device-to-device syncing, and even with Android some device management tasks are best done via a computer, most sync tasks should happen over the Internet. For example, iCloud syncing of contacts and calendars works much better than syncing through iTunes ever did.)

A few third-party apps try to implement syncing on their own. Downcast does an ok job of it using iCloud as a back-end. Instacast did the same thing for a while but switched to a custom syncing solution. When it works, this is fine as far as it goes, but it only allows iOS apps to sync with other iOS apps–not iOS to sync with iTunes or an Apple TV.

A simple syncing solution like this is probably not good enough. Each device should not have to individually query each feed to see if a podcast is updated. This is slow, and could cause inconsistencies if feeds are different when different devices check them. Also, synchronizing between apps that manually refresh feeds in this way is extremely difficult.

But this problem has been solved. Syncing RSS readers was a huge pain and largely did not happen until Bloglines, and then Google Reader came along. These are not “dumb” syncing solutions like iCloud–rather, they are applications that run on a server and keep feeds updated. Client apps then synchronize with the server instead of going out to check each individual feed. “The truth is in the cloud,” and client applications simply display it. This is a faster process and less prone to error (though it does require that the back-end web app stay up and running). Before I ever had a smartphone I was able to sync RSS subscriptions between different computers in a way that seems to elude podcasts on Apple devices today.

To sum up, Apple should implement a podcast backend, perhaps accessible directly over the web through iCloud.com, along the lines of Google Reader. Client devices and apps would then stay in sync with each other through this backend and would not individually query feeds themselves. After it fixes this basic problem with its podcasting software, Apple can maybe fix other things: Building an infrastructure for paid subscriptions, removing podcasting from “iTunes” entirely and placing them in a separate app on the desktop, etc.

But until Apple deploys some sort of better podcast syncing back-end, syncing won’t work right. Podcasts won’t sync correctly or at all between different devices, and the user experience will continue to be poor. Apple has an advantage in that many users use Apple client software on their computers, on mobile devices, on iCloud.com, and maybe even the living room with an Apple TV. It is strange that it has not capitalized on this by implementing a podcast solution that allows for seamless synchronization and listening across devices.