Почему я написал Paginator вместо Paging 3

Это статья от автора библиотеки, поэтому нейтральным разбор не будет. Но это и не рассказ про конкретный проект — а разбор задач, на которых, на мой взгляд, Paging 3 начинает буксовать, и того, как Paginator устроен, чтобы эти задачи закрывать. KMP-библиотека пагинации для Android, iOS, JVM и Desktop. Ниже — почему она появилась именно как отдельная библиотека, а не как fork или обёртка над Paging 3.

https://habr.com/ru/articles/1030294/

#kmp #kotlin #paging3 #paging #paginator

Почему я написал Paginator вместо Paging 3

Это статья от автора библиотеки, поэтому нейтральным разбор не будет. Но это и не рассказ про конкретный проект — а разбор задач, на которых, на мой взгляд, Paging 3 начинает буксовать, и того, как...

Хабр

Мессенджер на Paginator. Боевые задачи

В прошлой статье я сравнивал Paginator с Paging 3 на кошачьем уровне: «вот простой фид, смотрите — три строки вместо тридцати». Это полезно для первого знакомства, но не отвечает на главный вопрос: а как оно себя поведёт, когда продукт начнёт требовать то, ради чего люди обычно и пишут свой велосипед поверх Paging 3? В этой статье я беру мессенджер — потому что мессенджер это честный полигон. Там есть:

https://habr.com/ru/articles/1027686/

#kmp #paging #paginator #paging3 #mobile #multiplatform

Мессенджер на Paginator. Боевые задачи

В прошлой статье я сравнивал Paginator с 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

Paging 3 хорош. Пока вам не понадобится что-то ещё

Вступление, которое можно пропустить, если вы уже делали пагинацию Если коротко: пагинация — это когда вы не грузите 100 000 товаров из каталога одним запросом, а показываете их страницами по 20–50...

Хабр
Google Issue Tracker

How can we fetch the next page data in Jetpack Paging 3 only when the user clicks the View More button? We don't want to automatically fetch the next page data without the user clicking the button. Is there a solution for this? #AndroidDev #Paging3 #jetpack #android #pagination
Caching and Pagination with Paging 3 in Android & Jetpack Compose - droidcon

In this article we’ll be implementing caching and pagination with Paging 3. We’ll use Jetpack Compose but you can also follow this article and learn from it even if you are not going to use Jetpack Compose. Except the UI layer, most of it will be similar.

droidcon