Jetpack Compose'da Paging3 Kullanımı

Bu mobide, Jetpack Compose kullanarak Paging3 kütüphanesi ile nasıl pagination işlemi gerçekleştirebileceğinizi öğreneceksiniz.


Görsel Referansı


Pagination Nedir?


Pagination, çok fazla sayıda veri içeren kaynaklardan gelen verileri tek seferde kullanmak yerine bunları küçük parçalara bölerek kaynak kullanımını azaltmayı hedefleyen yapıdır.


Bu yazıda direkt olarak API'den gelen veriye nasıl pagination işlemini uygulayıp kullanabileceğinizi öğreneceksiniz. Bundan dolayı ilk olarak Retrofit objesini ve API servisini yazarak işleme başlayın.


Retrofit Kurulumu


Paging3 kullanmak için Retrofit kurulumunda ekstra bir işlem yapmanıza gerek bulunmuyor. Bu mobinin projesi için bir dependency injection kütüphanesi olarak Hilt kullanıldığı için Retrofit kurulumu Hilt modülü içerisinde gerçekleştirildi.


@Module
@InstallIn(SingletonComponent::class)
class NetworkModule {
    @Singleton
    @Provides
    fun provideRetrofit(
        gsonConverterFactory: GsonConverterFactory
    ): Retrofit {
        return Retrofit.Builder()
            .addConverterFactory(gsonConverterFactory)
            .baseUrl("https://newsapi.org")
            .build()
    }

    @Singleton
    @Provides
    fun provideGsonConverterFactory(): GsonConverterFactory {
        return GsonConverterFactory.create()
    }

    @Singleton
    @Provides
    fun provideNewsService(retrofit: Retrofit): NewsService {
        return retrofit.create(NewsService::class.java)
    }
}

Retrofit nesnesi