для представления состояния 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.
можно и так и так, но наличие единого иммутабельного стейта это офигенно удобно.
 Aleksandr
                          Petrov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Aleksandr
                          Petrov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  по идее эти ифы все равно придется где-то написать, даже если есть UiState класс, в конечном счете надо будет его заполнить (уже после все ифов)
 Aleksandr
                          Petrov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Aleksandr
                          Petrov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Обсуждают сегодня