はじめに
本記事は Android Advent Calendar 2022 の1日目の記事です。
1日目から空いていたので、急きょ埋めました。
状態ホイスティングについて説明します。
「状態ホイスティング」とは?
英語で「state hoisting」といいます。
状態をコンポーザブル(ビュー)の呼び出し元に移動して、コンポーザブル自体をステートレスにするプログラミングパターンのことです。
「表示する現在の値」と「値を変更するイベント( (T) -> Unit
)」をコンポーザブルへ渡し、値を「コピー」するのでなく「移動」することで、信頼できる唯一の情報源を実現できます。
状態ホイスティングのメリット
TBD
おわりに
急きょ書いたので、公式ドキュメントより中身が薄いです、、
後ほど編集したいと思うのでお許しください。
最初に状態ホイスティングを知ったときは感動しました。
私はiOSアプリ開発がメインなので、SwiftUIでも適用できないか試したのですが、なかなか難しかったです。
Jetpack Composeは関数でUIを構築し、状態を保持できないのに対し、SwiftUIは構造体でUIを構築し、状態を保持させる構造になっているのが難点でした。
以上 Android Advent Calendar 2022 の1日目の記事でした。
明日は @waterada さんで「Android UnitTestでR.stringのテストを劇的に見やすくする」です。