Podcast chapters is a true niche app. It is a Mac app for (you guessed it) editing chapter information - and a handful of other pieces of information such as artwork, title and so on - for podcasts. The first version came out almost two years ago, and as far as I can tell it remains not only the only purpose-built graphical app for the job, but one of extremely few apps of any kind prodviding chapter editing for mp3 files.
Having edited a fair few podcasts the appeal of a nice app for this job was immediate, and if anything it felt a bit too cheap. I want, like and use this app after all, so I want it to continue being updated. Version 1.0 was quickly followed by a 1.1, then 1.2 arrived eight months later. Then all was oh so quiet. Considering just how niche Podcast chapters is, I was not surprised by this, and the app kept doing its job well. However, there were some low-hanging fruit-type things which nagged me. I sent a thank you-mail and included my suggestions. I received a nice reply which included good reasons why the app was not currently being updated.
So I offered to help make the changes.
It felt simple. I want a great app like this, I want to support the work already made, there was no pressure, plenty to gain, and if I got nothing done nobody would have lost anything. Thomas who makes the app is a great guy, so after some back and forth working out the details, I found myself with a truly fun and useful side project.
The main challenge was the march of time. The whole app was written in Swift 2, and as I started to dig in Swift 4 was on the verge of release. Swift 3 was a rather dramatic step, so there were a lot of things to go through and fix semi-manually. Much of it was clicking on icons and choosing the suggested solution, but quite a bit required minor rewrites which gave me my first serious experience with Swift. I think I like the language quite a bit, and just like when I learned Objective-C, getting into the thinking of the frameworks was at least as big a thing as the language itself.
The march of time was not all bad though. The old version had used a third-party library for handling JSON, work which Swift 4 made trivial to handle without any third-party code. This not only saved a library, but the whole infrastructure of Cocoapods. Which was great in itself, because I am not even sure I got all that to work correctly at any point.
Podcast chapters used one more library: ID3Edit. It turned out to be another victim of the march of Swift. Because it too was written in Swift 2, I was not even allowed to build Podcast chapters with it. The developer of the library felt burned enough by this that he has reverted the whole project back to Objective-C and plans to stay there. I do not feel it is the right way to go, but I have to say I can relate and understand the decision. In any case, building the Objective-C version and copying it into the project turned out to work perfectly. I wonder what I would have done had that not been the case. Possibly learned more Swift by contributing to the library. Not a bad next project, really.
Now entertain us
Podcast chapters 1.3 was released today. It runs shiny new Swift 4, has drag and drop of images and also a bunch of fixes and additions made by Thomas. It feels great to be able to help with a useful app. I have a few more ideas I might try to add moving forward. But part of what makes this project so good is that there is no pressure at all, so I make no public plans or promises.
(Also feels rather weird and wonderful to think a bunch of people I listen to all the time will use my code 😊.)