Size: a a a

Android Architecture

2021 May 30

IN

Ilya Nikolaev in Android Architecture
А зачем делить?)
источник

AI

Arkadii Ivanov in Android Architecture
Чтобы был ssot и была консистентность
источник

AI

Arkadii Ivanov in Android Architecture
источник

IN

Ilya Nikolaev in Android Architecture
Зачем делить состояние и хранить их в разных слоях и классах?
источник

JF

Jorik Fat in Android Architecture
у меня есть похожий кейс, с историей поиска. Там у меня запросы связаны с результатом. И реализована история, когда выбором предыдущего запроса чиститься все, что было выше него

Но все это происходи внутри одного класса
источник

JF

Jorik Fat in Android Architecture
в этом примере исходный settings хранится вне памяти
источник

AI

Arkadii Ivanov in Android Architecture
Да, всё состояние целиком хранится в памяти, в одном месте и в одном классе, в единственном экземпляре.
источник

AI

Arkadii Ivanov in Android Architecture
Изименить состояние можно только в одном месте - в редьюсере. Ну это если MVI/TEA и т.д.
источник

JF

Jorik Fat in Android Architecture
Я так понимаю, что когда пользователь нажимает "отмена" он возвращается назад в навигации. А что еслибы ему нужно было показать исходное состояние (без возврата)?
источник

IN

Ilya Nikolaev in Android Architecture
Что напишешь то и будет. Ничего автоматические не произойдет, ты сам пишешь поведение. Вернешь туда , куда надо.
источник

AI

Arkadii Ivanov in Android Architecture
Тогда надо заменить editing на содержимое из settings
источник

AI

Arkadii Ivanov in Android Architecture
В моём случае факт наличия editing (!= null) одзначает видимость диалога с полями ввода
источник

JF

Jorik Fat in Android Architecture
а если settings из сети берется? (как с профилем)
источник

AI

Arkadii Ivanov in Android Architecture
У меня из базы например, принцип тот же. Сначала загружаем, потом храним
источник

JF

Jorik Fat in Android Architecture
и при каждой "отмене" открывать базу?
источник

AI

Arkadii Ivanov in Android Architecture
Нет. Один раз загружаем из базы в settings. Когда надо начать редактирование - компируем из settings в editing. Отмена - снова копируем. Применить, копируем в обратную сторону и записываем в базу.
источник

JF

Jorik Fat in Android Architecture
тогда почему settings и editing это 1 состояние, когда их 2
источник

AI

Arkadii Ivanov in Android Architecture
Потому что эти два "подсостояния" лежат в одном общем классе State, и его измение контролируется одной единственной функцией.
источник

JF

Jorik Fat in Android Architecture
вот теперь понял
источник

AI

Arkadii Ivanov in Android Architecture
Кроме того, обеспечивается атомарность изменения и чтения состояния.
источник