Назад к вопросам
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, автоматически обновляясь при изменениях.
Такой подход обеспечивает чистое разделение ответственности и упрощает тестирование.