Size: a a a

Android Architecture

2020 September 28

GR

Gor Rushanyan in Android Architecture
долго ждать что-то, та компоуз это ж про интерфейс больше, в идеале все что ниже вообще изменяться не должно
источник

JF

Jorik Fat in Android Architecture
Добрый день, есть ли нарушения архитектурных принципов, в таком методе?
Presenter{
   State getState();
}
Где- то тут видел, что Presenter всегда должен возвращать void, но не понимаю, чем это обусловленно
источник

P

Pavel in Android Architecture
Однозначно есть. Презентер не должен возвращать state
источник

NT

Nikita Tipun in Android Architecture
Jorik Fat
Добрый день, есть ли нарушения архитектурных принципов, в таком методе?
Presenter{
   State getState();
}
Где- то тут видел, что Presenter всегда должен возвращать void, но не понимаю, чем это обусловленно
В принципе ни что не мешает вам так сделать, но в таком случае получается что появляется лишняя логика во вью, а её лучше держать как можно тупее. Плюс получается явная зависимость на презентер. Кажется в таком случае лучше все же чтобы у вью был метод displayState(State) и отрабатывать Стейт уже там. То есть чтобы презентер пинал вью
источник

P

Pavel in Android Architecture
Jorik Fat
Добрый день, есть ли нарушения архитектурных принципов, в таком методе?
Presenter{
   State getState();
}
Где- то тут видел, что Presenter всегда должен возвращать void, но не понимаю, чем это обусловленно
В презентере не должно быть ничего кроме onУВьюЧтоЧтоСлучилось()
источник

JF

Jorik Fat in Android Architecture
у меня подключаются Fragment'ы через viewPager, и они должны отобразить части текущей модели (цвет и иконка).
Presenter делается платформо-независимым  и дазайно-независимым (будет перенос на другую платформу)
Когда создается Activity - фрагменты еще не подключены к ней, поэтому в onResume() не могут получить вызов showColor()/showIcon()
источник

P

Pavel in Android Architecture
onResume() делегируй презентеру. И уже презентер дёрнет методы вьюшки для установки состояния
источник

ES

Egor Sigolaev in Android Architecture
Jorik Fat
Добрый день, есть ли нарушения архитектурных принципов, в таком методе?
Presenter{
   State getState();
}
Где- то тут видел, что Presenter всегда должен возвращать void, но не понимаю, чем это обусловленно
Единственное, что может возвращать презентер это подготовленные данные, которые сразу юзаются во вью, но никак не обрабатываются там.
источник

CN

Chucky Noon in Android Architecture
Pavel
В презентере не должно быть ничего кроме onУВьюЧтоЧтоСлучилось()
А если мне в oncreate нужно инициализировать рекуклер, а для этого вызвать презентер и т.д,то как назвать метод для этого?
источник

P

Pavel in Android Architecture
onViewCreated()
источник

CN

Chucky Noon in Android Architecture
Аа, логично
источник

CN

Chucky Noon in Android Architecture
Ребят, не могу понять, мы ведь в презентер выносим всю логику, а в представлении оставляем только функции для изменения ui, но тогда почему автор в статье по mvp пишет такой код в активити...
источник

CN

Chucky Noon in Android Architecture
Разве это не логика?
источник

P

Pavel in Android Architecture
Думаю, тут действительно не правильно. Эту логику лучше вынести в презентер
источник

CN

Chucky Noon in Android Architecture
Боже, как тут вообще разобраться, в статьях по mvp все предлагают разные архитектуры и подходы, ещё и ошибки.
источник

P

Pavel in Android Architecture
Для MVP используй библиотеку Moxy. Она не даст накосячить :)
источник

CN

Chucky Noon in Android Architecture
Подскажи ещё, пожалуйста, в примере выше, как нам передать drawer и прочие компоненты view в презентер. Через аргументы соответствующего метода в презентере, или новую функцию в view писать?
источник

P

Pavel in Android Architecture
Drawer, как и другие View ни в коем случае не надо передавать в презентер.
Это должно быть примерно так:
View.onBackPressed() { presenter.onBackPressed() }

Presenter.onBackPressed() {
  view.closeDrawer()
}

View.closeDrawer() {
 /// Найти Drawer и закрыть
}
источник

Kd

Konstantin dmz9 in Android Architecture
стэйт дровера передай а не его самого, даже если это просто флаг
источник

CN

Chucky Noon in Android Architecture
Да, это я понимаю, нов примере выше чел проверяет состояние drawer, чтобы дальше че-то делать . Мы не можем перенести эту строчку в презентер, но и не можем оставить во view
источник