Sobes.tech
Назад к вопросам
Junior — Middle
69

Как реализовать паттерн MVVM в приложениях, использующих Jetpack Compose для UI

Ответ от нейросети

sobes.tech AI

В Jetpack Compose паттерн MVVM реализуется с помощью разделения на:

  • Model — бизнес-логика и данные.
  • ViewModel — хранит состояние UI и обрабатывает логику взаимодействия.
  • View (Compose UI) — отображает данные и реагирует на изменения состояния.

Пример:

class MyViewModel : ViewModel() {
    // Состояние UI, например, текстовое поле
    var text by mutableStateOf("")
        private set

    fun onTextChanged(newText: String) {
        text = newText
    }
}

@Composable
fun MyScreen(viewModel: MyViewModel = viewModel()) {
    val text = viewModel.text
    TextField(
        value = text,
        onValueChange = { viewModel.onTextChanged(it) },
        label = { Text("Введите текст") }
    )
}

Здесь ViewModel содержит состояние и методы для его изменения. Compose UI подписывается на состояние через mutableStateOf, автоматически обновляясь при изменениях.

Такой подход обеспечивает чистое разделение ответственности и упрощает тестирование.