目次

はじめに

本書の特徴
本書の前提知識
Combine以外のフレームワーク

第1章 Combineの最初の一歩

1.1 学ぶ方針
1.2 値の送信と受信
1.3 イベントの完了
1.4 イベントのエラー
1.5 この章のまとめ

第2章 SubscribeとSubscription

2.1 sinkメソッド
2.2 subscriptionのキャンセル
2.3 複数のsubscription
2.4 storeメソッド
2.5 assignメソッド
2.6 この章のまとめ

第3章 Publisher

3.1 Publisherとは
3.2 Sequence
3.3 Timer
3.4 Notification
3.5 URLSession
3.6 Subject
3.7 Subjectの型消去
3.8 @Published
3.9 この章のまとめ

第4章 Operator

4.1 バインディング
4.2 map
4.3 Operator
4.4 Marble Diagram
4.5 filter
4.6 compactMap
4.7 combineLatest
4.8 eraseToAnyPublisher
4.9 この章のまとめ

第5章 Combineのコンセプト

5.1 Combineの3要素
5.2 リアクティブプログラミングとは
5.3 UIとモデルとのバインディング
5.4 CombineとUI
5.5 この章のまとめ

付録A UIKitでCombineを使う

A.1 CombineCocoa
A.2 UIControlのPublisher
A.3 GestureRecognizerのPublisher
A.4 ScrollViewのPublisher
A.5 この章のまとめ

おわりに

Apple のリファレンス
WWDC セッションビデオ
書籍

はじめに

 本書は、Combineをこれから学んでみようという人のための本です。

 Combineは、Swiftでリアクティブプログラミングを行うためのフレームワークです。Appleプラットフォーム(iOS、iPadOS、watchOS、tvOS、macOS)向けのAppを開発するときに、さまざまな処理を宣言的に記述することが可能になります。

 Combineが登場したのは2019年6月のWWDCでした。登場時点では、最新のOSでしか動作しなかったため、まだ実際のApp開発で採用するのは難しい状況でした。しかしそれから2年以上が経ちました。これからのApp開発において、Combineが動作しないOSはサポートしないという選択が現実的に可能な状況になりました。

 したがって、今はCombineをはじめるちょうど良い機会です。本書はCombineを使い始めるための基本的な事柄について解説します。

本書の特徴

 Combineについては、AppleがWWDCのセッションで解説しているほか、解説書や解説記事が既に存在しています。それらを見て学ぶのが一番良い方法でしょう。

 ただし、ここで落とし穴があります。

 既存の解説の多くは、率直に言って、難しいです。

 Combineの解説はたいていの場合、登場する用語や概念の説明から始まります。ここで、たくさんの用語や概念が一度に押し寄せてきます。この最初の導入部分でつまづきが発生しやすいです。結果として、Combineは敷居が高いものになってしまっている、と考えています。

 基本的な事柄をもっと分かりやすく説明する解説書が存在するべきだ、という想いから、本書を執筆しました。本書では導入部分をできるだけ丁寧に説明するように心がけました。さらに説明の際に、具体的なコードを先に挙げるようにしました。

 また、日本語で書かれた解説はまだそれほど多くありません。そこで、日本語で読めるCombineの本を増やしたいという想いも、本書を執筆した動機のひとつです。

本書の前提知識

 本書を読んでいただくにあたっての前提を記載しておきます。

 SwiftやAppleプラットフォーム向けApp開発の基本はある程度知っているものとします。また、開発環境としてMacとXcodeが必要です。

 Apple Developer Programへの加入は、必須ではありません。ただ、加入していればiPhoneなどのAppleデバイス上で動作を試すことが可能になります。

Combine以外のフレームワーク

 Swiftで使えるリアクティブプログラミングのフレームワークは、Combine以外にもRxSwiftやReactiveSwiftなどがあります。これらはサードパーティ製のフレームワークです。Combineが登場するよりも前から存在しており、広く使われてきました。一方、Combineは後発ですが標準フレームワークとして組み込まれているため、今後使われるようになっていくと考えられます。

 もし既にRxSwiftやReactiveSwiftを使ったことがあれば、Combineを理解する助けになるでしょう。ただし、用語や考え方が異なる点もありますので注意してください。

 また、それらを使ったことがなくとも、本書を読んでいただいてCombineを理解していただけると考えています。

試し読みはここまでです。
この続きは、製品版でお楽しみください。