Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Jetpack Compose] 原理から見るSkippable対応

Swimmy
January 18, 2024

[Jetpack Compose] 原理から見るSkippable対応

Swimmy

January 18, 2024
Tweet

More Decks by Swimmy

Other Decks in Programming

Transcript

  1. Composeのフレームワークがやってくれること @Composable fun Title($composer: Composer<*>) { Column(modifier = Modifier.fillMaxWidth(), $composer)

    { Text(“Hello World”, $composer) Button(onClick = { ... }, $composer) } } すべてのcomposable関数にcomposerが渡される ツリー構造をcompose runtimeに伝える
  2. Composeのフレームワークがやってくれること @Composable fun Title($composer: Composer<*>) { Column(modifier = Modifier.fillMaxWidth(), $composer)

    { Text(“Hello World”, $composer) Button(onClick = { ... }, $composer) } } すべてのcomposable関数にcomposerが渡される ツリー構造をcompose runtimeに伝える コードを自由に書き換えられるのはKotlinの恩恵! Javaでこのような柔軟な言語プラグインを作るのが難しい
  3. Composeのフレームワークがやってくれること @Composable fun Title($composer: Composer<*>) { Column(modifier = Modifier.fillMaxWidth(), $composer)

    { Text(“Hello World”, $composer) Button(onClick = { ... }, $composer) } } すべてのcomposable関数にcomposerが渡される ツリー構造をcompose runtimeに伝える コードを自由に書き換えられるのはKotlinの恩恵! Javaでこのような柔軟な言語プラグインを作るのが難しい Compose Runtimeってなに?(再び)
  4. @Composable fun Title($composer: Composer<*>) { $composer.start(123) Column(modifier = Modifier.fillMaxWidth(), $composer)

    { Text(“Hello World”, $composer) Button(onClick = { ... }, $composer) } $composer.end() } Composeのフレームワークがやってくれること
  5. 「Jetpack Compose internals」 https://jorgecastillo.dev/book/ 「Under the hood of Jetpack Compose

    — part 2 of 2」 https://medium.com/androiddevelopers/under-the-hood-of-jetpack- compose-part-2-of-2-37b2c20c6cdd 「KotlinConf 2019: Leland Richardson が解き明かす Compose ランタイム」 https://www.youtube.com/watch?v=6BRlI5zfCCk&t=153s 「Thinking in Compose」 https://developer.android.com/jetpack/compose/mental-model?hl=ja 参考資料
  6. 「Jetpack Compose internals」 https://jorgecastillo.dev/book/ 「Under the hood of Jetpack Compose

    — part 2 of 2」 https://medium.com/androiddevelopers/under-the-hood-of-jetpack- compose-part-2-of-2-37b2c20c6cdd 「KotlinConf 2019: Leland Richardson が解き明かす Compose ランタイム」 https://www.youtube.com/watch?v=6BRlI5zfCCk&t=153s 「Thinking in Compose」 https://developer.android.com/jetpack/compose/mental-model?hl=ja 参考資料 誰か一緒に輪読会しませんか?