A video series exploring advanced topics in the Swift programming language, hosted by @mbrandonw.bsky.social and @stephencelis.com.
Save 30% off today! https://www.pointfree.co/discounts/black-friday-2025

@pointfree.co
A video series exploring advanced topics in the Swift programming language, hosted by @mbrandonw.bsky.social and @stephencelis.com.
Save 30% off today! https://www.pointfree.co/discounts/black-friday-2025
Come learn how to accomplish the seemingly impossible with Swift macros: • Customize macro logic based on static type information • Access static type information from inferred types Both things you cannot typically do by looking purely at the syntax! 🤯
@pointfree.co's series on advanced macro techniques wraps up with part 2: type inference. A great read for Swift macro authors. Check it out at www.pointfree.co/blog/posts/2...
@pointfree.co's series on advanced macro techniques wraps up with part 2: type inference. A great read for Swift macro authors. Check it out at www.pointfree.co/blog/posts/2...
Watch this week’s video to learn how: www.pointfree.co/episodes/ep3...
A benefit of defining your app’s business logic using “Nonisolated Core, Isolated Shell” is that you can take advantage of Swift Testing’s parallelization in ways you can’t when all your code is isolated to the MainActor. This can lead to a test suite that runs 10⨉ faster!
This week we started reaping the benefits of "nonisolated core, isolated shell". We write features a single time, without thinking about isolation, then wrap the feature in the isolation we need. @MainActor for SwiftUI, arbitrary actor for tests!
Learn about what went into designing its concurrency system in our latest video series: www.pointfree.co/episodes/ep3...
The feedback on ComposableArchitecture 2.0 has been pretty reassuring 😁
Advanced Swift macro technique: Accessing inferred types
Macros only see the syntax of Swift code, so it seems impossible to access inferred types. But with a clever trick involving associated type inference, we can achieve the seemingly impossible!
Which error would you prefer to diagnose? The one that is presented on the problematic line, or the one hidden in the guts of expanded macro code?
Part 1 of our Advanced Swift Macros series is out!
You may think macros can only see the stringy syntax of Swift code, but it is possible to tease out some static type information. You can even detect if a type conforms to a protocol!
Come for the real world explanations of isolation in Swift, stay for the deep dives into esoteric underscored attributes like '@_inheritActorContext(always)' 🤣
Learn all the details of the pattern: www.pointfree.co/episodes/ep3...
This week we explore the “Nonisolated Core, Isolated Shell” pattern in Swift using a type that drives the business logic of a SwiftUI app. A nonisolated “Core” type is hosted in an isolated “Store” type, simplifying the complexities one typically encounters in Swift concurrency.
We've got a new series of blog posts coming up:
Advanced techniques in Swift macros
We will show off a few clever tricks for teasing static type information in macros, something that is commonly thought to be impossible!
www.pointfree.co/blog/posts/2...
Modern concurrency tools like nonisolated(nonsending) and Task.immediate got us closer to our goal, but not all the way. So we’re trying a new approach inspired by Gary Bernhardt’s “functional core, imperative shell”:
Nonisolated core, isolated shell.
We tried using two modern Swift concurrency tools to allow us to embrace non-sendability:
• nonisolated(nonsending)
• Task.immediate
They got us close to our goals, but sadly there were still data races. Watch this week's episode to understand why:
www.pointfree.co/episodes/ep3...
Our deep dive into Swift isolation from a few months back may have been a bit abstract for people, so we are bringing things down to earth by designing real world code with isolation in mind from the beginning:
Our code is at an impasse: we want to embrace non-sendability, but async work seems to force us into Sendable. We’ll revisit our approach to this problem from ComposableArchitecture 1.0, see why it's not ideal, and search for a better way.
www.pointfree.co/episodes/ep3...
We do not feel that learning and teaching will ever be pointless. We love learning new topics and we love teaching topics that we have become familiar with. There continues to be an audience for this, and so we will serve them to best we can :)
We’ve started a new series: Designing for Isolation
Learn how designing for isolation from the beginning lets you embrace non-Sendable types, maintain thread safety, and keep asynchrony from infecting every corner of your codebase.
Follow along here: www.pointfree.co/collections/...