Explore the wonderful world of advanced Swift.

Point-Free is a video series exploring advanced topics in the Swift programming language, hosted by industry experts, Brandon and Stephen.

Trusted by teams

What to expect

New content regularly

We dissect some of the most important and interesting topics in Swift programming frequently, and deliver them straight to your inbox.

Wide variety of topics

We cover both abstract ideas and practical concepts you can start using in your code base immediately.

Playground downloads

Download a fully-functioning Swift playground from the episode so you can experiment with the concepts discussed.

Video transcripts

We transcribe each video by hand so you can search and reference easily. Click on a timestamp to jump directly to that point in the video.

Free episodes

See all →
Episode 308 • Dec 18, 2024

We close out our tour of the Sharing library by showing how easy it is to test code that uses the @Shared property wrapper without worrying about values bleeding between tests and the simulator. And we’ll take the “in-memory” shared key for a spin by building one final feature.

Free 28 min
Episode 307 • Dec 16, 2024

@Shared is far more than a glorified version of @AppStorage: it can be customized with additional persistence strategies, including the file storage strategy that comes with the library, which persists far more complex data than user defaults. We will create a complex, new feature that is powered by the file system.

Free 39 min
Episode 306 • Dec 9, 2024

We show how the @Shared property wrapper, unlike @AppStorage, can be used anywhere, not just SwiftUI views. And we show how @Shared has some extra bells and whistles that make it easier to write maintainable Xcode previews and avoid potential bugs around “string-ly” typed keys and default values.

Free 26 min

All episodes

See all →
Episode 309 • Jan 13, 2025

Persisting app state to user defaults or a JSON file is simple and convenient, but it starts to break down when you need to present this data in more complex ways, and this is where SQLite really shines. Let’s get a handle on the problem with some state that is currently persisted to a JSON file, and let’s see how SQLite fixes it.

Subscriber-only 45 min
Episode 308 • Dec 18, 2024

We close out our tour of the Sharing library by showing how easy it is to test code that uses the @Shared property wrapper without worrying about values bleeding between tests and the simulator. And we’ll take the “in-memory” shared key for a spin by building one final feature.

Free 28 min
Episode 307 • Dec 16, 2024

@Shared is far more than a glorified version of @AppStorage: it can be customized with additional persistence strategies, including the file storage strategy that comes with the library, which persists far more complex data than user defaults. We will create a complex, new feature that is powered by the file system.

Free 39 min

Collections

See all →

SwiftUI

Collection

SwiftUI is Apple’s declarative successor to UIKit and AppKit, and provides a wonderful set of tools for building applications quickly and effectively. It also provides a wonderful opportunity to explore problems around architecture and composition.

37 episodes 23 hr 50 min

Back to basics

Collection

The Swift language has grown over the years and become more and more powerful. It now boosts a comprehensive static type system (generics, existentials…), a suite of concurrency tools (actors, dynamic isolation…), and most recently even ownership capabilities (consuming, borrowing, non-copyable types…). In “Back to basics” we will focus on just one part of the language in order to uncover the deep theory behind that feature as well as provide concrete advice for writing real-world code.

8 episodes 4 hr 46 min

Composable Architecture

Collection

Architecture is a tough problem and there’s no shortage of articles, videos and open source projects attempting to solve the problem once and for all. In this collection we systematically develop an architecture from first principles, with an eye on building something that is composable, modular, testable, and more.

92 episodes 58 hr 30 min

A better way to create SwiftUI bindings

If you have ever created a binding using the get:set: initializer, you may want to reconsider. Doing so can hurt SwiftUI’s ability to animate your view. Luckily there is a better way. You can leverage @dynamicMemberLookup and subscripts to derive new bindings in a way that allows SwiftUI to propertly track where the binding came from.

Watch 7 min

Are mocks bad?

You may have heard that “mocks are bad” and that they cause you to test the mock rather than your application’s actual feature. That doesn’t have to be the case. It is totally fine to mock a dependency to a system that you do not control, such as the file system. You do not need to test that saving and loading with that dependency works, but you should test how your application behaves when it tries to load or save data. For example, if loading data throws an error, do you show an alert to the user?

Watch 2 min

The “Inert” SwiftUI view pattern

There is a common pattern in the SwiftUI community of defining a logicless, inert view that just holds onto plain data. This makes it easy to preview how the UI looks, but because it does not exercise any of the behavior of the view it is merely a mirage. Learn why you might not want to adopt these “inert” views in your codebase.

Watch 4 min

What people are saying

Ferran Pujol Camins
@ferranpujolca

Through videos you constantly introduce ideas and patterns only to later reformulate them into more general ideas. This is awesome and helped me understand a lot of programming concepts. Well done!

Frank Courville
@Frankacy

My new favourite morning routine is feeding 👶🏻 while watching @pointfreeco

Boris Bielik
@h3sperian

This is surely one of the best shows for Swift folks out there! The content and explanation is at a really high bar!

Arjun Nayini
@anayini

We have this thing called WWTV at #PlanGrid where we mostly just listen to @mbrandonw and @stephencelis talk about functions.

Mr. Hartwell
@sergeyfitis

Honestly, I'm an Android developer, I write applications in Kotlin. My colleague iOS developer told me about your course. And I liked it so I decided to buy a subscription.

David Piper
@HeyDaveTheDev

Just finished the mini-series on enum properties by @pointfreeco! They pointed out what’s missing from enums in Swift and used SwiftSyntax to generate code to add the missing parts. Thanks for your work @stephencelis and @mbrandonw! #pointfree

Prakash Rajendran
@dearprakash

Thanks @mbrandonw @stephencelis for the very pedagogical series with @pointfreeco Excited and looking forward to learn from the series

Rui Peres
@peres

Due to the amount of discussions that reference @pointfreeco, we added their logo as an emoji in our slack.

Christina Lee
@RunChristinaRun

I listened to the first two episodes of @pointfreeco this weekend and it was the best presentation of FP fundamentals I've seen. Very thoughtful layout and progression of the material and motivations behind each introduced concept. Looking forward to watching the rest!

Get started with our free plan

Our free plan includes 1 subscriber-only episode of your choice, access to 68 free episodes with transcripts and code samples, and weekly updates from our newsletter.

View plans and pricing