top of page

7-9 OCT. 2026
BERLIN


( SPEAKER )
Chris Banes
Software Engineer
The Trade Desk
Chris is an engineer who has worked on Android UIs for 10+ years, last working as the Technical Lead of the Client UI Android team at Twitter. He previously worked in the Android Developer Relations at Google, where he worked on libraries in Android Jetpack, most notably AppCompat, Design and Palette.
Session
A (N)ode to Modifiers: The Imperative Side of Declarative Compose
Jetpack Compose is a declarative UI toolkit. Modifiers fit nicely into that model: add one to a chain and it adds some behaviour. That sounds simple, right up until you need to build one yourself.
Something still has to keep state, respond to layout and drawing, manage resources, and tell Compose when work needs to happen again. For modifiers, Modifier.Node is where much of that imperative work lives.
I’ve spent a lot of time in this part of Compose while building Haze, a visual-effects library for Compose Multiplatform. Haze’s public API is a couple of modifiers, but behind them is a rendering system which captures content, tracks coordinates, retains graphics layers, and coordinates source and effect nodes.
In this talk, we’ll use real problems from Haze to explore state ownership, lifecycle, ordering, and invalidation. You’ll leave with a better understanding of the imperative machinery underneath Compose’s declarative APIs, and a practical way to decide when Modifier.Node is worth the extra complexity.
bottom of page
