Swift, expertly baked.
Hi, I'm Ben. I'm an experienced software developer focusing primarily in Swift and iOS. I also spend a bit of time with Ruby and I dabble with Rust.
I run NSScreencast, a tutorial video series teaching developers about Swift and iOS. I've been doing this since 2012.
You might also be interested in my Combine Swift course, where I go in depth on Apple's framework for reactive programming.
Async/Await and the Future of Combine
Swift 5.5 is here with Xcode 13 Beta and with it comes my favorite new addition to Swift: Async/Await.Read more
Combine for Mere Mortals
I’m excited to announce that my Combine Swift Course is now complete and available for purchase.Read more
Managing Version Numbers with Fastlane
In this post I will describe how I use fastlane to manage my iOS and macOS version numbers for my releases.Read more
Exporting a Git History at a Specific Commit
I had a need today to take an existing git repo that has commits, and move the history as of one of those commits into a different git repo.Read more
Sign-in with Apple Profile Information and Security
Sign-in with Apple is a fantastically useful new feature in iOS 13 and macOS Catalina. I knew when it was announced that I would want to support it. I’m currently working on this for NSScreencast and things haven’t gone quite as smooth as I would have expected.Read more
Swift for Good
A few months ago Paul Hudson asked me if I would be interested in contributing to a new book. The idea of the book was this: many authors, each writing a chapter about Swift, with all proceeds going to charity. I quickly accepted and began writing.Read more
Modern AppKit File Permissions
Sandboxing has been a fact of macOS development for quite some time now. With each release of macOS we see an increasing number of features and new security constraints that we must live with.Read more
Xcode Environment Specific Configuration
Almost every app you build with Xcode will need some sort of configuration. Whether it is API Keys for 3rd party SDKs, the URL of your API, feature toggles, or a logging level of verbosity, it’s a good idea to keep this configuration separate from your code.Read more
Side Mirror Gets Dark Mode
Capturing Self with Swift
Swift blocks are an increasingly common way of providing callback type behavior to asynchronous functions.Read more