Blog #dev

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.

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.

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)

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.