#paginator — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #paginator, aggregated by home.social.
-
Обновление Paginator с 3.x до 8.x
Эта статья — про то, что реально изменилось, и в каком порядке я бы рекомендовал это трогать. Основано на диффе между (3.3.0) и (8.6.2).
-
Почему я написал Paginator вместо Paging 3
Это статья от автора библиотеки, поэтому нейтральным разбор не будет. Но это и не рассказ про конкретный проект — а разбор задач, на которых, на мой взгляд, Paging 3 начинает буксовать, и того, как Paginator устроен, чтобы эти задачи закрывать. KMP-библиотека пагинации для Android, iOS, JVM и Desktop. Ниже — почему она появилась именно как отдельная библиотека, а не как fork или обёртка над Paging 3.
-
Мессенджер на Paginator. Боевые задачи
В прошлой статье я сравнивал Paginator с Paging 3 на кошачьем уровне: «вот простой фид, смотрите — три строки вместо тридцати». Это полезно для первого знакомства, но не отвечает на главный вопрос: а как оно себя поведёт, когда продукт начнёт требовать то, ради чего люди обычно и пишут свой велосипед поверх Paging 3? В этой статье я беру мессенджер — потому что мессенджер это честный полигон. Там есть:
-
Paging 3 хорош. Пока вам не понадобится что-то ещё
Если коротко: пагинация — это когда вы не грузите 100 000 товаров из каталога одним запросом, а показываете их страницами по 20–50 штук и подгружаете следующую порцию, когда пользователь домотал до конца. Звучит как задача на полдня. На практике — по-разному. Я пишу мобильные приложения уже давно, и каждый раз, когда в новом проекте появлялась пагинация, рядом с ней через месяц-другой появлялся один и тот же набор багов и ad-hoc-решений. Флаги isLoadingNextPage , isLoadingPrevious , isRefreshing , isEmpty , hasError , hasNextPage . Попытки «просто заменить элемент без перезагрузки страницы». Восстановление позиции после убийства процесса. Прыжок на конкретную страницу по deeplink. На Android есть Jetpack Paging 3, и его берут по умолчанию. Но как только вы выходите за рамки «загрузи следующие 20 элементов на скролле вниз» — начинается интересное. А если ваш проект — Kotlin Multiplatform, то Paging 3 вообще не ваш вариант: это Android-библиотека, она не едет на iOS. Я расскажу про опенсорсную библиотеку Paginator , которую делаю последние несколько лет. Она работает одинаково на Android, JVM и iOS из одного commonMain , закрывает сложные сценарии из коробки — и даже на самой обычной ленте настраивается короче, чем Paging 3. Это не поход против Paging 3 и не попытка что-то кому-то доказать. Это просто описание того, что есть другой инструмент, и он делает то же самое компактнее.
https://habr.com/ru/articles/1027320/
#paging #paging_library #paging3 #paginator #kmp #android #kotlin