在2019年,Apple推出了Combine框架,Combine是一個綁定UI的響應式編程函式庫,而什麼是響應式編程呢?
響應式編程就是一種面向資料串流和變化傳播的聲明式程式設計範式。
這意味著可以在程式語言中很方便地表達靜態或動態的資料流,
而相關的計算模型會自動將變化的值通過資料流進行傳播。
取自維基百科
這樣可能有點難以理解,那我舉個例子來說明。在Excel試算表中,假設有個產品叫蘋果,單價為10塊,庫存有10個,獲利一開始為0,當庫存變成9個的時候,你不用主動去修改獲利,就會自動變成10塊,這就是典型的響應式編程範例。
Combine提供了一個宣告式的Swift API,隨著時間的變化去處理值。這些值可以表示多種異步事件。發佈者(publisher) 產出可隨時間變化的值,而訂閱者(subscriber) 從發佈者接收這些值。
而publisher和subscriber都是泛型,publisher有Output跟Failure,subscriber有Input跟Failure,而當連接一個subscriber到任何的publisher時,所有相對應的資料型別都必須相同,Output對應Input,對應Failure對應Failure。
講到這裡,有沒有發現Combine跟MVVM也是使用Data Binding方式來進行溝通的呢?
那我們明天就來使用Combine實作一個小專案吧!