Size: a a a

Cicerone Chat (RUS)

2018 December 05

AD

Aleksey Dolgiy in Cicerone Chat (RUS)
Alexey Pushkarev
Да не, его задача координировать Вью с бизнес логикой. Навигация по сути бизнес логика, вот он и делегирует переход роутеру.
Меня в этом моменте смущает то, что presenter с помощью методов Router'а решает, КАК именно осуществить переход, а не Navigator.
источник

AP

Alexey Pushkarev in Cicerone Chat (RUS)
WaterSmith
как то низкоуровнево делегирует, с командами типа  newRootScreen. Могу с вами согласится, при условии если мы сделаем более умный роутер, который сам будет решать, что делать по команде newRootScreen
Можно сделать абстракцию над роутером, с методами navigateToLoginScreen, navigateToSettingsScreen и т д.
источник

W

WaterSmith in Cicerone Chat (RUS)
Alexey Pushkarev
Можно сделать абстракцию над роутером, с методами navigateToLoginScreen, navigateToSettingsScreen и т д.
вот вот, я об этом, тогда всё сходится, так я согласен =)
источник

AP

Alexey Pushkarev in Cicerone Chat (RUS)
Aleksey Dolgiy
Меня в этом моменте смущает то, что presenter с помощью методов Router'а решает, КАК именно осуществить переход, а не Navigator.
Navigator просто по сути кишки андроида скрывает
источник

AP

Alexey Pushkarev in Cicerone Chat (RUS)
Ну и вообще он же непосредственно переход делает, стартует активити или транзакцию фрагмента коммитит
источник

W

WaterSmith in Cicerone Chat (RUS)
Aleksey Dolgiy
Меня в этом моменте смущает то, что presenter с помощью методов Router'а решает, КАК именно осуществить переход, а не Navigator.
Алексей, что скажешь? "умный" роутер, решит твою дилемму?
источник

AD

Aleksey Dolgiy in Cicerone Chat (RUS)
Alexey Pushkarev
Navigator просто по сути кишки андроида скрывает
Да, но именно те кишки и знают, КАК стоило бы обработать тот или иной экран - этот положить в подконтрольный контейнер в качестве корня или на верхушку стека, а этот - делегировать вверх по иерархии контейнеров.

ПС. Контейнер - это та сущность из Android SDK, внутри которого властвует Navigator
источник

AD

Aleksey Dolgiy in Cicerone Chat (RUS)
WaterSmith
Алексей, что скажешь? "умный" роутер, решит твою дилемму?
Скорее то, что выше описал.
источник

W

WaterSmith in Cicerone Chat (RUS)
стоп, у меня опять сомнения, а если в тандеме с Мокси? Ведь если презентер отдаст команду не вью-стейту, а роутеру, то эта команда не попадет в стек команд... что с этим делать?
источник

AD

Aleksey Dolgiy in Cicerone Chat (RUS)
WaterSmith
стоп, у меня опять сомнения, а если в тандеме с Мокси? Ведь если презентер отдаст команду не вью-стейту, а роутеру, то эта команда не попадет в стек команд... что с этим делать?
У Cicerone своя очередь есть
источник

W

WaterSmith in Cicerone Chat (RUS)
хотя, у чичероне вроде на этот случай свой стек команд
источник

W

WaterSmith in Cicerone Chat (RUS)
да тоже вспомнил
источник

W

WaterSmith in Cicerone Chat (RUS)
ладно, надо на конкретике смотреть
источник

AP

Alexey Pushkarev in Cicerone Chat (RUS)
идея команд чичероне отчасти и была скопирована с мокси
источник

VC

Vasili Chyrvon in Cicerone Chat (RUS)
Alexey Pushkarev
идея команд чичероне отчасти и была скопирована с мокси
Waaaat? Общего в командах Чичероне и Мокси только название.
источник

AP

Alexey Pushkarev in Cicerone Chat (RUS)
Vasili Chyrvon
Waaaat? Общего в командах Чичероне и Мокси только название.
Сам принцип работы, отложенность выполнения до готовности вьюхи.
источник

VC

Vasili Chyrvon in Cicerone Chat (RUS)
Буфер решает ту же проблему, что и аналогичный механизм в Мокси. Одинаковые проблемы просто часто ведут к похожим решениям.
источник

VC

Vasili Chyrvon in Cicerone Chat (RUS)
Просто это никак совсем не было копированием Мокси.
источник

VC

Vasili Chyrvon in Cicerone Chat (RUS)
Просто в Андроиде вьюхи дохнуть умеют и всем приходится с этим жить 😉
источник

AP

Alexey Pushkarev in Cicerone Chat (RUS)
Vasili Chyrvon
Просто это никак совсем не было копированием Мокси.
ну, по крайне мере я помню Юра упомянал, что кому-то не понравилось то, что командами мокси приходилось приходилось из презентера дергать вьюху для перехода, типо:

getViewState().goToSomeScreen()

С учетом, что там еще стратегии намешаны, то можно это легко можно было случайно сломать. Да и вообще навигация н задача вьюхи. Ну и очевидно было сделать отдельную сущность для навигации, чем и стал роутер с буффером команд. Только щепотка магии с кодогенерацией не потребовалась 😏😉
источник