1. Core Idea

Used when state is shared, complex, or comes from a reference type (class).

Instead of value types (struct), we use ObservableObject classes.


2. @Published

Definition

Marks properties inside a class that should trigger UI updates.

class ViewModel: ObservableObject {
    @Published var isNight = false
}

3. @StateObject

Definition

Used to create and own an ObservableObject.

Example

@StateObject private var viewModel = ViewModel()

Key Point


4. @ObservedObject

Definition