Jetpack AppState (StateStore and Transform) is a suite of libraries for managing, sharing, and transforming application state across Android components and UI surfaces. This repository contains recipes demonstrating how to use its APIs to implement common state management use cases. Each recipe introduces a single concept.
Recipes on the main branch use a pinned snapshot build, bumped regularly, of AppState.
These are the recipes and what they demonstrate.
Recipes coming soon.
- Debounce: Demonstrates how to debounce rapidly changing state (such as search queries) using
DebounceEffectandrememberDebounced. - Sample: Demonstrates how to periodically sample high-frequency state streams (such as accelerometer sensor data) using
SampleEffectandrememberSampled.
The most upvoted recipe requests will be considered for implementation. Don't see your recipe? File a request for one here.
Clone this repository and open the root folder in Android Studio. Each recipe is contained in its own package with its own Activity and README.md.
If the issue is directly related to this project, as in, it's reproducible without modifying this project's source code, then please file an issue on GitHub. If you've found an issue with the Jetpack AppState libraries (StateStore or Transform), please file an issue on the issue tracker.
We'd love to accept your contributions. Please follow these instructions.
Copyright 2026 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.