Size: a a a

Android Architecture

2020 July 03

VP

Vitaly Peryatin in Android Architecture
Aleksey D.
ну, слишком умное все получается
потом сидишь и репу чешешь, когда пытаешься решить, где ту или иную логику хранить (а ведь взаимодействие двух репозиториев - логика)
Так то репозиторий это тоже логика
Логика получения данных
источник

AD

Aleksey D. in Android Architecture
Vitaly Peryatin
Так то репозиторий это тоже логика
Логика получения данных
неа, не совсем
источник

VP

Vitaly Peryatin in Android Architecture
Почему?
источник

AD

Aleksey D. in Android Architecture
Vitaly Peryatin
Почему?
Mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects.
источник

AD

Aleksey D. in Android Architecture
хороший и правильный репозиторий - это RetrofitApi интерфейс, это Room DAO интерфейс, имхо
источник

AP

Anton Potekhin in Android Architecture
Вот не понимаю как правильно решить следующую задачу.
Задача выдуманная чтобы упростить
Итак нужно чтобы экран показывал список категорий (для облегчения задачи представим что список категорий конечный и небольшой… скажем 50 шт и из АПИ мы получаем их разом)
При нажатие на категорию в списке элемент должен раскрываться и показывать список книг из этой категории (так же список конечный и небольшой )
Далее по каждой книге нужно послать запрос в API чтобы получить детальную информацию и соответсвенно отобразить в списке ее.
Так же пока исключим кэширование результатов для облегчения.

Пока я вижу только следующее решение
1) При открытие экрана ViewModel запрашивает у интерактора список категорий (каждая категории уже содержит в себе список книг )
2) Интерактор у репозиторий запрашивает данные и возвращает нам список в ViewModel
3) ViewModel пихает список в LiveData на которую подписан fragment и он пихает данные в адаптер RecyclerView
4) Нажимаем на категорию и по событию фрагмент говорит ViewModel что нужно открыть категорию
5) ViewModel постит в LiveData тот же список только нажатая категория помечена уже как открытая
6) Сразу после этого VIewModel запрашивает детальную информацию по книгам у интерактора
7) Интерактор возвращает flow и запрашивает параллельно у репозитория информацию о книгах и при получение деталей начинает иммитить данные в flow
😍 ViewModel получая данные обновляет список и постит в LiveData

Не слишком замудрил ? Можно как-то проще сделать ? Я правильно понимаю что при использование DiffUtil у меня не должно быть проблем с тем что весь список будет прилетать кучу раз в адаптер ?
источник
2020 July 04

AM

Artem Mi in Android Architecture
День(вечер) добрый, где правильнее будет проверять на пустоту? В имплементации репозитория, или в домейн слое?
источник

AM

Artem Mi in Android Architecture
источник

AD

Aleksey D. in Android Architecture
Artem Mi
если пустота строки - индикатор невалидности данных, то в репозитории проверять, если же условие одного конкретного сценария - домейн
источник

AM

Artem Mi in Android Architecture
Понял, спасибо
источник
2020 July 05

S

Sergey in Android Architecture
Привет! Подскажите, пожалуйста, при MVP допускается ли осуществлять переключение на главный поток (для выполнения функции) во фрагменте, а не в презентере? Или это плохая практика?
источник

V

Vladimir in Android Architecture
Sergey
Привет! Подскажите, пожалуйста, при MVP допускается ли осуществлять переключение на главный поток (для выполнения функции) во фрагменте, а не в презентере? Или это плохая практика?
Вообще поезентер по умолчанию должен работать в main потоке, потому что в нем хранится логика для управления ui
источник

AD

Aleksey D. in Android Architecture
Vladimir
Вообще поезентер по умолчанию должен работать в main потоке, потому что в нем хранится логика для управления ui
ему совсем не обязательно «работать» на главном потоке, что бы это ни значило)
источник

HR

Habanero Red in Android Architecture
Sergey
Привет! Подскажите, пожалуйста, при MVP допускается ли осуществлять переключение на главный поток (для выполнения функции) во фрагменте, а не в презентере? Или это плохая практика?
Мне кажется, это неправильно. View (fragment) вообще не должен ничего знать про потоки и асинхронщину, это не его зона ответственности.
источник

S

Sergey in Android Architecture
Вот мне тоже так кажется((
источник

S

Sergey in Android Architecture
Спасибо)
источник

АС

Александр Сергеевич... in Android Architecture
Aleksey D.
хороший и правильный репозиторий - это RetrofitApi интерфейс, это Room DAO интерфейс, имхо
Апи интерфейс это репозиторий?
источник

AD

Aleksey D. in Android Architecture
Александр Сергеевич
Апи интерфейс это репозиторий?
имхо - да, он выполняет те же задачи, что и классический репозиторий
источник

АС

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

AD

Aleksey D. in Android Architecture
Александр Сергеевич
А если ошибку обработать надо
а если не надо?)
источник