Decomposing Compose
summary
Shows how Jetpack Compose actually turns Kotlin UI functions into bytecode: the compiler plugin injects extra parameters (a Composer and an int), emits startRestartGroup/endRestartGroup calls and bitmask flags, and the runtime stores UI nodes in a gap buffer to skip or recompose only changed groups. Uses IntelliJ, javap -v -p and Kotlin compiler inspection to reproduce a button+counter example and explain why JaCoCo sees mysterious branches; investigation reproduces the issue but the JaCoCo ticket remains unfixed.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 4:26What is Compose
- 12:54Jacoco issues with Compose
- 21:55Compose components
- 25:04Compose bytecode changes
- 31:57Parameters and states in Compose
- 39:46Default parameters in Compose
- 44:18Lambdas and control flow in Compose
- 47:50Compose redraw optimization
- 51:01Bytecode analysis importance
- 53:53Q&A
related talks
19mJumping into Jetpack Compose way too early to see what's inside
29mA Hitchhiker's Guide to Compose Compiler: Composers, Compiler Plugins, and Snapshots
28mA Hitchhiker's Guide to Compose Compiler: Composers, Compiler Plugins, and Snapshots
40mJetpack Compose Mechanisms
40mThe Compose Runtime, Demystified
01h 00mJetpack Compose - Next Gen Kotlin UI Toolkit for Android
27mInside Jetpack Compose
32mJetpack Compose — Next Gen Kotlin UI Toolkit for Android
