What is Combine? 2019 年 7 月,apple 在 wwdc 介紹了全新的 SwiftUI,一個以宣告式編程結合響應式編程的所見即所得 UI...
Combine 提供了宣告形式的 Swift API,主要處理隨時間處理值變化(各種異步行程產出的事件)。發布者(publisher) 產出可隨時間變化的值,訂...
Publisher 有許多方式可以建立, 有單獨的, 復合的, 組合的, 媒介的, 不同的 Publisher 分別有不同的型別.其中以 Just 與 Futu...
首先, 讓我們認識響應式編程! 顧名思義, 響應式編程的目的是一種編程的方法, 其中心想法不同於物件導向編程是面對物件為主, 響應式編程是以面對資料變化為主....
Combine 之中, Publisher 是資料來源, Subscriber 是控制資料流的操作員, Subscriber 可以限制接收的資料信息量, 透過...
Subject 是一種特殊的 Publisher, protocol Subject 是 protocol Publisher 的繼承類: protocol S...
30 天的密集學習之後, Combine 的難度其實並沒有想象的高, 在未來 SwiftUI 的普及之下, 相信響應式編程會是一個對新手的一座難以跨越的高山,...
上一篇提到響應式的概念, 為了更能理解響應式編程, 這篇將使用 Swift 基本語法來介紹. 面向資料 在 Swift 中, 可以使用 computed var...
如果你沒有要自製 Subscriber 的需求, 其實 Combine 已經完整的封裝了, 不需要額外理解特殊的處理. 以下翻譯自 Combine docume...
基本觀念的最後一個部分,Operator,就像是物件導向的不同部分有不同的變形一樣,Operator 在 Combine 中扮演了舉足輕重的角色,沒有了他,Co...
在 GitHub 有許多開源的專案是值得我們學習的, 尤其是當接觸新事物的時候, SwiftUI-Combine 是一個使用 SwiftUI 及 Combine...
CombineRxSwiftPerformance 是一個在 GitHub 知名的專案, 在 wwdc 2019 剛發表 Combine 的時候, 這個 rep...
SwiftLee 是一位樂於分享的 iOS 開發者, 在 Combine 釋出沒多久, 就發佈了介紹 Combine 的系列文章, 更在 mobiconf 上主...
連續的介紹 Operator 之後,會發現很多範例都有 sink, 如果沒有調用這個, Publisher 將不會執行. 今天要特別講 sink 與 assig...
在 第 18 篇時, 我們使用 Extension 的方式, 將 UITextField 拓展加入 textPublisher, 但畢竟是拓展, 需要額外加入方...
1.filter 只將通過條件的上游持續發布 就像是if then,沒有 else 而已! Declaration func filter(_ isInclud...
與 Timer 密切使用的 Operator. 10-1. debounce: 限制連續發佈的間隔, 唯有間隔超過制定時間才會轉發元素. var set = S...
上流整合類型由於沒辦法直接用 Sequence.Publisher 的方式測試, 這部分的 Demo code 將於日後更新. 6-1. zip: 等待不同的上...
Operator 7. 型別銜接類型 7-1. eraseToAnyPublisher: 不是運作類型的 Operator, 是型別類型的(可能是唯一一個) 用...
在 Swift 5.1 之前, 每當我們看到 @_SOME_ 時, 都會去 Swift.org 查找 grammar_attribute-name, 像是 @I...
1. session 722 Introducing Combine link 在系列文章開始時,我們提到 Combine 的 3 個主角: Publish...
Artwork: from Combine: Asynchronous Programming with Swift, available at www.r...
CombineDataSource 是一個在 GitHub 現有的第三方函式庫, 將 TableView 的DataSources 很有趣的與 Combine...
Demo project: link 在學習了 22 天了之後, 是時候實作了, 這次我們要做使用者登入的機制, 功能如下: 賬號與密碼必須同時超過 3 碼,...
Combine 中的 Error handling 可方便處理 throws 的錯誤拋出。 開始之前,先建立 Error 與 Function enum Dem...
Operator 3. 整併類型 3-1. reduce: 將上游在結束前的每個元素連續處理 func reduce<T>(_ initialRe...
今天這部分很適合用 URLSession.datataskPublisher 介紹 Operator 9. 失敗處理類型 9-1. assertNoFail...
之前在 iPlayground 2019 有個分享, 是講如何在 Swift 5.0 之前沒有 Combine 的環境下建立 ReactiveX 的架構. 講者...
Combine 目前的情形需要一些 Helper function 來處理過多重複的Operator,為此, 我們可以使用 Xcode 11 最新的功能 Swi...
Dropping values 主要用途是將特定的值丟掉,丟掉的條件有以下三種用法。 dropFirst dropFirst 裡面可以帶一個 interger的...