Sasquatch Studio
Apps
Blog
Blog
Discussions on tech, coding, design, and more.
All Posts
#essays
#dev
#updates
Is MapKit Reverse Geocoding Ready?
Jul 19, 2026
#dev
Apple deprecated the old way of turning a coordinate into a place name over a year ago. Its replacement isn’t ready to take over yet.
Two Models, One Context
Jul 11, 2026
#dev
Some of your data deserves to sync; some of it belongs to one device. Here’s how I keep one front for the two sets of data: a single managed object context over two Core Data stores.
PowerTimer Is Back
Jul 8, 2026
#updates
After three quiet years, PowerTimer returns with Version 2026 — a refreshed design, ten languages, iCloud sync, and a friendlier one-time purchase.
Rotation Coordinator Doesn’t Work in a Locked Capture Extension
Jun 11, 2026
#dev
Apple’s rotation coordinator silently reports nothing inside a locked capture extension. Here’s a workaround that reads the motion sensors instead.
WorkoutKit: Over-Promised, Under-Delivered
May 14, 2026
#dev
I built an app with Apple’s Workout Kit. Here’s what I liked, what I learned, and what I wish could change.
Kodist Is Leaving Open Beta
Apr 8, 2026
#updates
Kodist has found its niche, so it’s graduating from open beta: the tip jar is out, and a one-time purchase unlocks everything — free for everyone who has ever tipped.
AI and the Raised Ceiling for Indie Devs
Mar 20, 2026
#essays
AI didn’t replace the craft of building PlantPal’s plant library — it just virtually removed the limit on what I could ship alone.
Someday Is Now a Free App
Mar 4, 2026
#updates
Someday is joining my fleet of free apps. I’m excited to have it updated for iOS 26, and localized for more audience in 10+ languages.
The New To-Do List Experience in PlantPal
Feb 11, 2026
#updates
Some updates on how I plan to take PlantPal to the next level — starting with a much better to-do list for gardening.
You Need a Guinea Pig
Jan 18, 2026
#essays
Ship an app you’re allowed to break. It’s how distractions become learning and creative survival.
Localization Is a Systems Problem
Jan 6, 2026
#dev
My first lesson about LLM–based app localization — it’s nothing to do with LLM at all. You should design your apps and delegate as much as possible. It’s the boring but important part of the work.
App Discovery: AI Localizer for XCStrings
Dec 17, 2025
#dev
I tried a few apps to localize my apps. Here’s what I found that works for Xcode Strings Catalog files (i.e. XCStrings)
Introducing Woolly, a Gift Card Tracker
Dec 9, 2025
#updates
Meet my new app: a free, serverless tracker for your gift cards and account balances. May they never expire!
Saving Adaptive HDR Photos
Jun 30, 2025
#dev
Produce and save edited photos in Adaptive HDR so that they look good on all SDR and HDR displays
Initial Thoughts on Liquid Glass
Jun 14, 2025
#dev
A brief discussion on Liquid Glass, and why its criticism in the 1st week is unjustified.
Reading from, and Saving Workout Effort to, HealthKit
Apr 28, 2025
#dev
Experiments with the undocumented way to read and write HealthKit workout effort
Building a Workout App for Apple Watch
Mar 2, 2025
#dev
Learnings from building my first Apple Watch app for Liiift, using HealthKit’s mirrored workout sessions to keep iPhone and Watch in sync.
Building Great Looker User Experience with Labels
Dec 24, 2023
#dev
Tips on view labels, group labels, and group item labels in Looker, so reports read naturally and the sidebar stays tidy.
Suggesting Related Posts with Ruby and Jekyll
Jul 4, 2023
#dev
A Jekyll plug-in that suggests related posts at build time by scoring text similarity — no server required, and it works with my Chinese posts too.
Building Tag Layout in UIKit
Feb 7, 2023
#dev
How I built a multi-line tag list for PlantPal’s info cards in UIKit, without Auto Layout or third-party frameworks.
Setting Up InfluxDB and Telegraf in Docker
Jan 18, 2022
#dev
A walkthrough for running InfluxDB and Telegraf in Docker, with configs and database files persisted outside the containers.
UIApplication Key Window Replacement
Nov 9, 2021
#dev
Finding the active window in Split Screen on iPad: the deprecated way still works best, and two popular alternatives don’t.
Enumerated Custom Errors in R
Sep 4, 2020
#dev
Design your own enumerated error classes in R to show helpful, structured error messages in complex Shiny apps.
Published and NSManaged
Jul 13, 2020
#dev
SwiftUI views stop updating when published variables live on Core Data objects. What’s broken, why, and the workaround.
Drawing Canada Maps in R
Jan 7, 2020
#dev
Draw maps of Canada in R with freely available map data — all provinces and territories, zoomed-in regions, and your own data points on top.
Supporting the Triple Cameras on 11 Pro
Sep 21, 2019
#dev
How HRZN gained ultra wide and telephoto support by letting the iPhone’s cameras work together — and a reminder to actually read the documentation.