The Composable Architecture does not yet support any of the fancy new concurrency features from WWDC this year, so is it possible to interact with async/await APIs like .refreshable? Not only is it possible, but it can be done without any changes to the core library.| www.pointfree.co
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.| www.pointfree.co
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.| Point-Free Videos
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.| www.pointfree.co
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.| Point-Free Videos
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.| www.pointfree.co
We go live with our viewers to unveil our vision for modern persistence. We show just how easy it is to seamlessly synchronize your app’s data across many devices, including sharing data with other iCloud users, and we answer your questions.| www.pointfree.co
Last week we released SharingGRDB, an alternative to SwiftData powered by SQLite, but there are a few improvements we could make. Let’s take a look at some problems with the current tools before giving a sneak peek at the solution: a powerful new query building library that leverages many advanced Swift features that we will soon build from scratch.| www.pointfree.co
We celebrate 7 years with a live stream! We discuss some recent updates around our popular Sharing library; open source SharingGRDB live, which is a new lightweight alternative to SwiftData that is powered by Sharing and GRDB; and we give a sneak peek of an upcoming series and library.| www.pointfree.co
We are now driving several features using SQLite using a simple property wrapper that offers the same ergonomics as Swift Data’s @Query macro, and automatically keeps the view in sync with the database. Let’s add one more feature to leverage dynamic queries by allowing the user to change how the data is sorted.| www.pointfree.co
Let’s leverage our new @Shared SQLite strategy by adding a brand new feature: archiving. We will see how easy it is to incorporate queries directly into a SwiftUI view, and we will expand our tools to support even more kinds of queries.| www.pointfree.co
SQLite offers a lot of power and flexibility over a simple JSON file, but it also requires a lot of boilerplate to get working. But we can hide away all that boilerplate using the @Shared property wrapper and end up with something that is arguably nicer than Swift Data’s @Query macro!| www.pointfree.co
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.| www.pointfree.co
In this week’s free holiday episode we show what it looks like to snapshot test a SwiftUI application in our architecture and compare this style of integration testing against XCTest’s UI testing tools.| www.pointfree.co
As we approach WWDC24 and 5 years of SwiftUI, let’s talk about… UIKit! 😜 We love SwiftUI, but there will still be times you must drop down to UIKit, and so we want to show what modern UIKit development can look like if you put in a little bit of effort to build tools that allow you to model your domains as concisely as possible.| www.pointfree.co
What does the Swift type system have to do with algebra? A lot! We’ll begin to explore this correspondence and see how it can help us create type-safe data structures that can catch runtime errors at compile time.| www.pointfree.co
Let’s apply the Composable Architecture’s new state sharing tools to something even more real world: our open source word game, isowords. It currently models its user settings as a cumbersome dependency that requires a lot of code to keep features in sync when settings change. We should be able to greatly simplify things with the @Shared property wrapper.| www.pointfree.co
In our last series we developed a wonderful way to share state between features in the Composable Architecture, and even persist it, all without sacrificing testability, but we also didn’t get to show the (just now released) tools being used in real world applications, so let’s do just that, starting with SyncUps.| www.pointfree.co
The various approaches of sharing state in the Composable Architecture are mixed bag of trade offs and problems. Is there a better way? We’ll take a controversial approach: we will introduce a reference type into our state, typically a value type, and see what happens, and take it for a spin in an all new, flow-based case study.| www.pointfree.co
We tackle one of the biggest problems when it comes to “single source of truth” applications, and that is: how do you share state? Let’s begin by analyzing the problem, and truly understanding what vague mantras like “single source of truth” even mean, and then we will be in a good position to provide a wonderful solution.| www.pointfree.co
To celebrate our 6th anniversary we had another livestream! We updated an app from the most recent Composable Architecture tour to the latest observation tools, showed how these tools can improve UIKit-based apps, showed off some recent enhancements to the @Reducer macro, gave a sneak peek of a highly anticipated topic, and answered your questions along the way.| www.pointfree.co
We’re about to completely revolutionize the Composable Architecture with Swift’s new Observation framework! But first, a sneak peek: we’ll take the public beta (available today!) for a spin to see how the concept of a “view store” completely vanishes when using the new tools.Oh, and did we mention that the new observation tools in the library have been backported all the way back to iOS 13? This means you can use the tools immediately. 🤯| www.pointfree.co