はじめに
第1章 Combineの最初の一歩
第2章 SubscribeとSubscription
第3章 Publisher
第4章 Operator
第5章 Combineのコンセプト
付録A UIKitでCombineを使う
おわりに
本書は、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デバイス上で動作を試すことが可能になります。
Swiftで使えるリアクティブプログラミングのフレームワークは、Combine以外にもRxSwiftやReactiveSwiftなどがあります。これらはサードパーティ製のフレームワークです。Combineが登場するよりも前から存在しており、広く使われてきました。一方、Combineは後発ですが標準フレームワークとして組み込まれているため、今後使われるようになっていくと考えられます。
もし既にRxSwiftやReactiveSwiftを使ったことがあれば、Combineを理解する助けになるでしょう。ただし、用語や考え方が異なる点もありますので注意してください。
また、それらを使ったことがなくとも、本書を読んでいただいてCombineを理解していただけると考えています。