Kwery - управление серверными данными для Android-приложения
Kwery — это библиотека для управления серверным состоянием в Android-приложении. По смыслу она очень похожа на TanStack Query/React Query, только для Kotlin/Android. Она не заменяет Retrofit, Ktor или OkHttp, а работает поверх них. Автор формулирует идею так: "Room хранит данные, которыми владеет приложение. Kwery управляет данными, которыми владеет сервер".
Kwery предлагает взять на себя значительную часть типовой логики между UI и сетевым клиентом. При этом сам HTTP-запрос всё равно делает Retrofit/Ktor/OkHttp. Kwery однако решает, когда его вызывать, нужно ли вообще вызывать, можно ли отдать уже имеющиеся данные и как показывать состояние запроса.
Основные вещи, которые она делает:
• Кэширует ответы сервера. Если экран повторно запрашивает те же данные, Kwery может вернуть существующий результат вместо нового HTTP-запроса.
• Дедупликация запросов. Если несколько экранов/компонентов одновременно запросили один ресурс, не обязательно делать несколько одинаковых запросов.
• Управляет состояниями loading/success/error.
• Делает retry при ошибках.
• Может обновлять данные в фоне.
• Управляет устареванием кэша.
• Поддерживает offline-сценарии, в том числе управляет записью данных без сети и затем синхронизацией при ее появлении.
• Может переиспользовать один результат между несколькими подписчиками.
• Использует корутины Kotlin + Flow.
• Есть интеграция с Compose.
Kwery на GitHub: https://github.com/dbjpanda/kwery
Платформа: Android
⭐️: 16
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Kwery — это библиотека для управления серверным состоянием в Android-приложении. По смыслу она очень похожа на TanStack Query/React Query, только для Kotlin/Android. Она не заменяет Retrofit, Ktor или OkHttp, а работает поверх них. Автор формулирует идею так: "Room хранит данные, которыми владеет приложение. Kwery управляет данными, которыми владеет сервер".
Kwery предлагает взять на себя значительную часть типовой логики между UI и сетевым клиентом. При этом сам HTTP-запрос всё равно делает Retrofit/Ktor/OkHttp. Kwery однако решает, когда его вызывать, нужно ли вообще вызывать, можно ли отдать уже имеющиеся данные и как показывать состояние запроса.
Основные вещи, которые она делает:
• Кэширует ответы сервера. Если экран повторно запрашивает те же данные, Kwery может вернуть существующий результат вместо нового HTTP-запроса.
• Дедупликация запросов. Если несколько экранов/компонентов одновременно запросили один ресурс, не обязательно делать несколько одинаковых запросов.
• Управляет состояниями loading/success/error.
• Делает retry при ошибках.
• Может обновлять данные в фоне.
• Управляет устареванием кэша.
• Поддерживает offline-сценарии, в том числе управляет записью данных без сети и затем синхронизацией при ее появлении.
• Может переиспользовать один результат между несколькими подписчиками.
• Использует корутины Kotlin + Flow.
• Есть интеграция с Compose.
Kwery на GitHub: https://github.com/dbjpanda/kwery
Платформа: Android
⭐️: 16
👨🦯➡️ AppFiles: код, инструменты, практики, производительность