ザクっと理解するAndroid Composable(コンポーザブル)
@Composable(コンポーザブル)とは
Jetpack Composeに対して、ある関数がデータをUIに表示するための関数だと伝えるアノテーション(ラベル付)です。
このアノテーションのある関数をコンポーザブル関数(composable functions)もしくはコンポーザブル(composable)と呼びます。
@Composable
fun SayHello(name: String) {
Text(
text = "Hello $name!"
)
}
このSayHello()関数は@Composableアノテーションがされているためコンポーザブル関数(もしくはコンポーザブル)と呼びます。
このコンポーザブルが再描画されることを再コンポーズと呼びます。
再コンポーズについて
@Composable
fun SayHello(name: String) {
Text(
text = "Hello $name!"
)
}
@Composable
fun SayHi(nickname: Int) {
Text(
text = "Hi $nickname!"
)
}
このコンポーザブルの呼び出し元でnameの値を更新するたびに、SayHello()コンポーザブルも呼び出されて再描画されます。
その際、nameの変更に依存していない(パラメータとして受け取っていない)SayHi()コンポーザブルは呼び出されません。
このように更新された際に、再描画が必要な関数やラムダのみを呼び出し、不要な部分はスキップする可能性があります。
また、アニメーションのレンダリングなどでフレームごとに何度も呼び出される可能性もあります。
そのためコンポーザブル内で、例えばグローバル変数への書き込みなどの他の箇所に影響を与えるような変更(副作用)を加えてはいけません。
注意点
上記のようにコンポーズを使用する際の注意点がいくつかあります。
詳しくはAndroidの公式ドキュメントにあるのでこちらをご覧ください。
コメント