Point-Free
banner
pointfree.co
Point-Free
@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
Pinned
We compare SwiftData’s new features with SQLiteData, starting with a domain modeling exercise. We will rewrite the Trips @‌Model classes into simple @‌Table structs, and we will explore how the Draft type can power a single form for both creating and updating trips: www.pointfree.co/episodes/ep3...
Earlier this week we held our first Point-Free Office Hour. We answered questions from our viewers and gave a tiny preview of a new library we are working on.

Check it out:
www.pointfree.co/office-hours...
Our First Ever Office Hour!
Our first ever live office hour! We answered a variety of questions from our members, including remarks on the sustainability of Point-Free, our work to add new features to the Swift compiler, and we…
www.pointfree.co
September 18, 2026 at 2:29 PM
Our first ever office hours for Point-Free Max members is starting now!

www.pointfree.co/office-hours
Point-Free Office Hours
Periodic livestreams exclusively for Point-Free Max members.
www.pointfree.co
September 16, 2026 at 5:00 PM
It's our tiniest library ever, and it solves the last remaining problem with the @State macro, in our opinion.

Use @LazyState to allow for dynamic initialization of state in your views:
www.pointfree.co/blog/posts/2...
LazyState 1.0: Now available to everyone
LazyState has graduated from Point-Free Beta Previews and is now available to everyone as version 1.0. It brings SwiftUI’s new lazy state initialization to state that must be created dynamically from…
www.pointfree.co
September 15, 2026 at 2:25 PM
For the past 10 weeks we have analyzed many of the new SwiftUI and SwiftData features announced at WWDC26. We uncovered a lot of things that haven't gotten widespread attention in the community, and now the whole series is free!

👉 www.pointfree.co/blog/posts/2...
September 10, 2026 at 3:50 PM
Last month we shipped 40 releases across 16 of our open source libraries, including new JSON and DB collation tools, preview traits in Dependencies, and the completion of a years-long package rename. Here’s a recap of everything that happened.
www.pointfree.co/blog/posts/2...
Last Month in Point-Free: August
Last month we shipped 40 releases across 16 of our open source libraries, including new JSON and collation tools for our modern persistence libraries, the return of preview traits in Dependencies, and...
www.pointfree.co
September 4, 2026 at 7:02 PM
We wrapped up our Swift isolation series a few weeks back, but our members have had some nice things to share since then... 😊

www.pointfree.co/collections/...
September 3, 2026 at 6:00 PM
Compare to SwiftUI’s LazyState (wrapped in a macro by us), where we get to drop all the Optional dancing, potentially buggy “onAppear” logic, and generally write things as succinctly as possible:
September 2, 2026 at 9:40 PM
The pattern Apple has established for influencing a view’s @‌State from a parent:

1. Make the state private and Optional
2. Populate the state in onAppear

This means extra boilerplate, imprecise domains, optional coalescing and chaining dances, and potential lifecycle bugs!
September 2, 2026 at 5:42 PM
Xcode 27 beta 6 quietly changed how SwiftData's sectioning APIs work. Did you notice?

The @Query macro must now explicitly use the SectionedResults type, which means it is no longer possible to dynamically add/remove sectioning from a view.
September 1, 2026 at 6:39 PM
There was an unexpected hubbub last week when we said lazy @‌State only works for private variables.

Well, we're back at it. We feel @‌State still doesn't adequately solve the problem of dynamically initialized state, so we are introducing @‌LazyState:

www.pointfree.co/blog/posts/2...
Beta Preview: LazyState
Announcing the newest addition to Point-Free Beta Previews: LazyState, a library that picks up where WWDC’s new @State macro left off by allowing state in SwiftUI views to be initialized lazily and…
www.pointfree.co
September 1, 2026 at 5:24 PM
We explore the problems not solved by the new @‌State macro and explain why we think they should be solved. To close this gap we introduce a new @‌LazyState macro, which allows you to delay initialization of your state, all without introducing any new API!

