@android_ru

Страница 14 из 3205
Ivan
19.07.2016
18:21:40
а штуки рулящей всей вью

то получается,что нам нужно хендлить тапы

как мы можем сделать переход между активити? используя контекст

либо мы его передаем во viewModel,что как бы совсем не гуд

Google
Dmitry
19.07.2016
18:22:29
не гуд

вообще

Ivan
19.07.2016
18:22:30
либо мы передаем туда что-то типо роутера

Igor
19.07.2016
18:22:30
стоп стоп стоп стоп

звучит прям ужасно :)

Ivan
19.07.2016
18:22:42
либо мы делаем максимально тупой viewModel

которая юзается только для заполнения текствьюшек грубо говоря

и все остальное делаем в активити

Igor
19.07.2016
18:23:02
вью - показывает то, что ей скормили во viewModel (а скоримл никто иной как презентер)

Ivan
19.07.2016
18:23:19
ну в MVVM нет презентера так то)

Dmitry
19.07.2016
18:23:28
Хорошо, еще раз вопрос Реализовано: Android + DataBinding + MVVM. В лейауте задействуем клик на определенное View - значит нужно кидать в фрагмент. В методе: 1. старт активити с браузером. (нужен контекст активити, все правильно - что во фрагменте, из модели контекст аппликейшна, что не рекомендовано) 2. ссылка приходит во вью-модель, Исходя из второго пункта - каким механизмом лучше передавать ссылку в фрамент? Если архитектура гмно - послушаю ваши варианты Постарался по простому проблему сформулировать

Igor
19.07.2016
18:23:42
презентер есть всегда, вайпер это, или MVVM или MVC :)

Ivan
19.07.2016
18:24:23
роль очень своеобразного презентера выполняет активити

Google
Igor
19.07.2016
18:24:27
вьюха должна быть максимально тупой... показывать что дают, сообщать о интерактивностях если они есть - все :)

Ivan
19.07.2016
18:24:29
тк активити и не вью вроде как)

вот кстати про тупость вью - в MVVM по идее это не совсем так

Dmitry
19.07.2016
18:25:45
@mrjamesbond в моем случае, во вьюху придется передать лисенер , обработать нажатие- иначе как достать контекст активити? Во вью модель также негоже его посылать

Ivan
19.07.2016
18:26:20
просто если вынести обработку кликов из вьюмодели

то получится такое себе счастье,если при этом нужно что-то делать с данными вьюмодели

перед выполнением клика

Igor
19.07.2016
18:26:49
стоп стоп стоп...

лиснер пусть себе висит во вьюхе

Dmitry
19.07.2016
18:27:04
ок

Igor
19.07.2016
18:27:09
чать кликов вообще наружу могут не отдаваться

Dmitry
19.07.2016
18:27:11
как передать туда данные из вью модели в момент нажатия

Igor
19.07.2016
18:27:23
например аккордеон какой-нибудь... это можно в активити не транслировать

но если у нас кнопка рефреш, допустим... до тап по ней нужно обработать во вьюхе (анимации, и пр.) и передать в активити - и пусть уже активити решает что там делать с этим :)

если бизнеслогики тап никак не касается - пусть живет себе во вью

Ivan
19.07.2016
18:28:12
ну те клики,которые мы делаем для перехода на другую активити в 90% случаев нужно прокидывать через viewModel,тк в ней у нас стейт хранится грубо говоря

Igor
19.07.2016
18:28:14
если касается - то точно не во вью

что значит ЧЕРЕЗ? вью с активити общаться не может? активити про вьюМодель знает?

(вы меня только не слушайте... я в андроид специфике слаб)

Ivan
19.07.2016
18:29:24
активити про вьюмодель знает,тк мы инициализируем viewmodel в активити

Google
Igor
19.07.2016
18:29:31
именно...

я не могу понять что такое "прокидывать через вьюмодель"

вью модель про переход куда-то там ничего не знает...

Dmitry
19.07.2016
18:30:04
активити в топку

Igor
19.07.2016
18:30:10
вью модель - минимально необходимые данные для отображения вью - точка

Dmitry
19.07.2016
18:30:15
вдруг фрагмент где еще понадобится

Ivan
19.07.2016
18:30:21
ну опять же,мы имплиментим интерфейс описывающий итерации со внешним миром в активити

Dmitry
19.07.2016
18:30:23
каждое активити захламлять кодом

