SwiftUI Backports
I have been writing SwiftUI since day one, and even got lucky enough to start writing a production app in SwiftUI 2.0. Shortly after, I had another SwiftUI project but we had to support iOS 13+. This uncovered a fairly significant issue, SwiftUI 1.0 was missing a lot of key APIs. By popular demand I’m […]
SwiftLog + String Interpolation
Write private string interpolated logs using SwiftLog and OSLog style string interpolation.
The missing SwiftUI packages
If you need to support SwiftUI in iOS 13+ I take you through my own collection and a set of packages I’ve created and used in production over the past year.
Swift Package Collections
We’ll cover the process for building your own Swift Package Collection including signing it with a certificate for added safety.
InfiniteIterator in Swift
A custom iterator that infinitely iterates over the elements of a collection.
Code Review with Git Worktree
You’re in the middle of a refactoring session, code review, or otherwise unable to commit and you need to checkout another branch? Use a Git Worktree to leave your current changes undisturbed.
Working with IndexPaths
Read about how I extend IndexPath’s to provide querying, sorting and filtering features. Great for building custom UICollectionViewLayout’s and more.
Scheduling Services
A micro-post about a micro-framework. Schedule (possibly repeating) events for some time in the future, along with restoration support. An NSNotification-based scheduling service in Swift.
Responder Chain Controller
A zero-code-required, plug-in approach to ‘Next’ button handling in iOS, including Interface Builder support.
Type-Safe UserDefaults API
A type-safe UserDefaults API that derives inspiration from Notification.Name.
Clean dynamic font API in Swift
A clean and simple API for dynamically loading fonts in Swift.
Protocols & Mutability in Swift
Swift protocols allow us to make mutable variants of our protocols that restrict API consumers, without restricting internal APIs.
A Lexer in Swift
For beginners, I’ll discuss the various components of a Lexer as well as its responsibilities. I’ll also briefly discuss performance and error handling.
Advanced Gesture Recognisers
A UIPanGestureRecognizer to create a marquee selection tool that you can use in any UIView.