目的
・Combine を理解すること
・他の人の解説ではなく、実際のWWDC2019の動画をみて Combine についてまとめること
・英語の動画から技術を学ぶこと
なぜCombineなのか?
・Appleが提供する標準ライブラリであり、今後使用率が上がると考えているから
・WWDC2019で発表された比較的新しいライブラリだから
・発表時期から、SwiftUI との相性が良いと考えたから
※今後、Combineを学んだ後、RxSwiftについても学びたいと思う。
参考文献
【Combine の概要】
【Combine のコード】
【Combine の概要】
WWDC2019で初めて登場した「Combine」というフレームワークについての話。
話をしているのは Foundationチームのマネージャーである Tony Parker。
※Foundation というのは Swift の標準ライブラリ
私たちは「ログイン機能」に非同期処理を使用しています。
例えばログイン時に氏名やメールアドレスを入力しているときです。ログイン時は氏名を打ち、メールアドレスを打つ。メールアドレスを打っているとき、氏名が「既に登録済みの氏名か?」ということを並列で処理して、処理結果に応じて指名横の画面を変更します(△→○ のように)。
ここでは、HTTP通信を使用した氏名の確認や処理結果に応じた変数の状態管理,KVC 等を行っている。
処理の流れは、『HTTP通信→処理結果がわかる→画面を再描画する』というもの。
Combineの目的は"組み合わせること"
Combineはリクエスト駆動式である → 意味はわかっていない
重要なものが3つある
Publishers
Combineの宣言的なもの
値やエラーがどう出たかを表示するたえめのもの
Swiftでは構造体で示す。値を受け取り続けられる
Subscribers
Publisher とは逆の考え
値を受け取って、完了の報告を受ける
値によって状態が変化するため、クラスを持つSwiftの参照型になる
Publisher から受け取ったデータの処理履歴を示す。
Publisher と通信を行い、「非同期処理の進捗を確認する?イメージ」
Operators
値の追加や削除等様々な値が動作する動作を決めるもの
つまり下のような流れになるのかなと筆者は考えます。
① Publisher で値を発行
② Subscriber で値を受け取る
③ Operator で値を加工したり制御したりする