Size: a a a

Cicerone Chat (RUS)

2018 December 05

VC

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

getViewState().goToSomeScreen()

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

W

WaterSmith in Cicerone Chat (RUS)
Alexey Pushkarev
ну, по крайне мере я помню Юра упомянал, что кому-то не понравилось то, что командами мокси приходилось приходилось из презентера дергать вьюху для перехода, типо:

getViewState().goToSomeScreen()

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

AP

Alexey Pushkarev in Cicerone Chat (RUS)
Vasili Chyrvon
Ну я же знаю как это происходило :)
Буфер появился как логичный ответ на проблему вызова перехода по действию в презентере когда вью мертва.
Поэтому и говорю, что Мокси тут ни при чем. Максимум при том, что Мокси предоставлял как раз переживающий повороты презентер. За что спасибо, кстати 😊.
только вот почему нет возможности потерять команду навигации? Если вью мертва, то и пусть команда теряется, значит ее не надо выполнять. По аналогии со стратегиями команд в мокси. Бывают кейсы когда юзер не ожидает что переход таки произойдет)
источник

AP

Alexey Pushkarev 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
Короче не надо обрабатывать - не кидай команду. А терять это нехорошо 😉
нуу, мб. В андроиде с этим лайфсайклом много граблей протоптано и выстрелов в ногу сделано.🤔 Бывали у меня случаи, что команда попадала в итоге не в тот навигатор, с навигацией на активити.
источник

VC

Vasili Chyrvon in Cicerone Chat (RUS)
Alexey Pushkarev
нуу, мб. В андроиде с этим лайфсайклом много граблей протоптано и выстрелов в ногу сделано.🤔 Бывали у меня случаи, что команда попадала в итоге не в тот навигатор, с навигацией на активити.
По моему это старый и уже давно решённый исшу.
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
@Jeevuz  не ведись на провокации) тем более такие! пусть думают, что хотят - какая разница 😂
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
там с библиотекой-то разобраться сначала надо, а потом сравнивать с чем-то еще
источник

AD

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

ПС. Контейнер - это та сущность из Android SDK, внутри которого властвует Navigator
@terrakok может вы мою дилемму почините?
источник
2018 December 06

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
Обязательно завтра вчитаюсь 👍
источник

VC

Vasili Chyrvon in Cicerone Chat (RUS)
Konstantin Tskhovrebov
@Jeevuz  не ведись на провокации) тем более такие! пусть думают, что хотят - какая разница 😂
Ахах, да я ж не ведусь 😁. Заметил заблуждение, грех было не поправить. Это ж почти моя специализация 😄.
источник

D

Dmitry in Cicerone Chat (RUS)
Если навигация должна происходить в презентере, то почему в примере с bottom навигацией Cicerone и в гитфоксе перелючение табов происходит во фрагменете без роутера? https://gitlab.com/terrakok/gitlab-client/blob/develop/app/src/main/java/ru/terrakok/gitlabclient/ui/main/MainFlowFragment.kt#L55
Можно конечно посчитать что в данном случае это такая простоя вьюха, и вроде никакой бизнес логики в этом нет, но скажем сделаете вы переключение аккаунта в дравере и вам надо будет все экраны сбрасывать после выбора другого аккаунта.
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
Aleksey Dolgiy
@terrakok может вы мою дилемму почините?
Не вижу дилеммы. Чичероне вам предоставляет свою абстракцию и инструмент работы с ней. Если вы считаете иначе, никто вам не будет навязывать свое мнение.
Архитектура - это просто набор договоренностей. Везде она может быть своя (и так и есть).
источник

AT

Alexander Taran in Cicerone Chat (RUS)
Dmitry
Если навигация должна происходить в презентере, то почему в примере с bottom навигацией Cicerone и в гитфоксе перелючение табов происходит во фрагменете без роутера? https://gitlab.com/terrakok/gitlab-client/blob/develop/app/src/main/java/ru/terrakok/gitlabclient/ui/main/MainFlowFragment.kt#L55
Можно конечно посчитать что в данном случае это такая простоя вьюха, и вроде никакой бизнес логики в этом нет, но скажем сделаете вы переключение аккаунта в дравере и вам надо будет все экраны сбрасывать после выбора другого аккаунта.
На сколько я понял, для bottomNavigation чичерон не подходит, по крайней мере стандартные классы
источник

AT

Alexander Taran in Cicerone Chat (RUS)
Можно сделать, если написать свой навигатор, роутер и команду
источник

D

Dmitry in Cicerone Chat (RUS)
Ну т.е. простыми словами - сделали ее как было проще сделать. Не стали для этого кастомный роутер городить.
источник

EA

Egor Aganin in Cicerone Chat (RUS)
Нормально cicerone работает с bottomNaviation, нужно просто правильно готовить.
источник

D

Dmitry in Cicerone Chat (RUS)
Egor Aganin
Нормально cicerone работает с bottomNaviation, нужно просто правильно готовить.
Как в гитфоксе например?
источник