для представления состояния UI рекомендуется использовать специальные классы по типу
data class LoginUiState(
val isLoading: Boolean = false,
val errorMessage: String? = null,
val isUserLoggedIn: Boolean = false
)
описывающие целиком (если я правильно понял) состояние экрана.
Что-то изменилось, делаешь uiState = uiState.copy(newsItems = newsItems).
То есть целиком меняешь состояние.
Вопрос тем, кто это юзал. Это вообще удобно?
Почему нельзя просто хранить данные как mutableStateOf<T> поля во viewModel по отдельности, не оборачивая из в такой спец. класс ?
Ну вообще зависит от задачи, если у тебя несколько источников данных (например рест и сокеты) то очень часто одни будут зависеть от других, из-за состояния гонки(и прочего) у тебя будут разные исходы в одних и тех же ситуациях, ты будешь писать кучу ифов пытаясь разрулить это всё. Но если у тебя рест с одним запросом на экран, то вряд-ли что-то сломается. Хотя если это например поиск с результатами, пагинацией и свайптурефрешем, то могут быть трудности. Проще загуглить плюсы и минусы udf.
можно и так и так, но наличие единого иммутабельного стейта это офигенно удобно.
по идее эти ифы все равно придется где-то написать, даже если есть UiState класс, в конечном счете надо будет его заполнить (уже после все ифов)
Обсуждают сегодня