Seva
разработчик и без пэйджинга разберется, откуда, чего и какими порциями загружать.
Oleg
Причем тут recyclerview? С сетью - это другой вопрос.
Ну сеть тут очень при чем - если ты в каждый айтем должен закинуть картинку с сети - ты чего делать будешь? Зачем качать 30000 картинок, если юзер видит 10 и не крутит вниз?
Seva
У меня ж 30 тысяч item-мов с адресами загружаются за секунду.
vladislav
А какие книги можно почитать про устройство ос андроид?
Seva
Кстати, на эмуляторах там очень ограничен размер выделяемый эмулятору памяти.
Seva
Граздо меньше, чем на реальных устройствах.
Seva
Типа они там застряли в 2008 году.
Oleg
Справедливости ради - картинки не грузят сразу для всех элементов даже без paging
ну хз - те, кто 30000 элементов засовывают в листвью - могут и не такое)
vladislav
Есть Android internals
Спасибо, то что нужно :)\
Artem
33 - это тестовые устройства, на которых гугол запускает апк на этапе проверки
т.е это не наши пользователи и можно быть спокойным?
Valentin
т.е это не наши пользователи и можно быть спокойным?
Да, по этим тестовым можно кстати там же в консоли репорты смотреть, бывает полезно
Artem
33 - это тестовые устройства, на которых гугол запускает апк на этапе проверки
так если он запускает на этапе проверки, то тут по времени не сходится, мы ее зарелизили уже неделю назад, а кращ пришел только сегодня
Seva
ну хз - те, кто 30000 элементов засовывают в листвью - могут и не такое)
Из двух textview каждый. Без картинок. Картики не пробовал. не надо было.
Ярослав
можно декомпилировать ? апк
Seva
И никаких тормозов вообще.
Seva
Абсолютно.
Seva
Кстати, там в recycler view должны подгружаться по мере необходимости просмотра элементы. А root сделали в незакона курсор.
Seva
Вообще не понимаю смысла. Если все равно из базы разом все элементы загружать.
Valentin
И никаких тормозов вообще.
То есть ваш аргумент к бесполезности пагинации - то, что на одном устройстве не лагает и хватает оперативы на всё?
Oleg
Из двух textview каждый. Без картинок. Картики не пробовал. не надо было.
Ну так ты говоришь что это никому не нужная хрень, а я говорю что не всем нужен список из двух textView) Если возникнет чуть более сложный UI и в айтеме будешь завязываться на сложную структуру данных, то не стоит подгружать ненужную информацию пока не пришло время вывода ее на экран. В этом и суть ресайкла и пэйджинга
Seva
Так для этого recycler view и задумывался.
Seva
Что бы 10 помещается на экране. И 12 подгрузить. 10 на экран и два в запасе.
Seva
Зачем пэйждинг?
Дмитрий
Зачем пэйждинг?
чтобы не грузить по апи всё сразу, а экономить трафик
Valentin
Что бы 10 помещается на экране. И 12 подгрузить. 10 на экран и два в запасе.
Только вот 30к айтемов в оперативке все равно лежат и сеть съели
Oleg
Что бы 10 помещается на экране. И 12 подгрузить. 10 на экран и два в запасе.
То, что он не нужен в этом конкретном случае - не значит что он не нужен никому и никогда
Seva
Они один раз 2 мегабайта в год прокачать - это проблема для сети?
Valentin
Они один раз 2 мегабайта в год прокачать - это проблема для сети?
Зачем качать то, что пользователь даже не увидит скорее всего?
Seva
Никогда не нужны. Ужасный интерфейс.
Seva
Ужасный интерфейс хотя бы тем .что неизвестно, когда конец-то будет?
Oleg
Они один раз 2 мегабайта в год прокачать - это проблема для сети?
Ну возьми для примера телеграм. Надо ли при установке на устройство качать пользователю терабайты фоток и видео по всем каналам, что у него были? Спойлер - нет
Seva
а если данные обновляются часто?
А если не обнавляются?
Дмитрий
А если не обнавляются?
значит вы не работали над серьезными проектами
Seva
Будут каждую секунду 10 раз обновляться, будем думать. как их грузить.
Seva
Но уж точно не пэйжерами
Seva
значит вы не работали над серьезными проектами
Я видел и плевался, как это все выглядит. Работать с пэйджерами - это ужасно. Когда не известно, сколько в конце еще осталось на загрузку. И когда это кончится.
Valentin
Будут каждую секунду 10 раз обновляться, будем думать. как их грузить.
Смотрите, у вас 30к айтемов, зачем качать их все, если пользователь навряд ли увидит даже вторую тысячу?
Oleg
Ну ты либо тролль либо сделал пару пет проектов либо просто нечем заняться вечером. Не нравится - не используй. Придумаешь - напишешь свой ресайклвью с блекджеком и шлюхами)
Seva
Смотрите, у вас 30к айтемов, зачем качать их все, если пользователь навряд ли увидит даже вторую тысячу?
Ну, для того, что бы мог пролистать, оценить, отсортировать, выбрать по поиску.
Seva
Если там пэйджер.... как узнать. сколько их всего, этих адресов?
Oleg
Я видел и плевался, как это все выглядит. Работать с пэйджерами - это ужасно. Когда не известно, сколько в конце еще осталось на загрузку. И когда это кончится.
Ну ты опять завязываешься на конкретно свой пример и не хочешь видеть ситуацию вне его. Лента новостей - никогда не кончится. Лента вк - никогда не кончится. Какая к черту полоса загрузки?
Дмитрий
А вы поиск реализуете через in-memory фильтрацию?
Справедливости ради это не всегда плохо
Valentin
Справедливости ради это не всегда плохо
Да, но это спорное решение в случае 30к элементов
Seva
Да, но это спорное решение в случае 30к элементов
Фильтруесся все за доли секунды.
Seva
И показывается! Показывается высе выделенное за доли секунды.
Seva
Вы там как на старых до айбиэмовских компьютерах как буд-то сидите.
Oleg
И показывается! Показывается высе выделенное за доли секунды.
Ну опять же - в рамках структуры из 2х полей - вполне возможно, но я не встречал такую ни на одном из проектов, даже небольших
Mike
И показывается! Показывается высе выделенное за доли секунды.
Мне достался серверный проект, как попало захераченный на хибере — findAll().stream().filter(…). Это работало сраными секундами. Без сложных оптимизаций, написанием запроса «в лоб», я ускорил эти запросы НА ПОРЯДОК. Не надо делать в памяти то, что можно возложить на базу.
Mike
Вы там как на старых до айбиэмовских компьютерах как буд-то сидите.
Ммм, вся система притормаживает, а давайте-ка ещё лишней работы сделаем, у нас же 8 ядер, и все больше гигагерца.
Mike
Выглядит как N+1 query problem
С SQLite это не проблема. Ну и эти запросы не лишние в данном случае.
Seva
+
Может вы тут и не говорите. А все туториолы на гугле именно идут руум с руциклер вью. Ужас какой-то. RecyclerView берет и порциями выдает на экран. Казалось бы, тут и курсору от базы данных самое место. Ан нет. Только все и сразу из базы. От курсора надо отказываться. Можно извратиться. Но не рекомендованно гуглом.
Mike
Как у этих «туториалов на гугле» дела обстоят с обновлением данных? ДиффУтил, Пэйлоадс и т. п.
Oleg
Может вы тут и не говорите. А все туториолы на гугле именно идут руум с руциклер вью. Ужас какой-то. RecyclerView берет и порциями выдает на экран. Казалось бы, тут и курсору от базы данных самое место. Ан нет. Только все и сразу из базы. От курсора надо отказываться. Можно извратиться. Но не рекомендованно гуглом.
Не можете работать без одобрения от гугла?) Есть компоненты, которые гуглом рекомендуются, но никто другие компоненты не отменял. Никто не отменял moxy, realm, cicerone и миллиард других библиотек помогающих (или нет) в разработке. Это не значит, что ресайклвью - говно. Или пэйджинг - говно. Это значит, что надо использовать то, что нужно для решения задачи. Как канал телеграма будете подгружать без ресайкли и пэйджинга (или их точно таких же аналогов - велосипедов)?
Seva
в лист вью подгрузится. И ничего с ним не случится.
Seva
тут меньше 30 тысяч текстовых полей по определению
Mike
в лист вью подгрузится. И ничего с ним не случится.
Листвью всё равно, сколько миллиардов элементов в списке. Вся нагрузка — на их выгрузку.
Seva
Миллиард я не пробовал... А 30 тысяч нормально. Тупым сравнением строк, и не имеющих совпадение фильтруется за доли секунды.
Seva
Какая там нагрузка?
Seva
нагрузка у телеграмма. Он мешает посылать сюда сообщения.
Mike
лол)
Seva
Все что с Вашим мнением не согласно - и сразу надо обзываться? Прибумай другое слово.
Oleg
Все что с Вашим мнением не согласно - и сразу надо обзываться? Прибумай другое слово.
Ну ты уперся в свой пример и не хочешь слушать примеры других - как еще тебя назвать) Определенно ты пытаешься порвать пуканы))
Max
Сколько в грн реально попросить за проект с нормальным фронт и бекендом, где есть авторизация пользователя разделение доступа, удаленная живая работающая бд и доп фичи типу поиск по бд, настройки тем и шрифтов, редактирование БД с приложения по разделенным уровням доступа. Обработаны все ексепшины, выводятся нужные тосты, с дизайном тоже проблем нету, оптимизировано под андроид 6 и выше?
Seva
А если у кого-то чего-то тормозить - это не проблема рецислер вью или лист вью.
x
Скажите пожалуйста можно ли заменить изображения в приложении, получилось заменить просто открыв apk через архиватор, но приложение вначале ругалось что оно сломалось и что то там не сходится, через лаки патчер получилось подписать тестовой подписью, приложение стало загружаться до того момента где изображение заменено и закрывается Вопрос такой возможно ли поменять на своё изображение и если можно как это сделать правильно