November 24, 2018 · Swift Publisher Mac

Introducing Publisher

Way back nearly a year ago, December 16th I started work on a blog publishing app. There are several approaches to this on the Mac, but I felt the need to build another.

Competition

Apps like MarsEdit 4 and Blogo offer the complete package. You can write, edit, publish, and then manage the articles on your blogs. There are also text editors like Byword that allow you to publish to blogs when you're finished writing. There are also apps from companies like Ghost and Wordpress who make apps themselves, but these appear to be electron shells and defeat part of the reason anyone would want a desktop app for their blog. There are even others who were either shut down or acquired and are gone forever.

My plan has a few advantages over these.

I think my app and I has a shot in participating in an important space: internet publishing.

Initial Plans

Picture of my initial notes on the project

This is how it started. The primary motivation for the app was to provide an offline backup of all my posts that could easily be published somewhere else. Some blogs have a way to export their contents, some blogs have a way to import contents, but the format one blog can export doesn't always match the formats the new blog can import. Even when import does work, there's often glitches. My own blog moved from tumblr onto various blog engines to its current home on Ghost. I've spent quite some time fixing errors created by this mis-match. Publisher will be an app that solved this and make sure this worked nicely on supported blogs.

Progress so Far

Screenshot of an early version of Publisher

This is how the initial UI looked as I planned. This did not consider some of the features I planned and came before Mojave was announced with Dark Mode. Mojave's dark colors were way nicer than these, so I was happy to adopt them once they arrived.

Time passed and I made good progress on a working core of an app. Since I'm unfortunately not independently wealthy, I needed to continue my regular client work throughout the year as well. Even so, since March my app has been in a usable state. Every post on this site since then was published using my app, often each post published would spawn a small list of bugs to fix and features to add or adjust.

Development-wise, this might be some of my best work. As of right now, the app uses a framework I created which is 100% tested to handle the Mobiledoc format and the rest of the app is 84.7% tested (though that would be slightly higher if there wasn't a bug in how coverage was calculated in Xcode). Code coverage isn't the only way to measure quality and can often be a problematic way, especially on a team that is not enjoying their work, but for me it means less bugs in the future (including regressions of the bugs I've already found and fixed), confidence in releasing on new versions of Mac OS and Swift, and street cred when people talk about testing.

Screenshot of the app as of publishing

This is how the app looks now. It's not quite ready for you to enjoy, but it's getting there. Be sure to check back here for updates as we get closer to the release!