Size: a a a

Android Architecture

2020 October 05

AD

Aleksey D. in Android Architecture
Roman Chumachenko
Еще раз - ты будешь менять файл с интерфейсом, чтобы убрать все упоминания рума, потому что зависимость нужно убрать из проекта
часто такое делать приходится?)
сказал же - компромисс, можешь не использовать аннотации вообще
источник

VP

Vitaly Peryatin in Android Architecture
Roman Chumachenko
Ну такое. Сегодня у тебя рум, завтра вы меняете все на realm и нужно избавляться от зависимостей в корень. Сидишь, выпиливаешь кучу аннотаций и иже с ними
Думаю для этого и нужен DataSource
Так мы пишем абстракицю для работы с данными из БД и с данными из сети

А вот с этими DataSource работает Repository, чтобы получить данные, используя неизменный API
И Interactor уже с полученными данными задействует бизнес-логику

Разве не так?
источник

P

Pavel in Android Architecture
Vitaly Peryatin
Аналогично считал
Google частенько продвигал такое же видение
Это тогда вопрос терминологии.
Можно назвать тонкие обертки репозиториями или датасорсами. Можно наоборот.
Важно, что есть некая сущность, интерфейс которой принадлежит бизнес-логике, имплементация - данным. Эта сущность лазиет в сеть или в базу и скрывает логику работы с бд и сетью и низкоуровневые модели. А что с этими данными делать - уже задача бизнес-слоя.
источник

М

Максим in Android Architecture
Vitaly Peryatin
Тут не редко начинает проскакивать мысль, что Repository не нужен, интерактор может работать с DataSource напрямую
Поэтому задал такой вопрос
потому что репозиторий и интерактор это простые решения для простых кейсов, если что то хоть немного более сложное попадается - сразу же вся "архитектура" шатается
источник

RC

Roman Chumachenko in Android Architecture
Vitaly Peryatin
Думаю для этого и нужен DataSource
Так мы пишем абстракицю для работы с данными из БД и с данными из сети

А вот с этими DataSource работает Repository, чтобы получить данные, используя неизменный API
И Interactor уже с полученными данными задействует бизнес-логику

Разве не так?
Во, вот с этим я полностью согласен
источник

RC

Roman Chumachenko in Android Architecture
Ребят, на сколько допустимо, чтобы реализация менеджера знала про интерфейс репозитория? Оба два - output порты, один реп про другой знать не должен, а если менеджер знает про репозиторий - тоже зазорно?
источник

AD

Aleksey D. in Android Architecture
Roman Chumachenko
Ребят, на сколько допустимо, чтобы реализация менеджера знала про интерфейс репозитория? Оба два - output порты, один реп про другой знать не должен, а если менеджер знает про репозиторий - тоже зазорно?
что такое менеджер?
источник

AD

Aleksey D. in Android Architecture
есть интерактор/сервис/юзкейс/домейн, есть репозиторий - кто есть кто?
источник

VP

Vitaly Peryatin in Android Architecture
Roman Chumachenko
Ребят, на сколько допустимо, чтобы реализация менеджера знала про интерфейс репозитория? Оба два - output порты, один реп про другой знать не должен, а если менеджер знает про репозиторий - тоже зазорно?
Я думаю, что зависит от конкретной задачи
источник

VP

Vitaly Peryatin in Android Architecture
Roman Chumachenko
Ребят, на сколько допустимо, чтобы реализация менеджера знала про интерфейс репозитория? Оба два - output порты, один реп про другой знать не должен, а если менеджер знает про репозиторий - тоже зазорно?
Чем занимается этот менеджер?
источник

AD

Aleksey D. in Android Architecture
менеджер - интерактор/сервис/юзкейс/бизнес - то почему он менеджер, а не интерактор?
источник

RC

Roman Chumachenko in Android Architecture
Сложно, давай лучше конкретный случай - WalletManager, может достать данные про транзакции, а может и проводить транзакции. В чем-то он сам реп (пушто отдает данные)
источник

AD

Aleksey D. in Android Architecture
или все-таки интерактор, который через репозиторий работает с базой данных и сервером 🤔
поймешь, что оно такое - поймешь, о чем ему можно знать
источник

VP

Vitaly Peryatin in Android Architecture
Roman Chumachenko
Сложно, давай лучше конкретный случай - WalletManager, может достать данные про транзакции, а может и проводить транзакции. В чем-то он сам реп (пушто отдает данные)
А это не интерактор тогда?
источник

VP

Vitaly Peryatin in Android Architecture
Кто работает с этим менеджером?
источник

RC

Roman Chumachenko in Android Architecture
Vitaly Peryatin
А это не интерактор тогда?
Интерактеров я не любитель, а вот на штуки меньше (репозитории и пару юзкейсов) я бы его не против разделать. Все равно для отправки транзакции нужна какая-то обертка над библиотекой. Вот ее я и называл "менеджер"
источник

AD

Aleksey D. in Android Architecture
Roman Chumachenko
Интерактеров я не любитель, а вот на штуки меньше (репозитории и пару юзкейсов) я бы его не против разделать. Все равно для отправки транзакции нужна какая-то обертка над библиотекой. Вот ее я и называл "менеджер"
обертка = репозиторий
источник

RC

Roman Chumachenko in Android Architecture
Aleksey D.
обертка = репозиторий
Репозиторий Wallet, который делает send(...): COmpletable и getBalance(): Flowable<BigInteger>?
Мне казалось, что реп должен работать с данными, а тут как-то не доступ к данным
источник

RC

Roman Chumachenko in Android Architecture
Vitaly Peryatin
Кто работает с этим менеджером?
UseCase всякие
источник

S

Sergey in Android Architecture
Всем привет! Подскажите, пожалуйста, при дата биндинге, когда уже пишем в самом layout (xml) привязку, название layout и название класса viewmodel должны обязательно совпадать?
источник