Size: a a a

2018 August 01

DS

Dmitry Subbotenko in RxPM
Кстати я смотрю, что RxPm не заморачиваясь хранит ViewModels в сигнлтоне.
источник

VC

Vasili Chyrvon in RxPM
"не заморачиваясь" ;))))))
источник

A

Andrey in RxPM
Ряяя это не вьюмоделы там
источник

VC

Vasili Chyrvon in RxPM
Ты глянь логику в Outlast )))
источник

DS

Dmitry Subbotenko in RxPM
в нее и смотрю.
источник

VC

Vasili Chyrvon in RxPM
Короче очень даже заморачиваясь 😉
источник

DS

Dmitry Subbotenko in RxPM
ну ок. Там много кода. Но это не отменяет того факта что в конце синглтон.
источник

VC

Vasili Chyrvon in RxPM
Там же куча кейсов про убийство фрагов. Ну собственно говоря логика такая же как в Мокси. Тк мы были причастны и там к этому.
источник

VC

Vasili Chyrvon in RxPM
Конечно. Синглтоны это же ок, если нормально их использовать. По месту.
источник

DS

Dmitry Subbotenko in RxPM
ок. Меня больше интересует первый вопрос сейчас
источник

DS

Dmitry Subbotenko in RxPM
Есть ли возможность обмена событиями между 2 ViewModel которые идеологически связаны между собой?
источник

DG

Dmitriy Gorbunov in RxPM
Dmitry Subbotenko
Привет чат.

Есть проблема. Есть 2 вьюшки. Фрагмент, и его чайлд. У обоих 2 разных PresentationModel.

По реакции на событие из чайлда состояние парента должно измениться. Какой наиболее правильный путь это сделать?
Привет, спасибо за вопрос. ChildPresentationModel задумывалась как часть ParentPresentationModel. У экрана/фрагмента может быть только одна PresentationModel, а внутри нее создаются чайлды и атачатся к ЖЦ парент модели. Это идеалогическое ограничение. Как правило мы используем делегирование в котлине чтобы вынести логику в ChildPm и переиспользовать ее на других экранах.
Если вернутся к вашему вопросу, то речь идет о разных фрагментах как я понял? Теоретически есть возможность наладить общение между ними, но я бы не рекомендовал использовать для этого фичу ChildPm не по назначению. Лучше всего сделать локальную шину или рективную модельку и инджектить ее в ПМ-ки.
источник

DG

Dmitriy Gorbunov in RxPM
Dmitry Subbotenko
Есть ли возможность обмена событиями между 2 ViewModel которые идеологически связаны между собой?
Можно узнать что за кейс такой, в котором нужно общаться разным фрагам?
источник

DS

Dmitry Subbotenko in RxPM
Dmitriy Gorbunov
Привет, спасибо за вопрос. ChildPresentationModel задумывалась как часть ParentPresentationModel. У экрана/фрагмента может быть только одна PresentationModel, а внутри нее создаются чайлды и атачатся к ЖЦ парент модели. Это идеалогическое ограничение. Как правило мы используем делегирование в котлине чтобы вынести логику в ChildPm и переиспользовать ее на других экранах.
Если вернутся к вашему вопросу, то речь идет о разных фрагментах как я понял? Теоретически есть возможность наладить общение между ними, но я бы не рекомендовал использовать для этого фичу ChildPm не по назначению. Лучше всего сделать локальную шину или рективную модельку и инджектить ее в ПМ-ки.
спасибо!
источник

DG

Dmitriy Gorbunov in RxPM
Dmitry Subbotenko
Кстати я смотрю, что RxPm не заморачиваясь хранит ViewModels в сигнлтоне.
В перспективе плинируем хранить PresentationModel в гугловых ViewModel и отказаться от Outlast
источник

DS

Dmitry Subbotenko in RxPM
Dmitriy Gorbunov
Можно узнать что за кейс такой, в котором нужно общаться разным фрагам?
Это проект PTT (push to talk) связи. PTT фрагмент присутствует во многих местах как child и он рулит кроме модели обеспечивающей связь состоянием ParentFragmrnt чтобы определенным образом менять их отображение.
источник

DS

Dmitry Subbotenko in RxPM
через стандартный интерфейс который наследуют все ParentViewModel
источник

DG

Dmitriy Gorbunov in RxPM
Dmitry Subbotenko
Это проект PTT (push to talk) связи. PTT фрагмент присутствует во многих местах как child и он рулит кроме модели обеспечивающей связь состоянием ParentFragmrnt чтобы определенным образом менять их отображение.
То есть у вас один фрагмент/viewModel меняет состояние других фрагментов/viewModels ?
источник

DS

Dmitry Subbotenko in RxPM
Dmitriy Gorbunov
То есть у вас один фрагмент/viewModel меняет состояние других фрагментов/viewModels ?
да.
источник

DG

Dmitriy Gorbunov in RxPM
Dmitry Subbotenko
Это проект PTT (push to talk) связи. PTT фрагмент присутствует во многих местах как child и он рулит кроме модели обеспечивающей связь состоянием ParentFragmrnt чтобы определенным образом менять их отображение.
Вообще во всех MV* паттернах Presenter/Controller/ViewModel/PresentationModel отвечают за UI-логику конкретного экрана/части. То есть один презентер = одна вьюха. Если появляется желание менять стейт из одного презентера в другом, то скорее всего у вас есть какое-то глобальное состояние приложения/системы, которое по ошибке оказалаось в одном из презентеров. В этом случае нужно вынести эту логику на уровень выше - на уровень модели и шарить ее на отдельные экраны/фрагменты. В презентере должна остаться только логика отображения именно этого экрана/фрагмента.
источник