Combine comes with a handy retry operator that allows developers to retry an operation that failed. This is most typically used to retry a failed network request. As soon as the network request fails, the retry operator will resubscribe to the DataTaskPublisher, kicking off a new request hoping that the request will succeed this time. […]
Read post
Subscribe to my newsletter and never miss a post
Recent articles
Jump to a random postReclaim disk space by deleting old iOS simulators and Device Support files
Updated on: November 26, 2020After using a MacBook that runs Xcode for a few years it’s likely that your disk space is starting to fill up good. A large part of this disk space can be occupied by Device Support files that are used by Xcode for older iOS versions, or by iOS simulators that are no longer available […]
Read postThrottle network speeds for a specific host in Charles
Published on: May 21, 2020Sometimes you’ll want to test whether your app works properly under poor networking conditions. One way to test this is Apple’s Network Link Conditioner. Unfortunately, this will slow internet speeds for your entire machine to a crawl which can be counterproductive. Especially if you want to throttle your app for a longer period of time. […]
Read postHow to have more than one type of cell in a Collection View
Published on: May 19, 2020Collection views in iOS are awesome. You can use them to build complex custom layouts and since iOS 13 you can use Compositional Layouts to quickly build good looking layouts that would take forever to accomplish on iOS 12 and below. But what if you want to use more than one type of cell in […]
Read postSwift’s type system is (mostly) fantastic. Its tight constraints and flexible generics allow developers to express complicated concepts in an extremely safe manner because the Swift compiler will detect and flag any inconsistencies within the types in your program. While this is great most of the time, there are times where Swift’s strict typing gets […]
Read postGetting started with testing your Combine code
Published on: May 11, 2020A question that often comes up when folks get into learning Combine is “how do I test code that uses Combine?”. In this week’s post, I will briefly explain the basics of testing Combine code. I will assume that you already know the basics of testing and Combine. If you’re just getting started with both […]
Read postNote: After publishing this article, it has been brought to my attention that the folks from @pointfreeco have a very similar solution for the problems I outline in this post. It’s called tagged and implements the same features I cover in this post with several useful extensions. If you like this post and plan to […]
Read postWhy your @Atomic property wrapper doesn’t work for collection types
Published on: April 20, 2020A while ago I implemented my first property wrapper in a code base I work on. I implemented an @Atomic property wrapper to make access to certain properties thread-safe by synchronizing read and write access to these properties using a dispatch queue. There are a ton of examples on the web that explain these property […]
Read postChanging a publisher’s Failure type in Combine
Published on: April 15, 2020One of Combine’s somewhat painful to work with features is its error mechanism. In Combine, publishers have an Output type and a Failure type. The Output represents the values that a publisher can emit, the Failure represents the errors that a publisher can emit. This is really convenient because you know exactly what to expect […]
Read postAn introduction to Big O in Swift
Published on: April 13, 2020Big O notation. It’s a topic that a lot of us have heard about, but most of us don’t intuitively know or understand what it is. If you’re reading this, you’re probably a Swift developer. You might even be a pretty good developer already, or maybe you’re just starting out and Big O was one […]
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 the video course. It contains:
- About ten hours worth of videos and exercises
- Sample projects that use the code shown in the videos.
- FREE access to the Practical Swift Concurrency book
- Free updates for future iOS and Swift versions.
The course is available on Teachable for just $89
Enroll now