前回の記事
iOS App Dev Tutorialsを読んでみた。その5
前回の記事を読んだ後に、この記事をご覧ください。
今回の範囲
Managing data flow between views
今回はビュー間のデータフローを管理する事について学びます。
1.真実の源
真実のソースを複数箇所に保存すると、アプリのバグにつながる可能性があるため、アプリの各データ要素には単一の真実のソースを使用する必要があります。ScrumdingerAppでは、真実のソースを用い、他のビューがそのアクセスを共有することになっている。これにより、データ整合性が維持され、アプリのパフォーマンスが向上する。
2.Swiftプロパティラッパー
Swiftにおいて、プロパティラッパーは、共通のプロパティ初期化パターンをカプセル化し、プロパティに効率的に動作を追加するのに役立ちます。ための真実の単一のソースを維持するのを助けます。
3.状態
SwiftUIでは、ユーザーの操作に基づいて@Stateプロパティが変更されると、それに依存する全てのビューが更新されることでUIが新しいバージョンにレンダリングされます。状態プロパティは、一時的な状態を管理するために役立つので、永続的なストレージに使用することは避けるべきです。Stateプロパティラッパーは、ローカルな真実のミュータブルソースを定義するためのシンタックスであり、他のビューでも同じソースを使用したい場合は、@EnvironmentObjectプロパティラッパーを使用する必要があります。
4.結合
@Bindingは、既存の真実のソースとビュー間で双方向の接続を作成することで、データの表示および更新を実現します。親または子ビューは、このソースを変更できます。この機能は、DailyScrumを編集するためにも使用されます。ビューがバインディングに変更を加えると、SwiftUIは真実のソースを更新します。
5.アーキテクチャ
バインディングを使用して単一の真実のソースを伝達させるこのパターンは、ビュー階層内の任意の数に対して有効である。
まとめ
今回はビュー間のデータフローを管理する事について学びました。次回は編集ビューの作成をしていきます。