Ivan
19.07.2016
18:30:36
передаем его имплементацию в viewmodel

во вьюмодели обрабатываем клик

и передаем подготовленные данные из нее в этот интерфейс

Igor
19.07.2016
18:30:55
не надо передавать имплементацию во вью модель!!! :)

Dmitry
19.07.2016
18:31:00
короч

Ivan
19.07.2016
18:31:03
в чем тут проблема то?

Igor
19.07.2016
18:31:16
мы может быть о разных вью моделях? :)

Dmitry
19.07.2016
18:31:24
все методы во вью модели, где в параметре view: View

Igor
19.07.2016
18:31:26
вот пример высосаный из пальца

Dmitry
19.07.2016
18:31:27
это нехорошо

Igor
19.07.2016
18:31:45
есть вьюмодель - 100 каких-то айтемов

и есть два отображения, скажем, табличный и еще какой-нибудь...

Google
Igor
19.07.2016
18:32:22
с одного отображения надо перейти на А, с другого на Б по хитрой логике

вопрос - каким образом вью модель завязана на логике переходов? мой ответ - никаким

Dmitry
19.07.2016
18:32:56
как боженька сказал )

надо уходить во вью

но как то брать данные из модели

Ivan
19.07.2016
18:33:27
вот мой кейс,у меня есть вьюха фидбека. в ней несколько едиттекстов и немного магии с подстветкой изменением визибилити и тд. все изменения хендлятся вьюмоделью, и вы предлагаете захендлить клик в активити и дернуть все данные с вьюмодели ручками

это как по мне не гуд

Nikolay
19.07.2016
18:33:49
Вот слушаю я рассуждения про MVP и иже с ним... И что-то не заметно что такой подход упрощает все.

Ivan
19.07.2016
18:34:04
и опять же мое мнение,что вьюмодель должна сагрегировать эти данные для удобной работы с ними в дальнейшем

и передать их уже туда,где они нужны

просто сама идея лезть во вьюмодель и ручками вытягивать оттуда данные мне кажется странной

может я не прав

Igor
19.07.2016
18:34:45
Какой смысл биндить вью с вьюмоделью? Правильно, чтоб во вьюмодели было отражение того что происходит... зачем это? наверное чтоб потом эту вьюмодель заюзать, взять нужное, собрать из этого другую вьюмодель и передать другой вью

как это может быть странным?

есть вьюмодель - это КОНТЕЙНЕР С ДАННЫМИ

? :)

Ivan
19.07.2016
18:35:15
мне не нравится концепция того,что мы зачем-то лезем с активити во вьюмодель

такой пул делаем грубо говоря

Igor
19.07.2016
18:35:21
(либо я чего-то не понимаю во viewModel) :P

Dmitry
19.07.2016
18:35:22
вот я холивар развел )

Google
Ivan
19.07.2016
18:35:25
если можем сделать пуш)

из вьюмодели в активити

:)

Dmitry
19.07.2016
18:35:32
оооо

сервис

локальный бродкастресивер

или как там его )

Igor
19.07.2016
18:35:51
Иван! еще раз - вьюмодель - это контейнер с данными

Dmitry
19.07.2016
18:35:53
?

Igor
19.07.2016
18:36:05
Иван, еще вопрос

Dmitry
19.07.2016
18:36:13
а если я воспользуюсь event bus?

Igor
19.07.2016
18:36:44
а теперь представим, что после нажатия на кнопку "послать". нужно все эти данные что юзер вбил, хитрым образом обработать... отправить 25 запросов на сервер, переформатировать, преобразовать и потом получившееся отправить дальше

Ivan
19.07.2016
18:36:47
это контейнер состояния даже

Igor
19.07.2016
18:36:49
это где делать? во вью модели!?!?! :)

Dmitry
19.07.2016
18:37:26
запросы как я понял во вью модели вполне применимы

или я плохо понял )

Igor
19.07.2016
18:37:41
и пока ты пишешь "нет, не в ней" - я задам другой вопрос - а почему тогда это происходить должно в разных местах в зависимости от случая? :)

Ivan
19.07.2016
18:37:47
ну на самом деле

Igor
19.07.2016
18:37:48
запросы!?!? во вью модели!?!? :)

боже....

Ivan
19.07.2016
18:37:58
если мы хотим пьюр mvvm

там нет ничего про презентер

Страница 14 из 3205