Talk: Opening the shutter on snapshots

I had so much fun writing about Compose's state system that I decided to give a talk about how the snapshot system's algorithm works. I gave this talk initially at droidcon NYC in 2022, then again the next year at droidcon SF.

Talk: Opening the shutter on snapshots

I gave a follow-up to this talk explaining how derivedStateOf works. Check back here in a few weeks for a link to that.

I've also written a bunch of articles on Compose state, check them out here.

Slides:

Opening the shutter on snapshots (dcSF 23)
Jetpack Compose shows the power of a custom compiler plugin. But not all the magic happens during compilation. A lot of Compose features are based on a …

droidcon sources:

Opening the shutter on snapshots - droidcon
Jetpack Compose shows the power of a custom compiler plugin. But not all the magic happens during compilation. A lot of Compose features are based on a runtime library that doesn’t require any compiler support: the snapshot system. It might seem like magic at first, but it’s just built on top of things you might already know: ThreadLocals, linked lists, and, yes, even regular old callbacks. Once you understand how Compose thinks about state, you might find ways to use its tools in your own code – even outside of Compose.

San Francisco, June 2023

Opening the shutter on snapshots - droidcon
Jetpack Compose shows the power of a custom compiler plugin. But not all the magic happens during compilation. A lot of Compose features are based on a runtime library that doesn’t require any compiler support: the snapshot system. It might seem like magic at first, but it’s just built on top of things you might already know: ThreadLocals, linked lists, and, yes, even regular old callbacks. Once you understand how Compose thinks about state, you might find ways to use its tools in your own code – even outside of Compose.

New York, September 2022