API Pagination In Compose Multiplatform (KMP)
- Compose Multiplatform에서 외부 라이브러리 없이 API 페이지네이션을 수동으로 구현하는 방법을 소개합니다. 🚀
- 단일 데이터 소스(원격 API 또는 로컬 DB)에 적합하며, 복합 소스에는 Jetpack Paging 라이브러리를 고려할 수 있습니다. 📚
- Android, iOS, Desktop 등 KMP의 다양한 타겟에서 작동하는 무한 스크롤 리스트를 시연합니다. 🌐
- KTOR 네트워크 클라이언트를 사용하여
dummyjson.com API에서 데이터를 가져오며, limit와 skip 파라미터로 페이지네이션을 제어합니다. 🔢
kotlinx.serialization을 활용하여 API 응답을 ProductDTO 및 ProductResponseDTO 데이터 클래스로 파싱합니다. 📦
- KTOR,
kotlinx.serialization, lifecycle-viewmodel-compose 등 필수 의존성을 설정하고, 플랫폼별 HTTP 엔진을 구성합니다. 🛠️
ProductsAPI 클라이언트에서 getProducts suspend 함수를 통해 page와 pageSize를 기반으로 skip 파라미터(page * pageSize)를 계산하여 API 요청을 보냅니다. 📡
- API 호출 중 발생할 수 있는 예외를
Result 타입과 try-catch로 처리하며, 코루틴 취소에 대한 고려사항을 언급합니다. ⚠️