TGViewer
Мобильная разработка #1 Мобильная разработка #1 @developer_mobila · 3.81K subscribers
Post #1613 915
Bonsai 🌳 — небольшая библиотека для управления состоянием во ViewModel

Bonsai — это крошечная библиотека управления состоянием без зависимостей, созданная специально для использования во ViewModel. Она облегчает реализацию однонаправленного потока данных (unidirectional data flow) и отделяет логику управления состоянием от UI и бизнес-логики.

Особенности
- Однонаправленный поток данных
- Без внешних зависимостей
- Простота в использовании
- Небольшой размер
- Объединяется с Kotlin Coroutines и Jetpack Compose

Пример использования


class CounterViewModel : BonsaiViewModel<CounterState>(CounterState()) {
fun increment() = reduce { state -> state.copy(count = state.count + 1) }
fun decrement() = reduce { state -> state.count.takeIf { it > 0 }?.let { state.copy(count = it - 1) } ?: state }
}

data class CounterState(val count: Int = 0)


И затем, в Compose:


val state by viewModel.state.collectAsState()
Text("Count: ${state.count}")


https://github.com/adrielcafe/bonsai

#Android

👉 @developer_mobila
  • 👍 2
More from @developer_mobila
  1. Sep 14, 2026Как разрабатывать приложения для iPhone на iPad Звучит как противоречие: iPad стал вполне…
  2. Aug 24, 2026🧪 Как заставить XCUITest работать с интерфейсом глубиной более 100 уровней Инженеры Циана…
  3. Jul 25, 2026🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.r…
  4. Jul 8, 2026🕵️‍♂️ «Я спрятал ключ в константу»: Как Джуны дарят доступы хакерам Вы интегрировали крут…
  5. Jun 25, 2026👾 Androguard: Швейцарский нож для реверс-инжиниринга Android Если вы занимаетесь пентесто…
  6. Jun 22, 2026Живой космос на Metal: как я переписывал фон мобильной игры и поднимал FPS с 20 до 120 В м…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →