rewrite status: June 2019
Hello, good people interested in rewrite!
As I suggested in the first of these project updates, the last few months were primarily focused on clearing the deck for this project. As many of you know, I concluded my New Rustacean podcast project in late May. That effort took a massive amount of my time every month! New Rustacean also existed because of rewrite: I started learning Rust, and then started a podcast to help myself keep learning Rust, explicitly for this project.
Since I wrapped that up, I took a two-week long vacation the first two weeks of June. Being a nerd, I realized how easy it would be to let that be just more programming time, so I very carefully did not take a laptop with me. I did however, take a notebook with me, and I did a bunch of what I like to call “thinking-into-paper” about this project there.

I also did a bunch of reading and note-taking with my current note-taking system there, and I was reminded of exactly the pain points I am setting out to solve. I was particularly reminded that on iOS, there are a few tools which focus on managing papers… but there are basically no good tools for managing a reference library. None! Not even the big players in the space do it! It’s veritably barren. So I’m starting there. One reason is that I want to actually ship something within the next year, to start iterating and getting feedback on what works well and what doesn’t. Another is that I want to make this part of my own workflow less painful.
Another huge thing happened while I was on vacation: Apple announced SwiftUI at WWDC. I’d been hoping that their rumored “declarative UI framework would make an appearance this year, not least because my limited experience with UIKit and AppKit so far felt like a huge step back from the component-driven model I’ve become used to in modern web development. In general, no one writes document.createElement('div');
in client-side JS anymore, and that’s a good thing. Writing the equivalent with UITableCell
didn’t feel any better. SwiftUI, early as it is, was a massive relief in terms of being able to write apps in the style I want to write them: compositional UIs with unidirectional data flow.
I’ve thus spent a good chunk of my side project time since getting back from vacation working through all the SwiftUI tutorials and trying to internalize a bunch of the pieces of Swift I don’t know yet. (I started learning Swift around the same time I started learning Rust, back in 2015, but ended up diving far deeper and more consistently on Rust than Swift. Now I’m making up for lost time!
Over the next month, I expect to start actually building the first drafts of the user interface and libraries for the reference management side of this. I’ll also be spending a fair bit of time with the competition, because I’d really like to avoid making any obvious mistakes!
I get another week off over the week of the 4th of July, and I plan to spend a decent bit of that time working on this. I’m pretty excited! The net of that is that there’s a good chance that when you get another update like this in July or August, it may come with a screenshot of work-in-progress user interface for reference management. I can’t promise that—I’m also doing a bunch of other things in the next few months, including teaching Sunday School four weeks in August and September and preparing for a conference talk in October—but I hope to be making steady progress on this along the way.
That’s it for June! More in a month or two!