İlk olarak yazı bilgilerimizi internet üzerinden çekeceğiz. Teknotra, WordPress tabanlı bir web site olduğundan dolayı hazır tanımlı API bilgilerini kullanacağım. Bu bilgiler üzerinde az değişiklikler ile siz de kendi WordPress web sitenizin Android uygulamasını yapabilirsiniz. Kısaca bu yazıda WordPress API kullanımı yapacağız.
WordPress kendi içerisinde yazıları ve medyaları JSON formatında verebilen bir API barındırmaktadır. Bu API ile ilgili tüm bilgileri WordPress üzerinden edinebilirsiniz.
WordPress API Kullanımı Kodları
Cihazın internetini kullanacağımız için programın cihaz üzerinde internet kullanımı izni olması gerekmektedir. Bu izni belirtmek için programın AndroidManifes.Xml dosyasın <application etiketinden önce aşağıdaki kodu ekleyin.
<uses-permission android:name="android.permission.INTERNET" />
Java programlama dili kullanarak Android uygulaması yazarken internet üzerinden bir çok şekilde JSON alıp bunlarla işlem yapabilirsiniz. Ben Volley kütüphanesini kullanacağım.
Bunun için ilk olarak build.gradle dosyasına girip aşağıdaki satırı dependencies içerisine ekleyin. Ardından Sync demeyi unutmayın.
implementation 'com.mcxiaoke.volley:library:1.0.19'
Hazır burayı açmışken alacağımız JSON dosyasını parçalamak için kullanacağımız kütüphaneyi de ekleyelim. Yani dependencies içerisine aşağıdaki kod satırını da ekleyin ve ardından Sync diyin.
implementation 'com.google.code.gson:gson:1.7.2'
Benim önceki projelerimde de kullanmış olduğum bir kod bloğu var. Bir hata olursa asla o hatayı yakalamayan yakalasa da bir şey yapmayan çok kötü bir kod. Ancak bu açık kaynak kodlu proje için işimizi göreceğini düşünüyorum.
Bu fonksiyonu hem resmi alırken hem de yazının bilgilerini alırken kullandım. Fonksiyonların genel mantığını anlatacağım. Fonksiyonun kodlarına bakıp yorumlamak size aittir.
Her iki durumda da WordPress API’ına bir GET sorgusu attım ve gelen JSON bilgisini parçaladım yani deserialize ettim. Resimleri alırken recursive bir fonksiyon yapısı kullandım.
Yazı ve resim bilgilerinin sonucu yani JSON dosyasını deserialize edebilmek için dosyasının yapısını bir Java sınıfı olarak programa tanıtmanız gerekmektedir. Bu tanıtma işini Json To Java Class tarzı online araçlar kullanarak yapabilirsiniz.
Resim ve yazı bilgilerini kendi oluşturduğum sınıfı kullanan listeye aldım. Listeyi CustomAdapter objemiz ile bağladım. Ekranda bu lisitenin elemanlarını gösterirken elemanlarda bazı düzenlemeler yaptım. Başlıkları title objesinden değil de slugdan aldığım için ilk harfleri büyük yazma fonksiyonu oluşturdum (yazı içerisinde i harfi problemi olacaktır). Resimleri URL’den bitmape dönüştürmek için Picasso kütüphanesini kullandım. Tarihin formatını düzenlemek için de basit bir fonksiyon yazdım.
Şimdilik liste içerisinde son 10 yazımızı alabiliyoruz. İlerleyen yazılarda daha fazla yazıyı almayı ve kategoriye göre liste yapmayı inceleyeceğiz.
Projenin tüm kodlarına projenin GitHub sayfasından ulaşabilirsiniz.
Çocukluğumdan beri arabalara olan ilgim babam sayesinde başlamıştır. Araba manyağı seviyesinde bir ilgim var ancak bunu her ortamda dile getirmem. Teknolojiye ve bilgisayara olan ilgim kendimi tanımaya başladım başlayalı oldu. Şimdi ise kendimce kod yazabilen bir bilgisayar mühendisi olarak çalışıyorum.