Android / Kotlin / Programming

ザクっと理解する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の公式ドキュメントにあるのでこちらをご覧ください。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です