CategoriesProgrammingSwift

Reactive Programming dengan Combine Framework

Introduction

Selama ini mungkin kita menggunakan library seperti RxSwift untuk membuat aplikasi kita menjadi reactive. Nah pada tahun 2019, Apple sudah merilis framework bernama Combine. Kelebihan dari framework ini yang pertama ialah ini merupakan library native sehingga tidak perlu lagi melakukan install third library dan untuk syntaxnya sendiri cukup expresif sehingga mudah untuk dipelajari.

Sebelum deep dive lebih dalam mungkin kita perlu mengenal apa itu Reactive Programming?

Reactive Programming secara sederhana adalah ketika terjadi sebuah perubahan pada data, maka aplikasi kita akan update secara sendirinya tanpa kita suruh berulang-ulang. Contohnya pada excel ini ketika ketika melakukan perubahan pada angka, hasil pertambahan akan ter-update tanpa kita hitung secara manual lagi.

Konsep Dasar

Konsep dasar dari Reactive Programming adalah Subsriber dan Publisher:

  1. Publisher -> Memberikan/Publish data
  2. Subsriber -> Menangkap/Mengobserve sebuah ada
  3. Operator -> Apa yang ingin dilakukan dengan data yang ada

Kita ambil studi kasus youtube, ketika kita melakukan subscribe terhadap youtuber tertentu, kita akan selalu mendapatkan notif dari update terbaru. Di sini youtuber adalah Publisher, kita adalah Subsriber, dan operator dapat berupa tindakan yang ingin kita lakukan contohnya melihat notif tersebut atau tidak. Seandainya youtube tidak menggunakan konsep reactive, maka youtubers harus memberitahukan update secara manual terhadap subscribersnya dan jika menggunakan konsep reactive maka youtuber hanya perlu memberikan nilai/update/video terbaru dan subscriber akan mendapatkan notif secara otomatis.

Praktek Code

Yuk, kita deep dive gimana kodenya. Pertama-tama ayo kita membuat 2 variabel

  • Variabel pertama adalah variabel youtubers yang akan disubsribe.
  • Variabel kedua adalah variabel yang berguna untuk melakukan memory management yaitu ketika object ini terdeallocated dari memory maka secara otomatis subscribers akan stop melakukan observe terhadap publishers.

Berikut kode untuk menglakukan subscribe, di sini kita menggunakan sebuah operator yaitu .sink di mana ketika terdapat data baru, kita akan melakukan print pada data tersebut.

Ayo kita ikut skenario seperti youtuber ingin melakukan posting video. Di sini kita menambahkan video sebanyak 3 kali.

Hasil print

Kesimpulan

Itulah reactive programming, kita tinggal memberikan data, dan biarkan subsribers yang akan mengolah data tersebut. Jika menggunakan cara imperative berarti setiap kali kita menambah nilai baru, maka kita perlu melakukan print berulang kali.

Semoga artikel ini dapat membantu dan memberikan wawasan mengenai apa itu Reactive Programming.

Source code untuk diotak-atik
https://github.com/windywu812/CombineFramework101

Leave a Reply

Your email address will not be published. Required fields are marked *