Point-Free
@pointfree
A video series exploring advanced topics in the Swift programming language, hosted by @mbrandonw.bsky.social and @stephencelis.com. Save 30% off today!
The sky’s the limit when it comes to querying and displaying data using SQLiteData. Here we show how @Fetch can be used to query data into any shape you can imagine, including hierarchical trees.
SwiftData’s new “sectionBy:” API is super cool, but did you know SQLiteData supported sectioning from day one? You have always had the ability to @Fetch your data into whatever shape you want. Here we use swift-collections’ OrderedDictionary to group results:
Our query builder has some super powers built in. Look how short and succinct it can be when querying for all/business/personal trips, sorted by trip end date, start date or name! All of it fits in only a few lines of code: www.pointfree.co/episodes/ep3...
This week we got to show off how short and succinct our query builder can be. Want a single query that can filter all/business/personal trips and sort by trip end date, start date or name? It all fits in just a few lines of code: www.pointfree.co/episodes/ep3...
SwiftData’s new sectionBy API groups results of @Query into sections, a much needed addition! SQLiteData supported sectioning from day one, and more. We’ll show just how far these tools can go before introducing an ergonomic API to match SwiftData’s. www.pointfree.co/episodes/ep3...
Take vanilla Swift data types, sprinkle in a few annotations, and you can instantly persist it to SQLite.
What’s better than SwiftData class inheritance? SQLiteData enums! Model your data using simple value types that can exhaustively and concisely describe valid state at compile time.
SQLiteData’s @Table macro employs some pretty advanced tricks to surface the best possible failure diagnostics and fix-its. It’s very common for macro errors to be buried in macro-generated code, but it doesn’t have to be this way! See it in action: www.pointfree.co/episodes/ep3...
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...
We just made another one of our WWDC26 videos free! Learn about what’s new in UIKit and how the UIKitNavigation library extends the framework with bindings and state-driven navigation to help you to model your domains concisely. www.pointfree.co/episodes/ep3...
What’s new this year in SwiftData? We dive deep into each topic to figure out what exactly to figure out what exactly is new, what are the gotchas, and prepare for a lesson on how to best model your domains concisely. www.pointfree.co/episodes/ep3...
AppleOS 27 brings a few new tools to UIKit, but our UIKitNavigation library has all of this and more: ✅ Modern alert API ✅ State-driven navigation ✅ Concisely modeled domains ✅ Animations and transactions ✅ Back-ported to iOS 13 Check it out: www.pointfree.co/collections/...
In celebration of #WWDC26, we are making our video on SwiftUI’s new alert API free! Get a history lesson on alerts in SwiftUI over the years, learn about efficient domain modeling, and how a lightweight package can take things even further. www.pointfree.co/episodes/ep3...
WWDC brought more adoption of the Observation framework to UIKit, but more can be done. We will employ our UIKitNavigation library to show how we can add SwiftUI-like navigation and controls to a UIKit feature, including animations and transactions. 👉 www.pointfree.co/episodes/ep3...
Our SwiftNavigation library comes with alert helpers that address all of the trade-offs that come with SwiftUI’s built-in helpers (and a whole lot more!). Customize and drive your app’s alerts in the most concise and correct way possible.
Watch this week’s video to learn even more! Would you believe we can improve things even further?
WWDC26 introduced a brand new SwiftUI alert API (the third version so far!). Here’s a history lesson of all the trade-offs of each API, from iOS 13 to iOS 15 to iOS 27:
Point-Free does WWDC26! We look at some new features of AppleOS 27 and how they relate to topics we cover on Point-Free, starting with a new alert API. This will give us a chance to discuss concisely modeled domains and our SwiftNavigation package. www.pointfree.co/episodes/ep3...
This week we pitched adding a new trait to Swift Testing that allows you to bind a task local value for a given test or suite. This makes it far easier to work with task locals in tests without having to fuss with test support libraries.A
The blog bonanza continues: “Trait-ifying” our libraries to reduce transitive dependencies We are starting to use SwiftPM traits to allow users to opt out of certain functionality in our libraries, reducing transitive dependencies on our other libraries. www.pointfree.co/blog/posts/2...
We recently wrapped up our comprehensive series on “isolation” in Swift. Get a complete understanding of how Swift protects you from data races at compile time, how to decipher cryptic compiler errors, turn asynchronous code into synchronous code, and more!
Alongside the release of “approachable concurrency” came a brand new mode: MainActor by default. It’s even enabled in new Xcode projects. But there are some big caveats to be aware of if you adopt this mode! Learn about them: www.pointfree.co/episodes/ep3...
We conclude our series by exploring the mode of main actor by default. New Xcode projects come with the setting turned on, so it’s important to know the ins and outs of working with it, and how it is affected by “sendable” protocols. www.pointfree.co/episodes/ep3...
WWDC is an exciting time for most, but for us it can be stressful! Xcode betas bring new bugs that can affect people who depend on our libraries. But, we take this job seriously, and have already ushered out releases to workaround beta issues in 4 of our most popular libraries!
Today #WWDC26 introduced a brand new version of the “alert” and ”confirmationDialog” modifiers that are not only simpler and more ergonomic, but they are more correct, preventing impossible states. This is the 3rd iteration of the “alert” API in SwiftUI!
Swift Testing traits are a phenomenal way to configure tests and suites with behavior without nesting and excessive boilerplate. This week we shipped a trait that lets you override task locals in your tests with a simple one-liner: www.pointfree.co/blog/posts/2...
Once subscribed to Point-Free you will unlock access to our newest concurrency series, uncovering all things isolation. We show how it statically proves code is safe, how it works under the hood, how to override and share isolation, and so much more. 👉 www.pointfree.co/collections/...
Love to read this because we have spent many, many hours on this newest concurrency series!
This week we dissect “sending” closures, how they power the common Task {} API, and how they track their capture of non-sendable objects in safe ways. Watch us break it down, step-by-step: www.pointfree.co/episodes/ep3...
Region-based isolation can get tricky when it comes to closures, especially 'inout' arguments and nested closures. We will take things slowly to understand this topic fully, and even employ a trick we discussed on just the 2nd episode of Point-Free! 👉 www.pointfree.co/episodes/ep3...