Small PRs
Why it’s important to keep PRs as small as you can, and some tips on making PRs easier to review.
Why it’s important to keep PRs as small as you can, and some tips on making PRs easier to review.
Big industry software compared to indie apps. Linking out to a great article by Steph Ango.
What apps do I use?
Getting rid of old Simulators after updating Xcode.
A great new feature from WWDC 2023.
Taking the pressure off and having fun again.
A really nice improvement to Previews, with a macro cleaning up the boilerplate, and parity between SwiftUI and UIKit.
Save yourself time in the long run by spending a bit more time documenting things up front.
A handy little debugging tool for Combine.
How my iPhone and Apple Watch look today.
Why ratings are dumb, and why The Phantom Menace is the best Star Wars prequel.
How projects can evolve over time, especially if you give them the space to do it.
Moving more and more towards this site becoming some sort of pseudo MySpace.
Some notes on what I’ve been working on to get Running Track ready to release.
Lots of apps and websites perform really poorly under slow network conditions, and it’s not okay.
How I use challenges to motivate myself to build habits, and the apps I use to help me along the way.
Using Nitter to indirectly access Twitter.
I’m falling back in love with reading and writing blogs. Twitter’s downfall isn’t all bad.
Some quick keyboard shortcuts for jumping around files.
Accessibility isn’t a “nice to have”. It’s incredibly important. For everyone.
Why I’m reading more blogs and books, and spending less time on social media.
Moving between editors with a handy keyboard shortcut.
Balancing multiple projects, and why I work on such varied things.
How I overcomplicated things when I thought things were already too complicated.
I’ve published a beta version of my marketing site for Running Track.
Approved for beta testing!
How do I know I’m ready to release?
I’m not hanging around with a playground bully.
What goes behind a paywall in a freemium app?
A link to a great guide to the various powerful things you can do with the Simulator, especially with the CLI.
How important is scientific accuracy in a story that isn’t pure fantasy?
I set up a static marketing page really easily.
An overview of my current projects.
Laying out SwiftUI buttons with equal widths is harder than you'd think!
Using GitHub Actions and labels to protect your main branch.
How to write a simple Swift property wrapper, with example code.
SwiftUI has awesome support for sections in lists. What would be multiple delegate methods in UIKit is only a couple of lines in SwiftUI.
Avoid cloning your entire git history in large projects.
How to use new APIs in apps that support old versions of iOS, plus how to remind yourself to update things later.
A repo and script to help me set up a new Mac with minimal effort.
Installing custom Xcode themes with a handy git repo.
Managing state in SwiftUI.
Simplify adding multiple subviews at once with these extensions.
How to find previous commands that you can’t quite remember.
Why tags don’t work for me and why I use them anyway.
How to do different things in your app if it’s running in a UI test.
Avoiding problems that come from bad dummy data.
How to use a built-in property of `UIView` to find views when running UI tests.
Posting new articles using just my iPhone and some automation services.
How to create an empty state for a UITableViewController.
The new Mac mini with M1 chip is great.
Take advantage of localisation tools in iOS.
Taking a break from trying to solve a problem can make it easier to find the answer.
A better way to deal with UITableViewCells.
How to use child UIVControllers.