Blog
Introducing Peak for Apple Watch
On this day one year ago, I announced Peak, an app that lets make your personal fitness dashboard and keep track of your fitness with a range of…
Building Peak
A Look Behind the Scenes
This post goes into the technical details of how Peak was made. You can also read the story behind the app and download it on the App Store. The Stack…
Introducing Peak
Your Personal Fitness Dashboard
I’m excited today to announce my next app: Peak! Peak is an app that lets you build your personal fitness dashboard. It includes a whole bunch of…
Solving Advent of Code 2022 in Swift
It doesn’t feel that long ago that I was writing my summary for last year’s Advent of Code, and yet, here we are again already. For those unfamiliar…
Adventures in Orienting Views in SwiftUI
I like to break down my work on side projects into two phases. Once I’ve decided what features I want to focus on for the next few weeks, first I’ll…
Adventures in Orienting Images on iOS
A great thing about working with software is that despite it being a relatively young industry, there’s a staggering number of near-perfect…
Solving Advent of Code 2021 in Swift
Every year since 2018, I’ve been taking part in Advent of Code. For those unfamiliar, it's an advent calendar where every day from December 1 to…
Recreating the macOS Genie Effect
A few weeks ago I released Pause, a Mac app that I made to remind myself to take breaks periodically. If you’ve used the app, you know there just isn…
Introducing Pause
A macOS app that reminds you to rest
If you work in tech, sitting at a desk typing away at a computer all day, you’re aware of the looming spectre of RSI. I’m also personally extremely…
Wrangling Time
A Brief Explainer/Rant About Date Math
The overarching theme of what I write about on this website is things that I used to once hate, then understood, and now continue to hate but for…
Swiftʼs Collection Types
Sequence, Collection, Array, and everything in between.
A while ago, Paul Hudson posted a poll on Twitter, asking people what topic they found most difficult when they’d started learning Swift. An…
How the SwiftUI DSL Works
Result builders, explained.
I dunno about you but I distinctly remember where I was and what I was doing when SwiftUI was announced. My first reaction upon seeing Craig Federighi…
Dynamic Wallpapers in macOS Catalina
To go with dark mode, macOS Mojave introduced a feature called “dynamic wallpapers”. Once enabled, a dynamic wallpaper would cycle between a number of…
Updating UI for iPhone X
A practical guide to adopting iOS 11’s safe area API.
The safe area API introduced at WWDC 2017 seemed at the time like a lot of work to accommodate the status bar, so I happily ignored it right until the…