Save 30% off today! https://www.pointfree.co/discounts/black-friday-2025
Check it out:
www.pointfree.co/office-hours...
Check it out:
www.pointfree.co/office-hours...
www.pointfree.co/office-hours
www.pointfree.co/office-hours
Use @LazyState to allow for dynamic initialization of state in your views:
www.pointfree.co/blog/posts/2...
Use @LazyState to allow for dynamic initialization of state in your views:
www.pointfree.co/blog/posts/2...
👉 www.pointfree.co/blog/posts/2...
👉 www.pointfree.co/blog/posts/2...
www.pointfree.co/blog/posts/2...
www.pointfree.co/blog/posts/2...
www.pointfree.co/collections/...
www.pointfree.co/collections/...
1. Make the state private and Optional
2. Populate the state in onAppear
This means extra boilerplate, imprecise domains, optional coalescing and chaining dances, and potential lifecycle bugs!
1. Make the state private and Optional
2. Populate the state in onAppear
This means extra boilerplate, imprecise domains, optional coalescing and chaining dances, and potential lifecycle bugs!
The @Query macro must now explicitly use the SectionedResults type, which means it is no longer possible to dynamically add/remove sectioning from a view.
The @Query macro must now explicitly use the SectionedResults type, which means it is no longer possible to dynamically add/remove sectioning from a view.
Well, we're back at it. We feel @State still doesn't adequately solve the problem of dynamically initialized state, so we are introducing @LazyState:
www.pointfree.co/blog/posts/2...
Well, we're back at it. We feel @State still doesn't adequately solve the problem of dynamically initialized state, so we are introducing @LazyState:
www.pointfree.co/blog/posts/2...
👉 www.pointfree.co/episodes/ep3...
👉 www.pointfree.co/episodes/ep3...
But what you may not know is that the laziness only kicks in for **private** state.
Get all the details here:
www.pointfree.co/episodes/ep3...
But what you may not know is that the laziness only kicks in for **private** state.
Get all the details here:
www.pointfree.co/episodes/ep3...
We lift the veil on this type in this week's episode to see how Apple was able to back port @State to iOS 17:
www.pointfree.co/episodes/ep3...
We lift the veil on this type in this week's episode to see how Apple was able to back port @State to iOS 17:
www.pointfree.co/episodes/ep3...
We show that all of this code is essentially just 3 lines of code:
👉 www.pointfree.co/episodes/ep3...
We show that all of this code is essentially just 3 lines of code:
👉 www.pointfree.co/episodes/ep3...
www.pointfree.co/episodes/ep3...
www.pointfree.co/episodes/ep3...
We show how to exhaustively test it like a value type, so a missed assertion is a test failure with a nice message. 🤯
We show how to exhaustively test it like a value type, so a missed assertion is a test failure with a nice message. 🤯
www.pointfree.co/episodes/ep3...
www.pointfree.co/episodes/ep3...
www.pointfree.co/episodes/ep3...
www.pointfree.co/episodes/ep3...
This was probably our most requested feature. Have you ever wanted to revisit a topic but forgot which episode discussed it? You can now search our entire catalog of video transcripts, from speech to code. Try it out today: www.pointfree.co/blog/posts/2...
This was probably our most requested feature. Have you ever wanted to revisit a topic but forgot which episode discussed it? You can now search our entire catalog of video transcripts, from speech to code. Try it out today: www.pointfree.co/blog/posts/2...
www.pointfree.co/blog/posts/2...
www.pointfree.co/blog/posts/2...
SQLiteData allows you to group related columns into tidy Swift types while also flattening all fields into individual columns in SQL.
SQLiteData allows you to group related columns into tidy Swift types while also flattening all fields into individual columns in SQL.