1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【swift Combine】WWDC2019 から Combine についてまとめてみた

Posted at

目的

・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 で値を加工したり制御したりする

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?