Size: a a a

Android Architecture

2020 February 24

СГ

Сергей Греков in Android Architecture
Aleksey D.
это в библиотеке так, наверное?
я только статью смотрел и игнорировал байты)
тогда и туда полезу, спасибо
Насколько я помню в самом Элме тоже BatchCmd сделан как set из команд
источник

AD

Aleksey D. in Android Architecture
Сергей Греков
Насколько я помню в самом Элме тоже BatchCmd сделан как set из команд
понял, пошел дальше ковырять 🙄 спасибо!
источник

V

Vladimir in Android Architecture
Kopusha
не вижу смысла тратить время на MVP в 2020-м. Вложись хорошо в MVVM + Clean, ибо мейнстрим, а оттуда может захочется MVI, гироскутер и усы баристы.
это хорошо было
источник

N

Noino in Android Architecture
Всем привет. Пишу на xamarin. Подскажите пожалуйста, как в UseCase использовать VM?  С Презентером понятно все - у него есть интерфейс, но у VM нет
источник

АЕ

Алексей Ершов in Android Architecture
Noino
Всем привет. Пишу на xamarin. Подскажите пожалуйста, как в UseCase использовать VM?  С Презентером понятно все - у него есть интерфейс, но у VM нет
у UseCase не должно быть зависимости от VM, используйте коллбеки
источник

N

Noino in Android Architecture
Коллбэки от java или c# ?
источник

АЕ

Алексей Ершов in Android Architecture
я ответил не про xamarin, а в целом. Про него ничего не знаю)
источник

N

Noino in Android Architecture
Хорошо. Все равно спасибо! Отчасти помогли
источник

V

Vladimir in Android Architecture
является ли нормальным подходом переиспользование одной view model на разных экранах?
источник

V

Vladimir in Android Architecture
дополню немного, есть 2 стула:
1) пилить ViewModel с привязкой к конкретной сущности и, соответственно, переиспользовать такую ViewModel на всех экранах, которые работают с такой сущностью. Таким образом, один экран может знать о нескольких ViewModel
2) пилить ViewModel с привязкой к конкретному экрану и, таким образом, ViewModel знает о нескольких сущностях, но экран знает только об одной ViewModel
источник

NM

Nick Marchuk in Android Architecture
Vladimir
дополню немного, есть 2 стула:
1) пилить ViewModel с привязкой к конкретной сущности и, соответственно, переиспользовать такую ViewModel на всех экранах, которые работают с такой сущностью. Таким образом, один экран может знать о нескольких ViewModel
2) пилить ViewModel с привязкой к конкретному экрану и, таким образом, ViewModel знает о нескольких сущностях, но экран знает только об одной ViewModel
2 вариант лучше, потому как разделяете ответственность и в случае чего можно без проблем внести изменения
источник

V

Vladimir in Android Architecture
Nick Marchuk
2 вариант лучше, потому как разделяете ответственность и в случае чего можно без проблем внести изменения
вот изначально пилил по первому варианту, тк нашел такой подход в примерах, мать его, гугла, но сейчас, с масштабированием, стал все больше к 2 варианту тоже подходить
источник

EC

Evgeny Cherkasov in Android Architecture
Vladimir
дополню немного, есть 2 стула:
1) пилить ViewModel с привязкой к конкретной сущности и, соответственно, переиспользовать такую ViewModel на всех экранах, которые работают с такой сущностью. Таким образом, один экран может знать о нескольких ViewModel
2) пилить ViewModel с привязкой к конкретному экрану и, таким образом, ViewModel знает о нескольких сущностях, но экран знает только об одной ViewModel
На мой взгляд стоит привязывать ViewModel к конкретному View. Под View имеется в виду некая логически целостная часть экрана. Т.е. сложный экран может состоять из нескольких более-менее самостоятельных View. Например: список + детальная информация о выбранном элемента, или экран с иформацией о видео + область плеера.
источник

EC

Evgeny Cherkasov in Android Architecture
Nick Marchuk
2 вариант лучше, потому как разделяете ответственность и в случае чего можно без проблем внести изменения
Можете пояснить подробнее?
источник

NM

Nick Marchuk in Android Architecture
Evgeny Cherkasov
Можете пояснить подробнее?
Да тут всё достаточно просто, придерживаешься разделения ответственности (не делаешь какой либо класс ответственным за множество вещей), в данном примере 1 вью модель на один экран и имеешь гибкость во внесении изменений
источник

V

Vladimir in Android Architecture
Evgeny Cherkasov
На мой взгляд стоит привязывать ViewModel к конкретному View. Под View имеется в виду некая логически целостная часть экрана. Т.е. сложный экран может состоять из нескольких более-менее самостоятельных View. Например: список + детальная информация о выбранном элемента, или экран с иформацией о видео + область плеера.
тоесть если у меня есть ресайклер с несколькими типами холдеров, то под каждый  тип холдера у меня должна быть отдельная viewModel?
источник

EC

Evgeny Cherkasov in Android Architecture
Nick Marchuk
Да тут всё достаточно просто, придерживаешься разделения ответственности (не делаешь какой либо класс ответственным за множество вещей), в данном примере 1 вью модель на один экран и имеешь гибкость во внесении изменений
Так во втором случае вроде как раз и получается, что если экран сложный, то ViewModel начинает отвечать за множество вещей.
источник

EC

Evgeny Cherkasov in Android Architecture
Vladimir
тоесть если у меня есть ресайклер с несколькими типами холдеров, то под каждый  тип холдера у меня должна быть отдельная viewModel?
Ну в случае с RecyclerView вряд ли стоит так делать. Все таки это виджет, делать к нему несколько вью моделей как то странно наверное. Под View я имел в виду скорее фрагменты.
источник

V

Vladimir in Android Architecture
Evgeny Cherkasov
Ну в случае с RecyclerView вряд ли стоит так делать. Все таки это виджет, делать к нему несколько вью моделей как то странно наверное. Под View я имел в виду скорее фрагменты.
понял, спасибо) здесь солидарен
источник

NM

Nick Marchuk in Android Architecture
Evgeny Cherkasov
Так во втором случае вроде как раз и получается, что если экран сложный, то ViewModel начинает отвечать за множество вещей.
Имелось ввиду что ВМ используется в одном конкретно месте, а не в множестве и её изменения повлияют только на 1 выбранную вью, а не на кучу вьюшек в разных местах проекта, что усложняет тестирование и не гарантирует правильности работы во всех используемых местах и тд
источник