How does SwiftUI's State management work?

Generated on 9/6/2024

1 search

SwiftUI's state management is a key feature that allows views to be state-driven, meaning that when your view's state changes over time, SwiftUI automatically updates the UI. This eliminates the need for boilerplate code and reduces update bugs.

In SwiftUI, state is managed using several tools, including @State and @Binding.

  • @State: This is used to create a new internal source of data for a view. When you mark a view property with @State, SwiftUI manages the storage and provides it back for the view to read and write. For example, if you have a view that allows you to rate a pet's tricks, you can use @State to keep track of the current rating and change it over time. SwiftUI maintains the value of this state behind the scenes and updates the UI when the state changes.

  • @Binding: This creates a two-way reference to the state of another view. It allows a child view to read and write a value owned by a parent view. For instance, if you have a container view that combines a gauge and a rating view, you can use @Binding to ensure that both views are synchronized with the same source of truth.

SwiftUI also supports animations that build on top of these data-driven updates. When you wrap a state change with an animation, SwiftUI applies a default or custom transition to the view updates.

For more detailed information, you can refer to the SwiftUI essentials session from WWDC 2024.

Enhance your UI animations and transitions

Enhance your UI animations and transitions

Explore how to adopt the zoom transition in navigation and presentations to increase the sense of continuity in your app, and learn how to animate UIKit views with SwiftUI animations to make it easier to build animations that feel continuous.

What’s new in SwiftUI

What’s new in SwiftUI

Learn how you can use SwiftUI to build great apps for any Apple platform. Explore a fresh new look and feel for tabs and documents on iPadOS. Improve your window management with new windowing APIs, and gain more control over immersive spaces and volumes in your visionOS apps. We’ll also take you through other exciting refinements that help you make expressive charts, customize and layout text, and so much more.

SwiftUI essentials

SwiftUI essentials

Join us on a tour of SwiftUI, Apple’s declarative user interface framework. Learn essential concepts for building apps in SwiftUI, like views, state variables, and layout. Discover the breadth of APIs for building fully featured experiences and crafting unique custom components. Whether you’re brand new to SwiftUI or an experienced developer, you’ll learn how to take advantage of what SwiftUI has to offer when building great apps.

Bring your machine learning and AI models to Apple silicon

Bring your machine learning and AI models to Apple silicon

Learn how to optimize your machine learning and AI models to leverage the power of Apple silicon. Review model conversion workflows to prepare your models for on-device deployment. Understand model compression techniques that are compatible with Apple silicon, and at what stages in your model deployment workflow you can apply them. We’ll also explore the tradeoffs between storage size, latency, power usage and accuracy.