Android Temel Başlıklar (Kısa kısa) v3 – RxJava, RxAndroid – Elif Boncuk's Blog
Date: 19/04/2016Author: Elif BONCUK 1 Yorum
Basitçe nasıl bir yapısı vardır diye bakarsak, yukarıdaki örnekte bir liste var. Bunu filtreleyip, ekrana yazdırıyoruz. Bunu bu sırada gözlemleyebiliyoruz. Yani bu tabi dilin gücün gösteren bir örnek değil ama syntax’ anlamak için yeterli bir örnek.
Processing chain’de hangi methodlar vardır dersek de transformer olarak map, flattop, scan; filters olarak filter, trottle, take,ship; Condition olarak amb, shipwhile, takewhile; combination olarak concat, zip, combineLatest; Aggregate olarak da count, reduce, toList, toMap. Şimdi temel olarak RxJava gözümüzde canlandı.
RxAndroid ise, Java ama plain Java değil. Daha çok UI. RxAndroid aslında RxJava’nın android için özelleşmiş şekli gibi düşünebiliriz. Android’de reactive componentleri daha basit ce kolay şekilde yazabilmek için var. Android Studio’da gradle dosyasında dependency’leri aşağıda görüldüğü gibi 2 satır kodu ekleyerek kullanmaya başlayabiliyoruz. Onun altında ise konsoldan nasıl çalıştığı görülebilir.
Peki RxAndroid’le tam olarak neler yapabiliriz?
Üstteki imajda görülen stardart bir button ve click listenerı. Tıklandığında bir method çağrılıyor. Alttaki imajdaki için reactive implementasyonu. Aşağıdaki örnekte click listenerı dinlemeye başladık. Ancak gözlemleme işleminin başlaması için subscribe da edilmesi gerekli. Bir alttaki kutu içerisinde ise bunu görüyoruz.
Bu bize ne sağladı dersek, mesela araya delay koyabilirdik. İşlemi artık main thread’de yapmıyoruz. Triggeraction’ın main thread’de yapılmaması gereken, mesela bir mail gönderim işlemi olabilir, bir işlem olduğunu düşünelim. Bunu RxAndroid gibi bir lib kullanmadan yaptığımızda bizim async task ya da worker thread kullanmamız gerekirdi aslında. Bizim yapacağımız işlemi kendisi yapmış oluyor.
Bu mesela örneğin native bir login sayfasında, birden çok edittext alanı dinleip hepsi validse işleme devam et demek için kullanılabilirdi.
Az önceki örnekte, button Android’in kendi butonuydu. Biz sadece observe ettik ama mesela çok daha basit bir şekilde RxBinding’i kullanarak yapabilirdik. Çok fazla view’in Rx versiyonu hali hazırda yazılmış durumda.
Umarım genel bir fikir oluşmasında faydalı olmuştur. 🙂
Önceki Previous post: Android Temel Başlıklar (Kısa kısa) v2 – Android Build System
Sonraki Next post: Neden Content Provider kullanılmalı?
One thought on “Android Temel Başlıklar (Kısa kısa) v3 – RxJava, RxAndroid”
Mahmut Taşkıran dedi ki:
06/01/2017, 4:40 PM
Emeğinize sağlık. Teşekkürler…