Combine を学習するにあたり、
- 参考になるサイト
- 動画
- 書籍の情報
などを記載しています。
もしおすすめの情報などございましたら教えていただけると嬉しいです。
Apple の公式ドキュメントです。
クラスやメソッドのリファレンスもそうですが、複数の使い方に関する記事も参考になります。
Apple 公式ドキュメント
コミュニティが運営している Combine のグループです。
Slack で質問ができたり Github に便利なライブラリが用意されています。
Combine Community
Combine の情報が体系的にまとめられています。(下記で紹介する本と同じ内容です。)
Using Combine
Combine だけではなく様々な Swift や Apple フレームワークに関する情報が記載されています。下記は「Combine」が付いた記事へのリンクです。
SwiftBySundell
Combine でまとめられている訳ではありませんが、Combine の内容も豊富に含まれています。
記事は 1 ポイントに絞られているため短くて読みやすく
Youtube でライブコーディングをしながらの解説も大変わかりやすいです。
Hacking with Swift
元 Kickstarter の iOS エンジニア 2 人が運営するサイトです。(一部有料)
Swift を使って関数型プログラミングの概念の解説やライブラリの作成などエピソードを通して行なっています。
Combine に関しては The Composable Architecture というライブラリの作成の中で
多くの要素が解説されています。
Pointfree
raywenderlich の Combine の紹介記事です。
記事を読みながらサンプルを構築していくので実装を通して学ぶことができます。
Combine: Getting Started
raywenderlich の MVVM + Combine の紹介記事です。
MVVM with Combine Tutorial for iOS
Operator の動きの解説と実際に使用した場合の例などが記載されています。
Problem Solving with Combine Swift
これを活用した例が CombineCocoa というライブラリにたくさんあります。
UIControl を Publisher にする
Custom Publisher の作成方法を通して、Combine の仕組みがわかります。
Building custom Combine publishers in Swift
複数のAPIの結果をまとめて処理する場合のCombineの活用方法が丁寧に解説されています。
他にも@Publishedと異なりViewを自動で再描画しないPropertyWrapper(Input)の導入など、役に立つ要素がたくさん学べます。
Connecting and merging Combine publishers in Swift
Introducing Combine and Advances in Foundation
Combine の基本を紹介しています。個人的にはこの紹介が非常にわかりやすいです。
Getting Started with Combine
Combine + SwiftUI の基本的な理解や実際にアプリを作成する過程を見ながら学習します(ちょっと長いです)
Getting Started with Combine and SwiftUI in iOS
UIKit + Combine の紹介をしています。
ライブコーディングをしているので、英語がわからなくてもコードを追っていけます。
iOS 13 Swift Tutorial: Combine Framework - A Practical Introduction with UIKit
これまでの Delagete パターンなどと比べて
何がどう変わったのかをわかりやすく解説しています。
SwiftUI & Combine
Pointfree で作成された Combine をベースに作成されたライブラリです。
かなりカスタマイズされていますがコードを見ると
Combine のコンセプトや仕組み、活用方法など大変参考になります。
The Composable Architecture
RxSwift とを UIKit でも使いやすくしています。
RxCombine
Combine を UIKit でも使いやすくしています。
CombineCocoa
macOS 10.15、iOS 13 よりも前のバージョンでも Combine を利用可能にするライブラリ
OpenCombine
Custom の Operator や Publisher、テスト用のライブラリ、RxSwift との互換ライブラリなど
Entwine
Version 5から Combine を使った実装が追加されました。
Realm + Combine
Combine: Asynchronous Programming with Swift
Apple のdataTaskPublisherの実装です。Custom Publisher を作成する時に何が必要なのかがわかります。
Custom Publisher の作成方法
Custom Publisher をどう作成するのかについての意見が述べられています。
Custom Publisher の作成方法に関する議論