Size: a a a

Cicerone Chat (RUS)

2017 February 07

AP

Alexey Pushkarev in Cicerone Chat (RUS)
если мне нужно будет передавать другие аргументы я могу сделать ещё статик метод args с другими параметрами и их также складывать в Bundle. Во фрагменте правда уже придется разруливать какие аргументы пришли.
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
поэтому класс initParams лучше
источник

AP

Alexey Pushkarev in Cicerone Chat (RUS)
Konstantin Tskhovrebov
поэтому класс initParams лучше
и его класть в бандл? т.е. имеете ввиду отвязаться от бандл чтобы нельзя было что угодно туда класть?
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
чтобы в метод newInstance шел конкретный класс параметров, а не общий
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
именно
источник

AP

Alexey Pushkarev in Cicerone Chat (RUS)
В докладе я видел вам задавали вопрос о том, почему параметры Object, ведь можно что угодно передать, класс касты и т д, но я тоже не представляю как сделать лучше.
источник

VC

Vasili Chyrvon in Cicerone Chat (RUS)
router.navigateTo(Screens.EDIT_PROJECT_SCREEN, EditProjectFragment.args(...

Вот эта строка явно показывает, что абстракция над фрагментами начинает что-то много знать о том куда она идет. Мы говорим, что это скрин, и тут же говорим какой именно скрин. И если придется менять что-то, то придется не только в создании фрагов менять, но и тут.
Это связанность кода.
При использовании Object или маркер интерфейса этого не будет. Будут передаваться данные. И не будет видно кому и куда они пойдут. Если вдруг понадобится открывать другой фраг, то придется только поменять тот фраг и его newInstance метод.
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
да. и поменять с фрагмента на активити затронет только Вью в концепции MVP, а не все запускающие презентеры
источник

AP

Alexey Pushkarev in Cicerone Chat (RUS)
Vasili Chyrvon
router.navigateTo(Screens.EDIT_PROJECT_SCREEN, EditProjectFragment.args(...

Вот эта строка явно показывает, что абстракция над фрагментами начинает что-то много знать о том куда она идет. Мы говорим, что это скрин, и тут же говорим какой именно скрин. И если придется менять что-то, то придется не только в создании фрагов менять, но и тут.
Это связанность кода.
При использовании Object или маркер интерфейса этого не будет. Будут передаваться данные. И не будет видно кому и куда они пойдут. Если вдруг понадобится открывать другой фраг, то придется только поменять тот фраг и его newInstance метод.
Вы предлагаете сделать класс InitParams и передавать его? Т.е. как-то так:
router.navigateTo(Screens.EDIT_PROJECT_SCREEN, new InitParams(mProjectReport, mAdvancedStatusReports, mForecastStatusReport))
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
да. только этот класс лежит в каком-то презентере обычно и там будет
SomePresenter.InitParams(...)
источник
2017 February 10

DC

Denis Chuvasov in Cicerone Chat (RUS)
Зацените моего монстрика)) https://gist.github.com/dened/386e48960d94f3d2599ec61068f21bad
источник

DC

Denis Chuvasov in Cicerone Chat (RUS)
суть решения. Это когда у нас навигация идет внутри активити с помощью фрагментов, но нам также необходимо запускать отдельные активити
источник

DC

Denis Chuvasov in Cicerone Chat (RUS)
нужна критика))
источник

IK

Igor Komarov in Cicerone Chat (RUS)
Но ведь отдельные активности можно, и иногда - нужно, запускать из самих фрагментов
источник

DC

Denis Chuvasov in Cicerone Chat (RUS)
ну тут у меня рулится различными роутерами
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
..
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
..
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
. стоп. еще разбираюсь)
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
😉
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
критика запутанности кода)
навигатор делегирует вызовы внутреннему, а внутренний навигатор делигирует вызовы своему холдеру...

я бы сделал (а точнее уже сделал) навигатор, который наследуется от стандартного, но на эпплайКоманд проверяет, надо ли вызвать супер или надо переключить активити.
так проще и понятнее.

а вообще молодец)
источник