0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SwiftUI @State, @Environment, @Bindable 使い分け

Posted at

かんたんに

  • @Observableは、マクロの一種
  • @State, @Environment, @Bindableはプロパティラッパーの一種
  • @State, @Environment, @Bindable@Observableとインターフェースさせるために利用される
  • @Stateは、ビューの状態をモデルに格納
  • @Environmentは、値をグローバルにアクセシブルな値として伝搬させる
  • @Bindableは、軽量、その型からバインディングを作成できるようにすることだけ

使い分け

SwiftUI

モデルはビュー自体の状態である必要があるか? → Yes: @State
モデルはアプリケーションのグローバル環境の一部である必要があるか? → Yes: @Environment
モデルに必要なのはバインディングだけ? → Yes: @Bindable
全ての質問がYesでないなら、モデルをビューのプロパティとして使用するだけ

参考

Discover Observation in SwiftUI

あとがき

  • 使い分けを知ることによりその用語の役割、機能について知ることが出来ました。
  • ObservableObjectから@Observableへの変更など古いSwiftUIからの移行についても案内されていて親切だと思いました。
  • WWDC2024で早く新情報が提供されることに期待してます。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?