Kotlin – Döviz Uygulaması Part 2
Selamlar, Bir önceki yazımda yapacağımız döviz uygulamasının tasarımını çıkarmıştık şimdi ise bu tasarıma verileri ekleyerek güzel bir uygulama elde etmeliyiz. Projemi ilk önce bir klasörleme yaparak dosyaların düzenli durmasını istiyorum ve şu klasörleri projeme ekliyorum.
Klasörlememi de yaptıktan sonra HomeFragment ve MainActivity dosyalarını view klasörü altına ekliyorum. Daha sonra model klasörü altında Currency.kt adında bir sınıf oluşturuyorum ve bu sınıf içerisine API’dan çekeceğimiz verileri modelleyeceğim. Modelleme işlemi için Android Studio içerisinde ben Json to Kotlin adında bir plugin kullanıyorum. Bu plugin sayesinden API’dan gelen Json verisini direk yapıştırıyorum ve benim için modeli çıkartıyor.
Modeli oluşturduktan sonra service klasörü altında CurrencyAPI adında bir kotlin interface’i oluşturup GET işlemi yapacağımı ve adresini belirtip bana bunun bir Call<Currency> döndüreceğini söylüyorum.
Model ve Service kısımlarını hallettikten sonra gelecek verinin recyclerview içerisinde gözükmesi için bir adapter oluşturmamız gerekir bunun için adapter klasörü altında CurrencyRecyclerViewAdapter dosyasını oluşturuyorum. Bu adapter’ın içerisine API’dan gelecek döviz isimlerini ve değerlerini alacak şekilde 2 tane liste tutuyorum. Aynı zamanda bir RowHolder oluşturup her gelen içerisinde atama işlemlerini yapacağımı RecyclerView.Adapter oluştururken söylüyorum. RowHolder class’ımı oluşurup içerisinde bir bind fonksiyonu oluşturuyorum. Bu fonskiyon içerisinde bir isim ve bir de değer alıp tasarımımda oluşturduğum itemların text’lerine atıyorum ve RowHolder içerisinde işim bitiyor. onCreateViewHolder altında hangi view’dan türetileceğini söylüyorum bu bizim oluşturduğumuz view ve bunu RowHolder olarak döndürüleceğini belirtiyorum. onBindViewHolder da ise bu holder’ımın bind fonksiyonunu çağırarak işlemlerimi yapıyorum ve adapter içerisinde işlemlerimi tamamlıyorum.
Uygulamamızın çoğu kısmı bitti şimdi fragment içerisinde veriyi alıp adapter ile göstermek kaldı,hemen bunu yapmaya başlayalım. HomeFragment’ım içerisinde hemen BASE_URL’imi belirtiyorum ve daha sonra currencyNames’lerimi belirtiyorum. Döviz isimlerini elle beliritiyorum çünkü gelen json verisinden almam mümkün olmadı bu şekilde döviz isimlerini ekliyorum. Currencyvalues ve adapter’ımı oluştururak başlangıcımı bitiriyorum. onViewCreated altında oluşturduğum recyclerview’ın layout manager’ını LinerLayoutManager yapıyorum ve dikey bir şekilde verilerim ekranda gösterilecek ve ayrıca getCurrencyRates adında bir fonskiyon çağırıyorum. getCurrencyRates fonskiyonu içerisinde veri çekme işlemlerimi yapıyorum. Bir retrofit oluşturuyorum ve bunun içerisine base_url imi veriyorum daha sonra service adında bir değişken oluşturup retrofitimi bunun içerisinde atıyorum. Bu service değişkeninide kullanarak bir call oluşturuyorum ve CurrencyAPI içerisinde oluşturduğumuz getCurrency fonksiyonunu çağırıyoruz.
Bir call.enqueue oluşturarak bize başarılı ve başarısız adında iki method override ediyor bu başarılı method içerisinde gelen bütün döviz değerlerini yukarıda oluşturduğumuz currencyValues içerisine atıyorum ve daha sonra oluşturduğum adapterımı initiliaze ediyorum ve içerisine currencyNames ve currencyValues ları atıyorum bu adapter’ıda oluşturduğum recyclerview’ımın adapterı olduğunu belirtiyorum.
Uygulamamızda her şey tamam şimdi çalıştırdığımız zaman uygulamamızın düzgün bir şekilde çalışmasını bekliyorum, hemen deneyelim.
Uygulama bende düzgün bir şekilde çalıştı, gayet başarılı bir şekilde verilerimizi çekip ekrana yazdırabildik. Eğer bu işlemleri yaparken herhangi bir sorun yaşadıysanız veya bir problem ile karşılaştıysanız yorumlarda belirtirseniz sevinirim. Projeye buraya tıklayarak ulaşabilirsiniz.