With Swift 6, we have an entirely new version of the language that has all kinds of data race protections built-in. Most of these protections were around with Swift 5 in one way or another and in Swift 6 they’ve refined, updated, improved, and expanded these features, making them mandatory. So in Swift 5 you […]
Read post
Subscribe to my newsletter and never miss a post
Recent articles
Jump to a random postMocking a network connection in your Swift Tests
Published on: December 12, 2024Unit tests should be as free of external dependencies as possible. This means that you want to have full control over everything that happens in your tests. For example, if you’re working with a database, you want the database to be empty or in some predefined state before your test starts. You operate on the […]
Read postTesting completion handler based code in Swift Testing
Published on: December 4, 2024Swift’s new modern testing framework is entirely driven by asynchronous code. This means that all of our test functions are async and that we have to make sure that we perform all of our assertions “synchronously”. This also means that completion handler-based code is not as straightforward to test as code that leverages structured concurrency. […]
Read postTesting requirements with #require in Swift Testing
Published on: November 28, 2024In a previous post, I wrote about using the #expect macro to ensure that certain assertions you want to make about your code are true. We looked at testing boolean conditions as well as errors. In this post, I would like to take a look at a macro that goes hand-in-hand with #expect and that […]
Read postI don’t think I’ve ever heard of a testing library that doesn’t have some mechanism to test assertions. An assertion in the context of testing is essentially an assumption that you have about your code that you want to ensure is correct. For example, if I were to write a function that’s supposed to add […]
Read postImproving test coverage with parameterized tests in Swift testing
Published on: October 31, 2024When you subscribe to the practice of test-driven development or just writing tests in general you’ll typically find that you’re going to be writing lots and lots of tests for pretty much everything in your codebase. This includes testing that varying inputs on the same function or on the same object result in expected behavior. […]
Read postSwift Testing basics explained
Published on: October 23, 2024Swift testing is Apple’s framework for running unit tests in a modern and more elegant way than it was with XCTest, which came before it. This post is the first one in a series of posts that will help you start using Swift Testing in your projects. In this post, we’ll take a look at […]
Read postTesting completion handler APIs with Swift Testing
Published on: October 16, 2024The Swift testing framework is an incredibly useful tool that allows us to write more expressive tests with convenient and modern APIs. This is my first post about Swift Testing, and I’m mainly writing it because I wanted to write about something that I encountered not too long ago when I tried to use Swift […]
Read postWhat is dependency injection in Swift?
Published on: October 11, 2024Code has dependencies. It’s something that I consider universally true in one way or another. Sometimes these dependencies are third party dependencies while other times you’ll have objects that depend on other objects or functionality to function. Even when you write a function that should be called with a simple input like a number, that’s […]
Read postWith iOS 18, we have the possibility to create mesh gradients. Mesh gradients are a really nice way to create very cool UI effects. In this post, we’re going to explore exactly what mesh gradients are, how we can use them, and how we can even animate them to look really cool. We’ll start off […]
Read postExpand your learning with my books

Learn everything you need to know about Swift Concurrency and how you can use it in your projects with Practical Swift Concurrency. It contains:
- Eleven chapters worth of content.
- Sample projects that use the code shown in the chapters.
- Free updates for future iOS versions.
The book is available as a digital download for just $39.99!
Learn more