Point-Free Videos

Point-Free Videos

By Brandon Williams & Stephen CelisTechnologyEducation
Download on the App Store

Point-Free Videos episodes

  • Observable Architecture: Observing Collections
    ๐Ÿ”’ We can now observe struct, optional, and enum state in the Composable Architecture, but what
    about collections? Let's explore what it takes to get rid of the `ForEachStore` wrapper view
    for a vanilla `ForEach` view instead, while still observing updates to collection state in the
    most minimal way possible.
    54 min
  • Observable Architecture: Observing Enums
    ๐Ÿ”’ We've made structs and optionals observable in the Composable Architecture, eliminating the
    need for `ViewStore`s and `IfLetStore`s, so what about enums? If we can make enums observable,
    we could further eliminate the concept of the `SwitchStore`, greatly improving the ergonomics
    of working with enums in the library.
    44 min
  • Observable Architecture: Observing Optionals
    ๐Ÿ”’ The Composable Architecture can now observe _struct_ state, but it requires a lot of boilerplate. Let's fix this by leveraging the `@Observable` macro from the Swift open source repository. And let's explore what it means to observe _optional_ state and eliminate the library's `IfLetStore` view for a simple `if let` statement.
    41 min
  • Observable Architecture: Structural Identity
    ๐Ÿ”’ One of the core tenets of the Composable Architecture is that you should be able to model your
    application's state using simple value types, like structs and enums. However, the
    `@Observable` macro does not work with value types at all, and so in order to enhance the
    Composable Architecture with Observation we will need to contend with this issue and explore
    what it means for a struct to be observable.
    44 min
  • ๐Ÿ†“ Observable Architecture: Sneak Peek
    ๐Ÿ†“ 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_. ๐Ÿคฏ
    23 min
  • Macro Case Paths: Part 2
    ๐Ÿ”’ We have now totally reimagined the design of our case paths library to create actual key paths
    for enum cases, but there is some boilerplate involved. Letโ€™s create a macro that eliminates
    all of it and explore a few of the possibilities it unlocks.
    56 min
  • Macro Case Paths: Part 1
    ๐Ÿ”’ โ€œCase pathsโ€ grant key path-like functionality to enum cases. They solve many problems in
    navigation, parsing, and architecture, but fall short of native key pathsโ€ฆtill now. Letโ€™s
    close this gap using macros that generate actual key paths to enum cases.
    1 hr
  • Observation in Practice
    ๐Ÿ”’ We take all we've learned about the Observation framework and apply it to a larger, more real
    world application: our rewrite of Apple's Scrumdinger demo. We'll see what changes are easy to
    make, what changes are a bit trickier, and encounter a bug that you'll want to know about.
    1 hr 2 min
  • Observation: The Future
    ๐Ÿ”’ We've explored the present state of observation in Swift, so what's the future have in store? Currently, observation is restricted to classes, while one of Swift's most celebrated features, value types, is left out in the cold. Let's explore a future in which observation is extended to value types.
    31 min
  • Observation: The Gotchas
    ๐Ÿ”’ While the `@Observable` macro improves upon nearly every aspect of the `@State` and `@ObservedObject` property wrappers, it is not without its pitfalls. We will explore several gotchas that you should be aware of when adopting observation in your applications.
    50 min

About Point-Free Videos

From the publisher's feed

Point-Free is a hub for advanced topics in Swift. Videos cover complex, real world topics including application architecture, concurrency, persistence, and more.