8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめに

本記事は 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のテストを劇的に見やすくする」です。

参考リンク

8
3
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
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?