Swift Async Operations at Your Command
Rewriting an old asynchronous Operation (née NSOperation) subclass in Swift for Pippin, learning new things.
(21 minute read)
Overusing Xcode Targets Misses the Mark
Outlining the differences between Xcode project targets and build configurations, and how to properly use each one.
Automatic Devpod Versioning and Deployment with Vrsnr
Describing my process for semantically versioning the Pippin podspec, deploying it to CocoaPods trunk, and committing all the results to git history.
CocoaPods and Custom Build Configurations
My long journey to set a devpod's SWIFT_OPTIMIZATION_LEVEL, from the podspec's pods_target_xcconfig, to Podfile's post_install and finally arriving at the succinct project.
Announcing Pippin Version 2
Highlighting some of the new features in the first major update to Pippin.
An update and first official version of my Swift app development framework.
Log Level: Extreme
A brief survey of log level concepts in the iOS community and elsewhere.
Returning Optionals Versus Throwing Errors in Swift
Deciding between flow control and data model concepts in your app's business logic.
Source Control Management vs. Dependency Management
Which manager has more authority over your project?
Differentiating iOS App Builds
A simple way to manage all your app build variants to test alongside each other on a device.
Validating Crash Reporting in Live iOS Apps
There's only one way to guarantee your iOS crash reporter is working: purposefully crash your app in production.
Snapping Angles and Fuzzy Binary Search
Implementing a variant of the binary search algorithm to find nearest interval angles on the unit circle.
Objective-C Block Syntax
Some ways to make writing Objective-C blocks in Xcode a little easier.
Tracking Xcode Build Setting Changes with xcbs
Announcing a small CLI for persisting final Xcode project build settings in lockfiles.
Xcode Build Setting Inheritance and Precedence
Straightening out the tangled web of relationships in the world of Xcode build configuration.