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

SwiftData supports Codable fields, but be careful not to use them for filtering or sorting. Code that compiles just fine will warn and even crash at runtime! SQLiteData on the other hand gives you direct access to SQLite’s powerful JSON APIs for filtering, sorting, and more!

An excerpt from this week’s episode showing a SwiftData query that fails with a warning at runtime alongside the equivalent SQLiteData query that just works.

SQLiteData has brand new type-safe and schema-safe JSON APIs by way of the StructuredQueries library. Extract, update, and query directly over JSON (and JSONB!) column data without fear of stringly-typed runtime errors. www.pointfree.co/blog/posts/2...

Type-safe JSON and JSONB in StructuredQueries

StructuredQueries 0.35.0 introduces full support for JSON and JSONB in SQLite queries. Store complex data types in your tables and query for values held in JSON in a type-safe and schema-safe API.

pointfree.co

The query in this screenshot selects all trips in the database whose location lies in the eastern hemisphere (i.e. longtime is greater than 0). All the static properties of the table and JSON are known to the builder so we can be sure there are no typos or type mismatches.

Point-Free@pointfree.co · yesterday

Storing complex data as JSON in a table doesn't mean it should be un-queryable. SQLite has amazing support for JSON. This week we show how to expose the schema of Codable types to our query builder in order to write type-safe and schema-safe queries! 👉 www.pointfree.co/episodes/ep3...

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.

An example of SQLiteData a recursive query grouping employees into boss–reports buckets to display in a list tree.

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:

Screen shot of a SQLiteData FetchKeyRequest that groups results into sections using an OrderedDictionary.

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.

An example of working with SwiftData class inheritance from WWDC26 sample code.An equivalent example of a SQLiteData table: a single data type with an enum to group differences instead of subclassing.

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...

A still from this week’s video (linked below) showing a failure diagnostic with fix-its for a column not representable as a column in SQL.

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...

WWDC 26 brought some updates to how UIKit interacts with Observable models, but the tools fall short on animation and granularity. This week we show off a tool that allows one to animate UIKit views in a SwiftUI-like fashion, and with minimal observation! www.pointfree.co/episodes/ep3...

Video #371: WWDC26: UIKit

Another year, another set of UIKit updates, proving that the framework is far from dead! It has adopted more support for the Observation framework, which is nice, but it could go so much further. To…

pointfree.co

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:

iOS 13’s alert API:

✅ Concise domain (single Optional)
✅ Re-presents on identity change
✅ Dynamic title
🛑 Doesn’t reuse SwiftUI’s Button
🛑 Doesn’t support TextFieldiOS 15’s alert API:

🛑 Static title
🛑 Inconcise domain (Optional and Bool)
🛑 Doesn’t re-present on identity change
✅ Reuses SwiftUI’s Button
✅ Supports TextFieldiOS 27’s alert API:

🛑 Static title
✅ Concise domain (single Optional)
🛑 Doesn’t re-present on identity change
✅ Reuses SwiftUI’s Button
✅ Supports TextField

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

A screen shot of the forum pitch.