01 Field notes

Thinking,
made visible.

Swift, architecture, Apple-platform internals, and the small product decisions that make software feel considered.

Follow via RSS

02 Latest essay

4 min read

CoreData With CloudKit

Integrating your codebase with CloudKit is actually a tricky thing for me, since the first impression CloudKit gave me several years ago wasn’t good. In recent days, I had to cope with this bad feeling …

Read essay
  1. 03 How to find a Mac app's BundleID Every iOS and macOS app stores its configuration in a plist file, and the app’s BundleID lives in there alongside the version number. Read the …
  2. 04 How the .af and .rx extensions work in Alamofire and RxSwift Another lightweight post today — this time about how the .af and .rx namespacing extensions in Alamofire and RxSwift actually work. Anyone who’s …
  3. 05 Method dispatch in Swift What is method dispatch? Method dispatch is the process by which the program, at runtime, decides which concrete instruction to use when a particular …
  4. 06 Protocol Extension Protocol is the most important building block in the Swift ecosystem — the scaffolding that holds everything else together. A few of the obvious wins …
  5. 07 A few notes on LetsMove When you download a Mac app from the web, it usually ends up in your Downloads folder. But some apps really need to live in /Applications to work …
  6. 08 XPC Services About XPC I’ve been doing some work in this area lately, so here are my notes — a quick recap of what XPC is and how it works. XPC is the …
  7. 09 Codable && Tuple While learning Swift, I keep finding interesting things. Codable is one of them. Today, I defined a model with a tuple type, then Xcode gave me an …
  8. 10 How to generate a NSViewController without a Nib? Recently, I created all the ViewControllers through the storyboard or the Nib (for views). Today, when I created a demo project without any Nib file, …
  9. 11 A Swift quiz A puzzle showed up on Twitter the other day. It exercises overload resolution and type(of:) together. This is just a note for myself; I’ll write …