Size: a a a

Android Architecture

2021 May 26

P

Pavel in Android Architecture
Я делал семпл на Paging 3: https://github.com/PavelSidyakin/ChatSample
Можете посмотреть.
источник

P

Pavel in Android Architecture
Paging 3 обо всём этом сама заботится
источник

К

Кирилл in Android Architecture
Я не первый день ее использую. Вопрос про опыт работы с объектами из разных room таблиц и дозапрос данных с сервера.
источник

P

Pavel in Android Architecture
А
источник

P

Pavel in Android Architecture
Тогда, тут, наверное, можно попробовать сделать PagingSource из нескольких таблиц, используя вложенные отношения.  
А добавлять - придётся руками в несколько таблиц. Можно в репозитории просто метод сделать, который разложит по нужным таблицам доменную модель
источник

P

Pavel in Android Architecture
Но я так не пробовал, не могу сказать, сработает ли
источник

К

Кирилл in Android Architecture
Собрать данные это не сложно. А вот например, у меня в одной таблице уже есть 50 записей, а в другие пустые, еще не запрашивались. И в тоге я буду показывать 50 записей только из одной таблицы и уже когда их посмотрю запрошу для всех, что сломает всю старую сортировку и порядок
источник

JF

Jorik Fat in Android Architecture
сделать двойную проверку прокрутки списка, по одной на каждый тип элементов
источник

JF

Jorik Fat in Android Architecture
но тогда будут чередоваться страницы 50 папок, 50 файлов, 50 папок
источник

JF

Jorik Fat in Android Architecture
архитектурно думаю правильнее будет сделать одну общую таблицу для всех типов записей с id, item_type, item_id
источник

К

Кирилл in Android Architecture
Посмотреть бы исходники вк.. Они это как-то сделали
источник

JF

Jorik Fat in Android Architecture
и записи брать из этой общей таблицы
источник

JF

Jorik Fat in Android Architecture
но с этим примером будет трудности с поддержкой данных, так как придется 1 элемент 2 раза записывать, но там тоже есть свои фокусы
источник

P

Pavel in Android Architecture
Какой именно функционал?
Я ща соцсеть пишу, может поделюсь опытом :)
источник

К

Кирилл in Android Architecture
Собственно, раздел уведомлений с пагинацией. Если посмотреть вк апи то там видно что на запрос возвращаются разные объекты
источник

P

Pavel in Android Architecture
У нас (в mylivn) пока нет здесь локального стораджа.
Бэк возвращает модели с указанием типа. И они потом на UI попадают.
источник

P

Pavel in Android Architecture
Как самое тупое и убогое рабочее решение - можно эти модели сериализовать и пихать в одну таблицу.
Надеюсь, меня не кикнут из архитектурного чата за такое предложение :))
источник

EM

Eugene Matsyuk in Android Architecture
govnocode detected
источник

P

Pavel in Android Architecture
источник

P

Pavel in Android Architecture
Вот тут похоже правильная идея.
Есть таблица уведомлений, где хранятся ссылки на другие таблицы с разными типами уведомлений.
Эта таблица - основа для выборки.
Paging строит запрос по этой таблице, она джойнится с другими таблицами, где уже конкретные уведомления.  Данные разных типов можно распихать по sealed'ам.
Соответственно, таблицы для каждого типа нотификации наполняются по мере необходимости. Пришла нотификация типа1 - пихается в общую таблицу нотификаций и в таблицу нотификацииТипа1.
источник