<SwiftLearn/>
SwiftUI入門 レッスン5

@Observable

@Observableマクロと@Bindableを使ったSwift 5.9以降の状態管理を学びます。

@Observableとは

Swift 5.9 / iOS 17から導入された@Observableマクロは、 クラスの変更を自動追跡します。以前のObservableObject / @Publishedより シンプルに書けます。@BindableでBinding値を取り出せます。

旧: ObservableObject

class Model: ObservableObject {
  @Published var count = 0
}
// Viewで: @StateObject var m

新: @Observable

@Observable
class Model {
  var count = 0
}
// Viewで: @State var m

@Observableの基本

クラスに@Observableを付けるだけで、 プロパティの変更がViewに自動的に通知されます。

Swiftエディタ

@Bindableでバインディング

@Bindableを使うと@ObservableクラスのプロパティへのBindingを取り出せます。

Swiftエディタ