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 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.| www.pointfree.co
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.| www.pointfree.co
We continue our explorations into algebra and the Swift type system. We show that exponents correspond to functions in Swift, and that by using the properties of exponents we can better understand what makes some functions more complex than others.| 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 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.| 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