Used when state is shared, complex, or comes from a reference type (class).
Instead of value types (struct), we use ObservableObject classes.
Marks properties inside a class that should trigger UI updates.
class ViewModel: ObservableObject {
@Published var isNight = false
}
Used to create and own an ObservableObject.
@StateObject private var viewModel = ViewModel()