DiscoverPoint-Free Videos
Point-Free Videos
Claim Ownership

Point-Free Videos

Author: Brandon Williams & Stephen Celis

Subscribed: 54Played: 1,785
Share

Description

Point-Free is a video series that explores advanced topics in the Swift programming language. Each episode covers a topic that may seem complex and academic at first, but turns out to be quite simple. At the end of each episode we’ll ask “what’s the point?!”, so that we can bring the concepts back down to earth and show how these ideas can improve the quality of your code today.
350 Episodes
Reverse
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We explore how SQLiteData gives you precise control over your data model, including larger blobs of data, by adding a photo avatar feature to our scorekeeping app. Along the way we will explore a new iOS 26 style confirmation dialogs and a SwiftUI binding trick.
Every once in awhile we release a new episode free for all to see, and today is that day! Please enjoy this episode, and if you find this interesting you may want to consider a subscription https://www.pointfree.co/pricing. --- We add another feature to our SQLiteData-based app to show how the tools interact with observable models and SwiftUI view lifecycles. We'll show how the library gives you ultimate control over the precision and performance of how data is fetched and loaded in your app.
Every once in awhile we release a new episode free for all to see, and today is that day! Please enjoy this episode, and if you find this interesting you may want to consider a subscription https://www.pointfree.co/pricing. --- We give a tour of our SQLiteData library, a fast and lightweight alternative to SwiftData. We'll set up a fresh project with the package, define models and configure the database, and even write SQL migrations with the help of Xcode's Coding Assistant.
CloudKit Sync: Finesse

CloudKit Sync: Finesse

2025-11-1737:09

Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We round out are synchronization series with a grab bag finale. We'll explore explicit synchronization, custom logout behavior, how the library handles read-only permissions, and how you can incorporate theses permissions in your app's behavior.
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We add advanced sharing functionality to our reminders app by fetching and displaying participant information, all without hitting CloudKit servers by leveraging SQLiteData's metadata, instead. Along the way we will explore two powerful tools to simplify our app: database "views" and the `@DatabaseFunction` macro.
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We want SQLiteData to work seamlessly behind the scenes without you having to worry about how it works, but we also wanted to make sure you had full access to everything happening under the hood. Let’s explore the secret sync metadata table to see how we can fetch and even join against data related to sync, including sharing information and more.
CloudKit Sync: Sharing

CloudKit Sync: Sharing

2025-10-2735:46

Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We add iCloud sharing and collaboration to our reminders app rewrite, so that multiple users can edit the same reminders list. It takes surprisingly little code, no changes to our feature's logic, and handles all manner of conflict resolution and more.
CloudKit Sync: Assets

CloudKit Sync: Assets

2025-10-2041:46

Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We introduce a new feature to our reminders app: cover images for each reminders list. This pushes us to create a brand new database table to synchronize, and allows us to demonstrate how SQLiteData seamlessly handles binary blobs by converting them to CloudKit assets under the hood.
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- With our database migrated, it's time to take the `SyncEngine` for a spin to see how it seamlessly synchronizes data to and from iCloud, how it resolves conflicts when records are edited and deleted from multiple devices, and even how records are synchronized from different versions of the application and database schema.
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We show how to add iCloud synchronization to the persistence layer of an existing SQLite application by using SQLiteData. While SQLiteData's CloudKit tools can be configured with a single line of code, one must still prepare their database schema to be compatible and durable when it comes to synchronizing across multiple devices and versions.
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We round out modern search by diving into FTS5's query syntax language. We'll learn how it works, how to escape terms sent directly by the user, and we'll introduce SwiftUI search tokens that can refine a query by term proximity and tags.
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- SQLite's full-text search capabilities come with many bells and whistles, including support for highlighting search term matches in your UI, as well as generating snippets for where matches appear in a larger corpus. We will take these APIs for a spin and enhance our Reminders search UI.
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We're ready to take advantage of some of the superpowers of full-text search, starting with relevancy. We will do a deep dive into the ranking algorithm of SQLite's FTS5 module, explore how the text of a document affects its relevancy score, and how we can tweak these scores based on the column containing a match.
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We start to leverage SQLite's built-in full-text search capabilities to power our feature. We learn about virtual tables, create one that stores the searchable data, populate it with the help of database triggers, and show just how powerful and succinct search can be.
Modern Search: Finesse

Modern Search: Finesse

2025-08-1828:15

Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We now have a very basic search feature in place, but it can be improved. We will add some bells and whistles and other performance improvements, including debouncing database queries, adding a count query to display the number of completed reminders, and grouping the queries into a single transaction.
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- Search is a natural feature to add to an app once your user has stored a whole bunch of data. We will tackle the problem from the perspective of modern persistence using SQLite as your data store by adding a simple search feature to our rewrite of Apple's Reminders app.
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We conclude our series on modern persistence and callbacks by showing how we can call back to _Swift_ from a database trigger. We will take advantage of this by improving the ergonomics of two features in our Reminders application.
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We add a new tag editing feature to our rewrite of Apple's Reminders app to show how we can use database triggers to validate them, and prevent invalid state from ever entering our user's data.
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We build a bunch of triggers in a schema-safe, type-safe way using APIs from the StructuredQueries library, including a callback that ensures the Reminders app always has at least one list, and a callback that helps us support drag–drop positional ordering of lists.
Every once in awhile we release a new episode free for all to see, and today is that day! Please enjoy this episode, and if you find this interesting you may want to consider a subscription https://www.pointfree.co/pricing. --- We continue our series on “modern persistence” with an important topic: “callbacks.” Callbacks are little hooks into the lifecycle of your data model so that you can be notified or take action when something changes. We will first explore the “Active Record” pattern of callbacks, popularized by Ruby on Rails, and then see how we can improve upon them.
loading
Comments