Brandon Williams
@mbrandonw.bsky.social
đ€ 484
đ„ 140
đ 24
Subterranean homesick mathematician. Co-host of
@pointfree.co
.
https://www.fewbutripe.com
This gives you the benefits of âsingle-table inheritanceâ for SQLite tables without the pain of actual class inheritance! đ It lets you fully use Swift's powerful domain modeling tools for you database, such as structs and enums.
add a skeleton here at some point
12 days ago
0
8
1
reposted by
Brandon Williams
Point-Free
16 days ago
Our most recent library, SQLiteData, embodies this principle. It pre-supposes: what if I don't want to massively refactor my codebase just because at some point I need to write a bit of code outside of a SwiftUI view đ€Ș
github.com/pointfreeco/...
loading . . .
GitHub - pointfreeco/sqlite-data: A fast, lightweight replacement for SwiftData, powered by SQL and supporting CloudKit synchronization.
A fast, lightweight replacement for SwiftData, powered by SQL and supporting CloudKit synchronization. - pointfreeco/sqlite-data
https://github.com/pointfreeco/sqlite-data
0
3
1
reposted by
Brandon Williams
Point-Free
16 days ago
Tired of the âTo MVVM or not to MVVMâ discussions that plague our community? Us too đ Thatâs why we build tools that work in SwiftUI views, @âObservable models, UIKit, AppKit, Linux, and more! You should build your app in the way that makes the most sense for you and your team.
1
9
2
reposted by
Brandon Williams
Point-Free
28 days ago
Itâs finally here: SQLiteData 1.0: a fast, lightweight replacement for SwiftData with full CloudKit support.
www.pointfree.co/blog/posts/1...
loading . . .
SQLiteData 1.0: An alternative to SwiftData with CloudKit sync and sharing
Announcing SQLiteData 1.0: A fast, lightweight alternative to SwiftData with full support for CloudKit synchronization and data sharing.
https://www.pointfree.co/blog/posts/184-sqlitedata-1-0-an-alternative-to-swiftdata-with-cloudkit-sync-and-sharing
0
28
6
SwiftData offers a promise of simple persistence with easy synchronization. We feel it currently falls short of that goal, but in the fullness of time it may achieve it. But, for the present, we are working on tools that achieve SwiftData's promise, and honestly a lot more.
add a skeleton here at some point
2 months ago
0
6
1
reposted by
Brandon Williams
Point-Free
4 months ago
Next week: We are hosting a live stream where we will preview some fantastic new features coming to our SQLite persistence library, including CloudKit sync and sharing, and answer your questions! Submit your questions *today* đ
www.pointfree.co/blog/posts/1...
loading . . .
Upcoming live stream: A vision for modern persistence
We are hosting a live stream on June 25th to unveil our vision for modern persistence. Learn how to seamlessly synchronize your appâs data across many devices, including sharing data with other iCloud...
https://www.pointfree.co/blog/posts/175-upcoming-live-stream-a-vision-for-modern-persistence
0
6
5
reposted by
Brandon Williams
Point-Free
5 months ago
That's right. You can have the best of both worlds. You get unfettered access to SQLite, a fantastic technology that has stood the test of time, while behind the scenes every change is synchronized across devices using CloudKit. Seems almost too good to be true!
add a skeleton here at some point
2
19
3
reposted by
Brandon Williams
Point-Free
5 months ago
We've had a major breakthrough in the most requested feature of our SwiftData alternative: SharingGRDB. More details coming soon... đ
1
17
4
reposted by
Brandon Williams
Point-Free
5 months ago
We finish the lists feature of our Apple's Reminders app rebuild. We introduce advanced queries including counts and custom data types. And we show how âdraftsâ allow us to create and update lists using the same view while keeping the domain as precise as possible.
www.pointfree.co/episodes/ep3...
loading . . .
0
2
1
reposted by
Brandon Williams
Point-Free
6 months ago
Announcing a toolkit that provides a SwiftData-like experience to SQLite: SharingGRDB with StructuredQueries.
www.pointfree.co/blog/posts/1...
loading . . .
A fast, lightweight replacement for SwiftData
Replace SwiftData with a fast, ergonomic and lightweight suite of tools powered by SQL. It provides APIs similar to @Model, @Query and #Predicate, but is tuned for direct access to the underlying data...
https://www.pointfree.co/blog/posts/170-a-fast-lightweight-replacement-for-swiftdata
0
11
5
reposted by
Brandon Williams
Point-Free
7 months ago
Don't miss out on our exciting series that designs this SQL building library from scratch! We explore many advanced topics of Swift along the way, as well as a crash course in SQL and databases!
www.pointfree.co/collections/...
loading . . .
SQLite âș SQL Building
SQL is one of the most powerful and concise programming languages ever invented, but it is usually written as a raw string in some other language, such as Swift, Javascript, Ruby, and so on. In this s...
https://www.pointfree.co/collections/sqlite/sql-building
1
2
1
This query is traversing a recursive one-to-many relationship in SQL (Category belongs to parent Category) to print out the hierarchy of categories. Why do this work in application code when SQL can knock it out efficiently in just a few lines??
add a skeleton here at some point
7 months ago
0
1
1
reposted by
Brandon Williams
Point-Free
7 months ago
We add sorting to our SQL builder, which will give us a powerful, succinct syntax for controlling the order of results. We will start small but build up to parameter packs and even a custom result builder to get the most flexibility out of our API.
www.pointfree.co/episodes/ep3...
loading . . .
0
4
1
Even in a Swift query builder scares you, there is nothing stopping you from writing raw SQL with a static description of your database schema!
add a skeleton here at some point
7 months ago
0
4
1
reposted by
Brandon Williams
Point-Free
7 months ago
Some have expressed skepticism over using our upcoming query builder vs. writing raw SQL. Well our library lets you pick your poison! Both options are schema-safe and safe from SQL injection, but one is further type-safe and guaranteed to generate valid SQL:
0
11
2
reposted by
Brandon Williams
Point-Free
7 months ago
We now have a type-safe syntax for generating SELECT statements using key paths, but we can do better. Letâs introduce a more advanced syntax that leverages variadic generics and supports more complex query expressions.
www.pointfree.co/episodes/ep3...
loading . . .
0
4
2
reposted by
Brandon Williams
Point-Free
7 months ago
While building our SQL building library we have created a state-of-the-art testing tool that allows us to simultaneously snapshot the SQL generated by the library, and the results fetched from the database.
0
4
2
reposted by
Brandon Williams
Point-Free
7 months ago
Imagine a SQL building library for which it is easy to define query fragment helpers that can be pieced together in all kinds of interesting ways. That is exactly what we are building, and this week we give a sneak peek of the library:
www.pointfree.co/episodes/ep3...
1
15
2
reposted by
Brandon Williams
Point-Free
7 months ago
A tricky part to domain modeling with SQLite is how to handle auto incrementing primary keys. You are forced to use optional IDs, but that leaks complexity throughout your app and complicates Identifiable conformances. Our @Table macro handily fixes this by generating a Draft type with no ID.
2
9
1
reposted by
Brandon Williams
Point-Free
7 months ago
Swift 6.1 brings meta type key paths to the language, and that unlocks a new level of composability in our SQL building library. You can chain together multiple static helpers to build complex queries. Watch us do this live in this week's episode: đ
www.pointfree.co/episodes/ep3...
0
9
2
This is an incredibly powerful library that simply would not have been possible to build in Swift from a year ago. We are very excited to dive deep into this in our next series of episodes!
add a skeleton here at some point
8 months ago
0
10
2
reposted by
Brandon Williams
Point-Free
8 months ago
Watch us live code a complex query to fetch all reminders that are high priority, or flagged, or has the tag "#kids" associated with it. This requires a complex subquery that is not easily accomplishable in SwiftData. Get all the details here:
www.pointfree.co/clips/105827...
loading . . .
Powering state with a complex SQL query
Watch us live write a complex SQL query to load "really important reminders", and seamlessly integrate that state in our app. The database will automatically be observed for changes so that we can re-...
https://www.pointfree.co/clips/1058279838
0
7
3
reposted by
Brandon Williams
Point-Free
8 months ago
Our livestream is now up! âą We discuss advanced uses of our Sharing library: Firebase and Wasm âąÂ We release a brand new library: SharingGRDB, an alternative to SwiftData âą We preview a new library: StructuredQueries âą And we answer dozens of viewer questions! đ
www.pointfree.co/episodes/ep3...
loading . . .
0
5
1
reposted by
Brandon Williams
Point-Free
8 months ago
In today's livestream we announced a brand new open source library: SharingGRDB. It's an alternative to SwiftData that gives you direct access to SQLite, works in UIKit, @âObservable models and SwiftUI views. Oh, and it back deploys to iOS 13 đČ
www.pointfree.co/blog/posts/1...
loading . . .
SharingGRDB: A SwiftData Alternative
We are excited to announce a new open source library that can serve as a SwiftData alternative for many types of apps out there today. It provides tools that work in SwiftUI views, @Observable models,...
https://www.pointfree.co/blog/posts/168-sharinggrdb-a-swiftdata-alternative
0
10
3
reposted by
Brandon Williams
Point-Free
8 months ago
Reminder that we are going live in a few hours! We'll be discussing: đ€Ż Advanced topics of our new Sharing library đ Announcing a brand new open source library đ Sneak peek at our next episode series đ Questions from our viewers
www.pointfree.co/live
loading . . .
đŽ Point-Free Live
Point-Free Live is a periodic livestream where we discuss topics from episodes, explore our open source libraries, and take questions from our viewers.
https://www.pointfree.co/live
0
3
2
reposted by
Brandon Williams
Point-Free
8 months ago
Our tools make it possible to execute multiple SQL queries in a single DB transaction, and then use that data directly in a SwiftUI view. This is more efficient and makes it possible to group related state together.
1
9
1
reposted by
Brandon Williams
Point-Free
8 months ago
This week we finished an amazing series showing how to build a SwiftData alternative using simple SQLite. And the best part? All of these tools work going all the way back to iOS 13! đ€Ż đ
www.pointfree.co/collections/...
0
9
4
reposted by
Brandon Williams
Point-Free
8 months ago
We now have several features using SQLite via a simple property wrapper that offers the same ergonomics as SwiftDataâs @âQuery macro, and it automatically keeps the view in sync with the database. Let's now see how to handle dynamic queries! đ
www.pointfree.co/episodes/ep3...
loading . . .
0
4
1
reposted by
Brandon Williams
Point-Free
9 months ago
Mark your calendars! Point-Free is hosting a live stream on Feb 14, 9am PST / 5pm GMT. We'll discuss our Sharing library as a modern persistence toolkit, a sneak peek at a new library we are working on, and we will take questions from our viewers! The Q&A is already open:
www.pointfree.co/live
loading . . .
đŽ Point-Free Live
Point-Free Live is a periodic livestream where we discuss topics from episodes, explore our open source libraries, and take questions from our viewers.
https://www.pointfree.co/live
0
6
1
reposted by
Brandon Williams
Point-Free
9 months ago
7 years ago today we launched Point-Free! What have been some of your favorite episodes, open source libraries, or moments since we launched?
www.pointfree.co/blog/posts/1...
9
17
3
reposted by
Brandon Williams
Point-Free
9 months ago
Learn about these advanced techniques in this week's episode:
www.pointfree.co/episodes/ep3...
loading . . .
Episode #311: Sharing with SQLite: Advanced Queries
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...
https://www.pointfree.co/episodes/ep311-sharing-with-sqlite-advanced-queries
0
2
1
SQL is a powerful language and it's a bummer to put any abstraction over it that prevents access to all of its features. We are building tools that allow you to embrace a bit of abstraction where needed, but you always have access to all of SQL.
add a skeleton here at some point
9 months ago
0
5
2
reposted by
Brandon Williams
Point-Free
9 months ago
With just a bit of work you can switch from using JSON to persist your app's state to using a powerful SQLite database. Queries will define how your feature's access state, and they will automatically update if the database changes. đ
www.pointfree.co/episodes/ep3...
0
3
1
Some say that trying to use Swift Data outside of a view (such as an @Observable model) is "fighting the framework". But the fact that @Query does not work outside of views is only a limitation of Swift Data, and an unneeded one. We build a tool similar to @Query, but it can be used anywhere!
add a skeleton here at some point
9 months ago
0
12
2
By the end of this series we will have built a suite of tools that provide a lot of the functionality of Swift Data, except the tools can be used anywhere (@Observable models, UIKit, SwiftUI, ...) and are cross-platform (Windows, Wasm, ...). It will be incredible to see!
add a skeleton here at some point
9 months ago
1
9
1
reposted by
Brandon Williams
Point-Free
9 months ago
đą Announcing: Swift Sharing 2 The latest release of our popular open source library includes better support for Swift concurrency and error handling!
www.pointfree.co/blog/posts/1...
1
22
3
reposted by
Brandon Williams
Point-Free
9 months ago
No new episode this week as we prepare for our next series (it's a doozy!), but we are excited to announce that our 4-part series âTour of Sharingâ is free for all to watch. Learn the basics of our new Swift Sharing library today!
www.pointfree.co/blog/posts/1...
loading . . .
Tour of Sharing: Free for all to watch!
We are making the 4-part series âTour of Sharingâ free for everyone to watch!
https://www.pointfree.co/blog/posts/163-tour-of-sharing-free-for-all-to-watch
0
4
1
reposted by
Brandon Williams
Point-Free
10 months ago
Weâre ending the year with one last sale: đ 25% off your first year! Unlock access to hundreds of episodes on advanced Swift topics, as well as everything we have planned for next year. Donât miss this chance to level up your skills!
www.pointfree.co/blog/posts/1...
loading . . .
End-of-year sale: 25% off Point-Free
Through the new year, weâre offering personal Point-Free subscriptions for 25% off the first year!
https://www.pointfree.co/blog/posts/162-end-of-year-sale-25-off-point-free
0
4
3
reposted by
Brandon Williams
Point-Free
10 months ago
Weâre running a 25% discount through the end of the year! Donât miss out on everything we have planned for 2025. There have been rumors that we are working on tools that might replace your need for Swift Data and are cross-platform đČ. đ
www.pointfree.co/discounts/eo...
đ
add a skeleton here at some point
1
7
4
reposted by
Brandon Williams
Point-Free
10 months ago
We released 4 brand new open source projects this year, 2 of which were first incubated inside the Composable Architecture and then later extracted. Find out more of what we accomplished in our 2024 Year-in-review:
www.pointfree.co/blog/posts/1...
0
8
2
reposted by
Brandon Williams
Point-Free
10 months ago
This is an overview of the topics we covered in 2024, and if we only covered half of these it would still have been a great year. @Observable, lightweight state sharing and persistence tools, UIKit, cross-platform Swift, Equatable/Hashable, SQLite, and more!
www.pointfree.co/blog/posts/1...
0
5
4
reposted by
Brandon Williams
Point-Free
10 months ago
To celebrate the holiday season and all weâve done this year, weâre also offering new subscribers a gift: đ 25% off your first year of Point-Free:
www.pointfree.co/discounts/eo...
add a skeleton here at some point
0
3
2
reposted by
Brandon Williams
Point-Free
10 months ago
You can also persist state to the file system with our @Shared property wrapper. Here we have an array of strings in a model such that any changes to it are saved to disk, and any changes on disk are synchronized to the state. Learn more in our Tour of Sharing:
www.pointfree.co/episodes/ep3...
0
3
1
reposted by
Brandon Williams
Point-Free
10 months ago
SwiftUIâs @âAppStorage property wrapper is wonderful, but itâs only meant to be used in SwiftUI views. The @âShared property wrapper, however, can be used anywhere: views, models, view controllersâŠyour imagination is the limit! See it all work in this weekâs episode:
www.pointfree.co/episodes/ep3...
0
16
3
reposted by
Brandon Williams
Point-Free
10 months ago
@Shared, unlike @AppStorage, can be used anywhere, not just SwiftUI views! And it has some extra bells and whistles that make it easier to write maintainable Xcode previews and avoid potential bugs around âstring-lyâ typed keys and default values. Learn how:
www.pointfree.co/episodes/ep3...
loading . . .
1
9
1
I may have misunderstood your original comment. When you say you want non-observable references in the environment, you are opening yourself up to this problem:
gist.github.com/mbrandonw/ec...
Changes to the class do not cause the view to update, and it's because the class is not observable.
10 months ago
2
2
0
reposted by
Brandon Williams
Point-Free
11 months ago
We also have a demo of how to use '@Shared' with SQLite via GRDB. You can hold onto state in your features that is secretly backed by a SQL query, and changes to the database will automatically update the view:
github.com/pointfreeco/...
loading . . .
1
3
1
reposted by
Brandon Williams
Point-Free
11 months ago
Today's the last day to take advantage of our Cyber Monday sale! Get 30% off the next year of your Point-Free subscription, and explore advanced topics in Swift and SwiftUI with us!
www.pointfree.co/blog/posts/1...
loading . . .
Cyber Monday: Last Chance to Save
Our holiday sale is ending soon! Subscribe today at a 30% discount and get instant access to hundreds of hours of advanced Swift content exploring everything from modern concurrency to generics to dom...
https://www.pointfree.co/blog/posts/157-cyber-monday-last-chance-to-save
0
3
1
Thousands of developers are already using our Sharing library because these tools were originally released as part of the Composable Architecture over 6 months ago. During that time we have gathered important feedback that helped us make the tools what they are today!
add a skeleton here at some point
11 months ago
4
18
3
reposted by
Brandon Williams
Point-Free
11 months ago
âSharingâ is a brand new Swift library for sharing state throughout your application and to external systems like user defaults, the file system, and more. We tour the library starting with a comparison to a tool that inspired its design: SwiftUIâs @âAppStorage. đ
www.pointfree.co/episodes/ep3...
loading . . .
2
22
5
Load more
feeds!
log in