👉 www.pointfree.co/episodes/ep3...
August 31, 2026 at 3:34 PM
You've probably heard by now that SwiftUI has a fancy @‌State macro that lazily creates state, fixing a longstanding issue in the framework.

But what you may not know is that the laziness only kicks in for **private** state.

Get all the details here:
www.pointfree.co/episodes/ep3...
August 27, 2026 at 7:08 PM
The new @‌State macro uses a type called LazyState under the hood, and this type has secretly existed in SwiftUI for years!

We lift the veil on this type in this week's episode to see how Apple was able to back port @‌State to iOS 17:
www.pointfree.co/episodes/ep3...
August 26, 2026 at 2:08 PM
The new @‌State macro fixes a long-standing bug in SwiftUI, that of objects being needlessly allocated. But have you looked at the expanded macro code yet? Looks like gobbledygook!

We show that all of this code is essentially just 3 lines of code:
👉 www.pointfree.co/episodes/ep3...
August 25, 2026 at 2:59 PM
Reposted by Point-Free
I am quite pleased to see @pointfree.co doing proposal after proposal
August 22, 2026 at 9:55 AM
WWDC26 brought the new @‌State macro to succeed the property wrapper, but what’s different about the macro, and how does it work? We’ll pick apart the cryptic macro expansions to see something quite simple at its core.

www.pointfree.co/episodes/ep3...
August 24, 2026 at 3:28 PM
We built a geofence for our Trips app that turns red if it doesn’t contain the trip. Impressive stuff, but complex enough to deserve some tests!

We show how to exhaustively test it like a value type, so a missed assertion is a test failure with a nice message. 🤯
August 20, 2026 at 4:25 PM
Many took SwiftData queries being limited to SwiftUI views as proof that everything belonged in views. But appleOS 27 now allows queries to live outside views, which is something SQLiteData has supported since day one and back-deploys to iOS 16!
www.pointfree.co/episodes/ep3...
August 19, 2026 at 8:22 PM
We always felt SwiftData queries were needlessly constrained by having to live directly in views. That’s why SQLiteData was built from day one to work equally well in SwiftUI views, @‌Observable models, and even UIKit view controllers.
www.pointfree.co/episodes/ep3...
August 19, 2026 at 3:50 PM
This week we build a geofence editor using SQLiteData’s type-safe JSON APIs, and we show how everything is 100%, exhaustively testable. www.pointfree.co/episodes/ep3...
August 18, 2026 at 6:08 PM
Announcing: Episode Search!

This was probably our most requested feature. Have you ever wanted to revisit a topic but forgot which episode discussed it? You can now search our entire catalog of video transcripts, from speech to code. Try it out today: www.pointfree.co/blog/posts/2...
August 18, 2026 at 5:45 PM
GitHub is having a rough day today, and luckily just last week we made it possible to log into your Point-Free account without GitHub!
www.pointfree.co/blog/posts/2...
GitHub account no longer required
A GitHub account is no longer required to use Point-Free! You can now sign up and log in with nothing but your email address and a one-time code, and optionally connect your GitHub account later.
www.pointfree.co
August 17, 2026 at 5:52 PM
This year SwiftData introduced a brand new way to observe changes outside of the view where @‌Query cannot be used. What’s SQLiteData have to say about that? To explore, we’ll build a moderately complex geofence map editor and get full test coverage of the feature. www.pointfree.co/episodes/ep3...
August 17, 2026 at 4:12 PM
You asked for it; you got it! Point-Free now supports passwordless, email-based login. No GitHub account? No problem! www.pointfree.co/blog/posts/2...
August 13, 2026 at 5:14 PM
SQL tables tend to get wide as you add more and more columns, but your Swift data types don’t have to!

SQLiteData allows you to group related columns into tidy Swift types while also flattening all fields into individual columns in SQL.
August 13, 2026 at 3:03 PM