大型画像とコンバインの概要


導入


アップルは、WWDC 19で結合フレームワークを発表しました.この枠組みはリアクティブプログラミングと宣言符号化を可能にする.この記事では、それの組み合わせの大きな写真の簡単な概要を与える.

リアクティブプログラミングとは何か


あなたが反応プログラミングを理解するのを助けるために、手順コードがリアルタイムでない方法の例がここにあります.
var a = 5
let b = 10
let flag = a > b
print(flag) // => false
a = 20
// of course, flag remains unchanged and remains false
print(flag) // => false
次のコードは、リアルタイムで変化する値を処理するために、どのようにリアクティブプログラミングを使用できるかを示しています.
let a = CurrentValueSubject<Int, Never>(5)
let b = Just(10) // Let 10 be the only element

let publisher = b.combineLatest(a)
  .map { $0 < $1 } // true if b < a

_ = publisher
  .sink { 
    // When the element `a` changes from 10 to 20, 
    // false and true are output one after another.
    print($0)   // => false
                // => true
  } 

a.send(20) // Send 20 as an element of a
N IOSのアプリケーション開発、様々なイベント通知方法をリアルタイムで値の変化を検出するためにご利用いただけます.
しかし、結合の利点は、これがベースの公式フレームワークで行われることですReactiveStreams , 他のプラットフォームで使用される一般的な反応プログラミング仕様です.

出版社


イベントを要素として通知するという概念を発行者と呼ぶ.名前発行者はReactiveStams仕様から逐語的であり、RXSWIFTで観測可能である.

加入者


発行者は、発行者イベントを扱うためのプロトコルとして提供される.加入者は直接に加入者を使用するのではなく、しばしばイベントを扱うシンクメソッドのような出版者プロトコル拡張子として間接的に使用されます.名前加入者はまた、ReactiveStams仕様に基づいています;RxSwiftはオブザーバーで同様の概念を持っています.

出版社


マップなどの演算子によって使用されるさまざまな型は、発行者に準拠しており、演算子がストリームを処理し、列挙型のそれぞれに変換することができます発行元として列挙されます.

購読


結合は、ReactiveStams仕様によって部分的に準拠しています.反応マニフェストは、IOSのようなモバイルアプリケーションではなく、すべてのアプリケーションのデザインを参照するシステム設計パターンです.したがって,サーバ側アプリケーションに必要な耐故障性を考慮した.ReactiveStams仕様は、発行元と加入者の間の通知を制御し、それらの負荷を減らすために、反応マニフェストに従う仕様です.そういうわけです.これを背圧という.もちろん、負荷を減らすことに加えて、サブスクリプションの役割は、仕様の形で制御の方法を提供することである.
しかし、購読を作成するかどうかは、あなた自身の出版社または出版社を作成するかどうかにかかっています.

主題


対象は外部からイベントを生成する能力を持つ非常に柔軟なパブリッシャです.CurrentValuesUbjectには初期値があります.

加入者


加入者は加入者として機能するタイプの名前空間として提供されます.

リソース


  • Getting Started with Combine - Shai Mishali - App Builders 2020
  • Processing Published Elements with Subscribers