Kotlin Retrofit Kullanımı

Kübra Utman
3 min readNov 6, 2018

Bu yazımda sizlere Kotlinde retrofit kullanımını anlatacağım. Öncelikle Json ın çıkış amacı veri transferlerinde verilerin XML’den daha az yer kaplamasını sağlamak. Bizim birçok yerde uzak sunuculara request atmamızı sağlıyor. Uygulamamıza başlamadan önce kullanacağımız Json verilerini analiz etmek için tarayıcınıza şu eklentiyi ekleyebilirsiniz.

Uygulamamızın için öncelikle android manifest dosyasında internet izni alalım.

Android Studiodan yeni bir proje açalım. 1. adım projemize retrofit kütüphanesini dahil etmek.

Retrofit kütüphanesini uygulamamıza dahil ediyoruz. Ben uygulamamda bu linkteki json i kullanacağım. Json dosyasına bakarak uygulamamızda data classlarımı oluşturalım. Json objelerimizdeki değişkenler ile data classlarımdaki değişkenler aynı olmak zorunda buna dikkat edelim.

2. adımda Json dosyamıza bakarak Classlarımızı oluşturmak. Bizde Hero adında data classı oluşturduk.

3. adım olarak Ağ isteklerini Retrofit ile RESTful API’ye göndermek için RetrofitClient adında bir sınıf oluşturduk. Retrofit Builder kullanarak Companion object ile singleton bir yapı sağlayarak classımıza adıyla erişebilmemizi sağlıyor.

Burada classımızda kullacağımız API nin baseurl i ve JSON verimizi daha önce tanımladığımız Hero classına eşleyecek olan GsonConverterFactory’yi ekledik.

4. adım olarak Requestlerimi atacağımız bir service classı oluşturmak için interface tanımladık. Requestin tipini belirledik.

İnterface imizde requestin tipini GET() olarak belirledik ve baseurl den sonra gelecek olan kısmı yazdık. Bu requestin sonucunu göndermek için bir fonksiyon oluşturduk . Call<List<Hero>> ile json tipi array olduğu için List dedik ve sorguyu cast edeceğimiz yeri belirttik.

Şimdi json dan uygulamamızda göstermek istediğimiz alanlar için Recycler view kullanacağız.

Ben MainActivity de recyclerView kullandım. Android cihazda sadece ekrana sığan kısmını görürsünüz bu yüzden ScrollView kullandık böylece sayfada aşağı doğru nesneleri yerleştirebiliz.

MainActivity de request atacağımız classımıza erişmek için RetrofitClient tan Service interface ine eriştik ve istek atacağımız metotu çağardık. Sonrasında

enqueue() asenkron bir istek göndermemizi sağlıyor ve yanıt geldiği zaman belirtmek için Callback ile classımızı kullandık .

enqueue() kullanarak 2 metodu implement ederiz.

  • onResponse()
  • onFailure ()

onResponse() alınan http yanıtı sonucunda yapacaklarımız için kullanırız. onFailure() sunucu ile iletişim kurarken yada yanıt işlenirken beklenmedik bir istisna oluştuğunda çağırılır. Bu metotları override ettik.

Biz burda recylerView mizde görüntülemek için response.body() metodundan gelecek cevabımızı ekledik. Uygulamamız bitti :)

Uygulamanın recyclerView kısmını burdan inceleyebilirsiniz.

Umarım sizin için yararlı olmuştur. Uygulamanın tamamını buradan inceleyebilirsiniz.

--

--

No responses yet