Size: a a a

Android Architecture

2020 May 26

AI

Arkadii Ivanov in Android Architecture
Алексей Ершов
Вот и вопрос, зачем шарить вьюмодель, если можно просто модель? Просто классов меньше?
Я вообще не понимаю, зачем шарить что-либо? Это же увеличивает связность кода и ухудшает композируемость.  Почему нельзя в дочерние фрагменты передать какой-нибудь Flow или Observable данных? И пусть предок уже решает, что кому и когда.
источник

АЕ

Алексей Ершов... in Android Architecture
Arkadii Ivanov
Я вообще не понимаю, зачем шарить что-либо? Это же увеличивает связность кода и ухудшает композируемость.  Почему нельзя в дочерние фрагменты передать какой-нибудь Flow или Observable данных? И пусть предок уже решает, что кому и когда.
Я об этом и говорю, конечно. Но это тоже будет шаринг)
источник

АЕ

Алексей Ершов... in Android Architecture
Красиво в нужную сторону развязать зависимости всегда полезно, разумеется.
источник

AI

Arkadii Ivanov in Android Architecture
Алексей Ершов
Я об этом и говорю, конечно. Но это тоже будет шаринг)
Так нет же. Дочерние фрагменты можно вообще положить в отдельные модули. Пусть они зависят каждый от своих данных. Ну или от общих из общего модуля. И принимать их поток через конструктор. Это ещё и безопасность при сборке даёт. Т.к. нет неявных контрактов.
источник

АЕ

Алексей Ершов... in Android Architecture
Всё правильно. Но почему это не шаринг? Клиент знает только о входящих данных, поставщик этих данных выкидывает их наружу. Канал данных пошарен - вот я и говорю шаринг)
источник

АЕ

Алексей Ершов... in Android Architecture
Как там было, лучше "share state by communication" чем "communicate by shared state" 🙂
источник

AI

Arkadii Ivanov in Android Architecture
Алексей Ершов
Всё правильно. Но почему это не шаринг? Клиент знает только о входящих данных, поставщик этих данных выкидывает их наружу. Канал данных пошарен - вот я и говорю шаринг)
Аа ну шаринг между предком и конкретным дочерним фрагментом. Но не между всеми дочерними. Это важно
источник

AI

Arkadii Ivanov in Android Architecture
Алексей Ершов
Как там было, лучше "share state by communication" чем "communicate by shared state" 🙂
+
источник

АЕ

Алексей Ершов... in Android Architecture
Если строить иерархию, то как тогда дочерним между собой общаться? Через что-то ведь коммуницировать надо.
источник

АЕ

Алексей Ершов... in Android Architecture
Должен быть объект, который заинжектится в один фрагмент как выход а в другой как вход
источник

AI

Arkadii Ivanov in Android Architecture
Алексей Ершов
Должен быть объект, который заинжектится в один фрагмент как выход а в другой как вход
Это могут быть разные классы. А предок может делать преобразования. Да бойлерплейт, но зато нет связности и можно переиспользовать. Также удовлетворение SRP, если каждому фрагменту нужна только часть общих данных.
источник

AI

Arkadii Ivanov in Android Architecture
Но если прям хочется пошарить и класс, ну пусть будет так. Но зависеть фрагменты должны от того, что им реально надо. Нужен поток данных, передать поток данных. Нужно выдать данные, передать Consumer.
источник

АЕ

Алексей Ершов... in Android Architecture
Согласен, получается, важная часть это объявить правильно зависимости в каждом компоненте, а как их разрулит тот, кто их использует - уже его дело.
источник

AI

Arkadii Ivanov in Android Architecture
Алексей Ершов
Согласен, получается, важная часть это объявить правильно зависимости в каждом компоненте, а как их разрулит тот, кто их использует - уже его дело.
В точку
источник

AY

Andy Yanechko in Android Architecture
Arkadii Ivanov
Но если прям хочется пошарить и класс, ну пусть будет так. Но зависеть фрагменты должны от того, что им реально надо. Нужен поток данных, передать поток данных. Нужно выдать данные, передать Consumer.
А у Вас есть какой-то пример, что бы детальней разобраться. Смысл понятен, хотелось бы посмотреть на реализацию.
источник

AI

Arkadii Ivanov in Android Architecture
Andy Yanechko
А у Вас есть какой-то пример, что бы детальней разобраться. Смысл понятен, хотелось бы посмотреть на реализацию.
источник

AI

Arkadii Ivanov in Android Architecture
Там два фрагмента list и details и их root
источник

AY

Andy Yanechko in Android Architecture
Спасибо
источник

S

Serhei in Android Architecture
Привет, подскажите, норм ли добавлять зависимость реалма/рума в domain модуль?
источник

ДР

Дмитрий Рубцов 🇷🇺🔥... in Android Architecture
Serhei
Привет, подскажите, норм ли добавлять зависимость реалма/рума в domain модуль?
Нет, работа с бд идёт в data модуле
источник