What’s my workflow for writing and publishing articles?
All of the articles on this site are written in Markdown using the app iA Writer, on either the Mac or iPad, and are then transformed to HTML (along with the rest of the site) using the Publish static site generator.
In general, my overall process for coming up with ideas and ultimately writing about them looks like this:
- As I’m writing Swift code (which I do every day), for example for one of my open source projects, for a client, or for a tool or app that I’m building myself — I take note whenever I encounter a bug or problem that I find particularly interesting.
- I then occasionally select one of those problems and prototype various solutions for it. Once I’ve found a solution that I’m happy with, I implement it within at least one real project before adding it to my list of potential topics to write about.
- Often, a given topic will remain on that list for a while (sometimes for more than a year) before I actually write about it. That’s to give me enough time to thoroughly explore and understand each topic that I’ll eventually write about, which I think is essential in order to maintain a high level of quality.
- Then, every Sunday, I pick a topic from that list and write about it.
Before writing the actual text for an article, I use Swift Playgrounds (again, either on the Mac or the iPad) to come up with a good set of sample code that shows various implementations of the topic that I’m about to cover. So although all of my articles are originally based on real projects, I always want to come up with original stand-alone code samples for them.
Then, once I’m done with the writing, I most often use the iPad app PDF Viewer to edit the article. I do that by using the Apple Pencil to markup the text with things that I’d like to change, to highlight typos, and to occasionally remove paragraphs that I find redundant.
Once I’ve added the article’s finished Markdown file to the site’s project, I open up the project in Xcode and run it on a
localhost server in order to make sure that everything looks great, and to read the article one final time. After that, I use the
publish deploy command to publish the article, and use tools like Twitter to tell people about it.