As you might know if you subscribe to this site's RSS feed (which syndicates to Micro.blog and Twitter), I've been working on a from-scratch rewrite of my iOS app, Per. More interesting to me is the context around how and why I'm doing this rewrite, as well as what I've been learning from the process.
The goal is to spend an hour a day making one small change to the codebase. Not only that, I'm also writing a short blog post each day discussing what I got done. The plan is to have a functionally capable (if somewhat plain) iOS app that replicates Per's current v1.2 functionality by the end of February, with maybe a couple of new features.
I haven't touched Swift or UIKit “in anger” since I shipped the current version of Per on the App Store, over 4 years ago. As you can imagine, lots has changed, so much of the time I'm spending is about learning, trying new things, and forming opinions.
(Opinion: creating views in code rather than with Interface Builder just… speaks to me.)
Perhaps the biggest takeaway is just how much progress I've made with such a relatively small amount of time dedicated to this work per day. Writing about that little bit of progress every day —for anyone to read— has been a motivator (public accountability!) to keep at it, day after day, while also serving as a record of what I did the day before.
As I work, the tasks ahead of me begin to take shape, and the further I progress, the easier it becomes to understand what tomorrow's iteration should be. And —I feel this is key— I also make sure to end my session by noting down what I want to tackle tomorrow. This means that when I sit down, I can open up Xcode and have total clarity on what my goal for the day is.
This is important! I don't waste time spinning my wheels, trying to figure out what to do today, because I already decided that yesterday. Nor do I don't feel overwhelmed by a monumental task ahead of me, because I don't plan anything that will take more than an hour.
This is something I've been applying more generally, and I've come upon a system that's been working well for me that combines a set of text files to pull together a daily journal, weekly retrospectives, project-specific update logs, and [TaskPaper]-formatted to-do lists. I'm nearly done fleshing the system out —mostly, I want to add some automation because it currently involves cutting and pasting things between various text files— and I'll be writing more about it when I do!
All of this comes from having formed a habit of journaling daily for the last two years — capturing the baby steps we take between having an idea and bringing it to reality. I'm excited about this in ways I didn't expect, and I look forward to sharing them with you all!
Interesting reads this week
Elsewhere on the web
I published my first article on DEV.to on how to get
create-react-app and Express to play nicely together on Glitch, complete with a starter project you can remix to get started.