Halo sobat koding… Balik lagi nih gw, kali ini gw mau bahas tipe-tipe data yang ada di RxJava. Kalian yang pernah menggunakan RxJava pasti kalian familiar dengan Observable
. Apa sih Observable
itu? Observable
adalah sebuah konsep model dimana, kita bisa melakukan stream data secara asynchronous dengan cara yang sederhana dan lebih mudah untuk dibaca. Semua peristiwa itu akan memancarkan nilai dari waktu ke waktu.
Selain Observable
ada juga lho tipe-tipe yang lain seperti : Single
, Completable
, Maybe
(RxJava2), Flowable
(RxJava2).
Single
adalah tipe yang mewakili Observable
yang memancarkan nilai tunggal atau kesalahan. Contoh pemakaiannya antara lain permintaan data ke server, dan pengambilan data DataBase.
Completable
adalah tipe yang mewakili Observable
tapi tidak memancarkan nilai, hanya kejadian di terminal saja yaitu OnComplete
(Berhasil) atau OnError
(Gagal).
Maybe
adalah tipe baru di RxJava2. Tipe ini adalah gabungan dari Completable
dan Single
. Dengan Maybe
kita dapat memiliki beberapa nilai seperti Single
atau tidak mengembalikan apa-apa – sama seperti Completable
.
Contoh ambil data dari cache, kita belum tentu memiliki nilai di cache, jadi dalam hal ini, kita akan menyelesaikannya, sekarang kita akan mendapatkan onNext
nilai dari cache. Ini juga layak untuk menangani nilai non-null dalam streaming dengan RxJava2.
Flowable
adalah metode alternatif untuk mengurangi jumlah emisi. Fungsi Flowable
dalam banyak cara yang sama sepert Observable
, namun dengan satu perbedaan utama: Flowable
hanya mengirim item sebanyak permintaan pengamat. Jika kamu memiliki Observable
yang memancarkan lebih banyak item daripada pengamat yang ditugaskannya bisa konsumsi, maka kamu mungkin ingin mempertimbangkan untuk beralih ke Flowable
sebagai gantinya.
Kenapa menggunakan Flowable
ketika kita bisa menggunakan Flowable
? jawabannya adalah Flowable
menghasilkan overhead lebih banyak daripada Observable
biasa, sehingga dalam kepentingan membuat aplikasi berkinerja tinggi, anda harus tetap dengan Observable
kecuali jika anda menduga bahwa aplikasi anda sedang berjuang dengan backpressure. Backpressure adalah cara menangani situasi di mana data dihasilkan lebih cepat daripada pemrosesannya.
Demikian pembahasan dari saya, semoga artikel ini berguna untuk sobat koding semua, thank you…