Perbedaan Fungsi
Fungsi | Rx Java | Coroutine Flow |
Tipe Observable | Observable, Flowable, Single, Maybe, Completable | Hanya satu yaitu Flow |
Membuat Observable dari object | Create, Just, Dll | flowOf |
Mengambil data | subscribe | collect |
Context preservation | subscribeOn,observeOn | flowOn |
Tipe thread | Schedulers | Dispatchers |
Backpeesure | Secara default tidak ditangani oleh RX, harus didefinisikan manual. | Secara default sudah ditangani oleh Flow |
Untuk request dengan retrofit | Perlu RxJava Adapter | Bisa langsung digunakan |
Untuk database dengan room | Perlu library Room RxJava | Perlu library Room Ktx |
Lifecycle management | Menggunakan Disposable | Bergabung dengan viewModelScope |
Kelebihan dan Kekurangan
RxJava | Coroutine Flow | |
Bahasa | Dibuat dengan java | Dibuat dengan kotlin |
Execution | Blocking | Suspending |
Thread Manajemen | Harus diatur pada setiap observer | Dapat diatur dalam satu tempat |
Baris kode | Lebih banyak | Lebih Sedikit |
Kecepatan | Lebih lambat | Lebih cepat |
Multi-platform | Tidak support multi platform | Support multi platform |
Maturity | Sudah teruji dan stable | Walaupun flow sudah stable, namun ada API yang masih experimental |
Pengguna | Sudah banyak digunakan perusahaan besar sejak lama | Masih baru dibandingkan dengan Rx |
Operator | Memiliki operator yang lebih komplit | Hanya operator yang sering digunakan sehingga lebih ringan |