Как правильно обрабатывать состояние представления при разработке под AndroidAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как правильно обрабатывать состояние представления при разработке под Android

Сообщение Anonymous »

В настоящее время в моем приложении используется такой подход:
ViewState(по одному viewState на каждый экран)

Код: Выделить всё

sealed class CategoriesViewState {
object Loading : CategoriesViewState()

data class Error(
val errorMessage: String,
val messageType: UIComponentType
) : CategoriesViewState()

data class CategoryList(
val categories: List
) : CategoriesViewState()
}
И это состояние я наблюдаю в своих фрагментах/активностях, используя живые данные:

Код: Выделить всё

  viewModel.viewState.observe(viewLifecycleOwner, Observer {
when (it) {
is CategoriesViewState.Loading -> {
progress_bar.visibility = View.VISIBLE

Log.d(TAG, "LOADING")
}

is CategoriesViewState.Error -> {
progress_bar.visibility = View.GONE

Log.d(TAG, "ERROR")

}

is CategoriesViewState.CategoryList -> {
progress_bar.visibility = View.GONE

Log.d(TAG, "DATA")

}
}
})
И он работает нормально.
НО мне кажется, что это неэффективно по мере роста приложения.
Предположим, у меня в приложении 20 экранов: мне нужно 20 состояний просмотра, мне нужно написать один и тот же оператор if на каждом экране, мне нужно написать этот уродливый Visible/Gone на каждом экране (не говоря уже о том, что мне нужно устанавливать состояние загрузки при каждом вызове)
Может быть, я совершенно неправ, и это обычный подход, но мне кажется, что МНОГО дублирования кода.
У меня нет конкретного вопроса. Я просто хочу знать, является ли это распространенным подходом в разработке Android, а если нет, что я делаю неправильно в своем код?

Подробнее здесь: https://stackoverflow.com/questions/637 ... -right-way
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»