# Compose State Series

Published articles for Compose State Series.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Talk: Deriving derived state: derivedStateOf explained

DevFeed: [Talk: Deriving derived state: derivedStateOf explained](<https://devfeed.tech/articles/talk-deriving-derived-state-derivedstateof-explained-30534.md>)

Original publisher: [Read original article](<https://blog.zachklipp.com/talk-deriving-derived-state-derivedstateof-explained/>)

Author: Zach Klippenstein

Published: 2024-07-17T18:53:00Z

Content type: tutorial

Language: en

Sources: [Zach Klippenstein's Blog](<https://devfeed.tech/sources/zach-klippenstein-s-blog.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Compose](<https://devfeed.tech/topics/compose.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [article](<https://devfeed.tech/tags/article.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-state-series](<https://devfeed.tech/tags/compose-state-series.md>), [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [droidcon](<https://devfeed.tech/tags/droidcon.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [talks](<https://devfeed.tech/tags/talks.md>)

### AI overview

A deep dive into how Jetpack Compose's derivedStateOf works, presented as a follow-up to an earlier talk about Compose snapshots.

### Source excerpt

As a follow-up to my last snapshots talk, Opening the Shutter on Snapshots, I did a deep-dive into how Compose's derivedStateOf works.

## How derivedStateOf Works in Jetpack Compose's Snapshot System

DevFeed: [How derivedStateOf Works in Jetpack Compose's Snapshot System](<https://devfeed.tech/articles/how-derivedstateof-works-a-deep-d-er-ive-30529.md>)

Original publisher: [Read original article](<https://blog.zachklipp.com/how-derivedstateof-works-a-deep-d-er-ive/>)

Author: Zach Klippenstein

Published: 2024-07-16T16:58:52Z

Content type: tutorial

Language: en

Sources: [Zach Klippenstein's Blog](<https://devfeed.tech/sources/zach-klippenstein-s-blog.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [reactive](<https://devfeed.tech/topics/reactive.md>), [Library](<https://devfeed.tech/topics/library.md>), [factory function](<https://devfeed.tech/topics/factory-function.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-state-series](<https://devfeed.tech/tags/compose-state-series.md>), [function](<https://devfeed.tech/tags/function.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [reactive](<https://devfeed.tech/tags/reactive.md>), [snapshots](<https://devfeed.tech/tags/snapshots.md>), [state](<https://devfeed.tech/tags/state.md>)

### AI overview

This tutorial explains how derivedStateOf works within Jetpack Compose's reactive snapshot system. It introduces the returned object, related concepts such as restartable functions and state dependencies, and the role of state-derived calculations, using Compose source code and examples.

### Source excerpt

Compose's snapshot system is really neat. Once you know how it works, you can do some cool tricks with it, and derivedStateOf is a rich example

## Restartable functions from first principles

DevFeed: [Restartable functions from first principles](<https://devfeed.tech/articles/restartable-functions-from-first-principles-30533.md>)

Original publisher: [Read original article](<https://blog.zachklipp.com/restartable-functions-from-first-principles/>)

Author: Zach Klippenstein

Published: 2024-07-12T02:38:58Z

Content type: tutorial

Language: en

Sources: [Zach Klippenstein's Blog](<https://devfeed.tech/sources/zach-klippenstein-s-blog.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Code](<https://devfeed.tech/topics/code.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [callback](<https://devfeed.tech/tags/callback.md>), [compose-state-series](<https://devfeed.tech/tags/compose-state-series.md>), [function](<https://devfeed.tech/tags/function.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [lambda](<https://devfeed.tech/tags/lambda.md>), [modifiers](<https://devfeed.tech/tags/modifiers.md>), [snapshot](<https://devfeed.tech/tags/snapshot.md>), [state](<https://devfeed.tech/tags/state.md>)

### AI overview

This tutorial explains how restartable functions work in Jetpack Compose. It describes how callers track state objects read by a function, observe changes, and re-execute or schedule the function when relevant state changes.

### Source excerpt

Often when thinking about Jetpack Compose state, we think in terms of what code will be re-executed when that state changes. We call functions

## Talk: Opening the shutter on snapshots

DevFeed: [Talk: Opening the shutter on snapshots](<https://devfeed.tech/articles/talk-opening-the-shutter-on-snapshots-30535.md>)

Original publisher: [Read original article](<https://blog.zachklipp.com/talk-opening-the-shutter-on-snapshots/>)

Author: Zach Klippenstein

Published: 2022-09-02T07:00:00Z

Content type: article

Language: en

Sources: [Zach Klippenstein's Blog](<https://devfeed.tech/sources/zach-klippenstein-s-blog.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-state-series](<https://devfeed.tech/tags/compose-state-series.md>), [droidcon](<https://devfeed.tech/tags/droidcon.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [talk](<https://devfeed.tech/tags/talk.md>), [talks](<https://devfeed.tech/tags/talks.md>)

### AI overview

A talk about how Jetpack Compose's snapshot system algorithm works, including discussion of derivedStateOf. The talk was presented at droidcon NYC in 2022 and droidcon SF the following year.

### Source excerpt

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.

## Implementing snapshot-aware data structures

DevFeed: [Implementing snapshot-aware data structures](<https://devfeed.tech/articles/implementing-snapshot-aware-data-structures-30531.md>)

Original publisher: [Read original article](<https://blog.zachklipp.com/implementing-snapshot-aware-data-structures/>)

Author: Zach Klippenstein

Published: 2022-05-13T14:10:00Z

Content type: tutorial

Language: en

Sources: [Zach Klippenstein's Blog](<https://devfeed.tech/sources/zach-klippenstein-s-blog.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-state-series](<https://devfeed.tech/tags/compose-state-series.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [data-structures](<https://devfeed.tech/tags/data-structures.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>)

### AI overview

A tutorial explaining how Compose's snapshot system can expose different values to different snapshots. It develops snapshot-aware data structures from basic concepts and connects the underlying approach to multi-version concurrency control (MVCC).

### Source excerpt

Up to this point in this blog series, I've discussed how to use Compose's snapshot state system, some advantages of how it's designed, and the