Единый источник истины
Избегайте дублирования и рассинхронизации состояния.
«Единый источник истины» — бесплатный урок Jetpack Compose Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Jetpack Compose Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Jetpack Compose Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
One Place for Each Fact
A single source of truth means every piece of state lives in exactly one spot. Everything else reads from it, never copies it.
The Danger of Duplicates
If two Composables each hold their own copy of the same value, they can drift apart. One updates, the other shows stale data. 😬
How Hoisting Helps
Hoisting naturally gives you a single owner. The parent holds the value; children only receive it, so there is nothing to fall out of sync.
Read From the Source
Children should always read from the hoisted value, not from a private copy. When the source changes, every reader updates together.
var query by remember { mutableStateOf("") }
SearchBar(value = query, onValueChange = { query = it })
Results(query = query)Derive, Do Not Duplicate
Need a filtered or formatted version? Derive it from the source instead of storing a second copy that can go stale.
val matches = items.filter { it.contains(query) }derivedStateOf for Heavy Work
When a derived value is expensive, wrap it in derivedStateOf so it recomputes only when its inputs truly change.
val matches by remember {
derivedStateOf { items.filter { it.contains(query) } }
}Two Inputs, One State
Want two fields editing the same data? Point both at the same hoisted state. They share one truth and stay perfectly in sync.
Avoid the Mirror Trap
A common bug is copying a parameter into local state inside an effect. Now you have a mirror that silently goes out of date.
Lift, Do Not Mirror
If a child needs to change shared data, lift the state to a common parent instead of duplicating it. One owner, many readers.
Truth and Testing
A single source makes bugs obvious: there is only one place a value can be wrong, so you know exactly where to look. ✅
The Golden Rule
State should be owned once and shared by reference. Duplicate state is the root of most sync bugs in Compose.
Quick Check
Why is keeping a single source of truth important?
Recap
Keep each fact in one place, read or derive from it, and never mirror it. One source of truth means no drift. 🚀
Часто задаваемые вопросы
Урок «Единый источник истины» бесплатный?
Да — полный текст урока «Единый источник истины» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Jetpack Compose Academy, подпишись на CoddyKit PRO. Курс Jetpack Compose Academy содержит 4 уроков всего.
Чему я научусь в уроке «Единый источник истины»?
Избегайте дублирования и рассинхронизации состояния. Ты практикуешь Jetpack Compose Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Jetpack Compose Academy?
Предыдущий опыт не требуется. Jetpack Compose Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Единый источник истины»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Jetpack Compose Academy?
Да. Каждый урок Jetpack Compose Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Состояние и отсутствие состояния у Composable
- Подъём состояния с value и onValueChange
- Единый источник истины
- Слоты состояния Compose и лямбды содержимого