Combine は Swift を使ってリアクティブプログラミングを行うためのフレームワークです。2019 年 6 月の WWDC で登場して、注目を浴びました。
本書では、Combine を iOS App 開発に活用する手法を述べます。特に、UIKit での開発に Combine を組み合わせて使う事例を考えます。
iOS App 開発では、UI 層とモデル層とのあいだでデータをやり取りする手段が意外と難しいところです。UIKit はそのための仕組みを、あまり明示的には提供していませんでした。ここに Combine を導入することで、UI とモデルとを関連づけることが容易になります。これによって、UIKit を使った開発でのアーキテクチャ設計を改善できます。
本書で述べる内容は、それほど難しいものではありません。しかし、Combine の書籍や記事は内容が高度なものが多く、敷居が高い場合が多いです。基本的なことをできるだけ丁寧に説明した本があったら良いのではないか、と考えて本書を執筆しました。
UIKit と SwiftUI
iOS App 開発では、UI フレームワークとして UIKit が使われてきました。一方、2019 年 6 月の WWDC で、新しい UI フレームワークとして SwiftUI が発表されました。現在の iOS App 開発では、UIKit と SwiftUI のどちらか(あるいは両方)を使って開発することになります。
将来的には、UIKit に代わって SwiftUI が主流になることも予想できます。しかし一方で、UIKit は現在も iOS App 開発の現場で多く使われています。本書では UIKit に焦点を当てることにします。
なお、SwiftUI は暗黙的に Combine を活用しています。そのため、将来的に UIKit から SwiftUI に移行するとしても、UIKit と Combine との組み合わせに慣れ親しんでいれば楽に移行できるでしょう。
本書の前提知識
本書を読んでいただくにあたっての前提を記載しておきます。
Swift の基本はある程度知っているものとします。また、UIKit を使った iOS App 開発の基本もある程度知っているものとします。
Combine については本書の最初の章で簡単にまとめてあります。もしも Combine に触れるのが初めてであまり自信がないということであれば、既刊の拙書「Combine をはじめよう」でより丁寧に基本を説明しています。ぜひ読んでみてください。
iOS の動作対象バージョン
Combine は iOS 13 以降で動作します。iOS 12 以前では動作しません。このため本書では、開発する iOS App の動作対象を iOS 13 以降とします。
2020 年 12 月現在、iOS の最新バージョンは 14 です。iOS 端末ユーザの多くは、最新バージョンまたはそのひとつ前のバージョンを利用しています。したがって、動作対象を iOS 13 以降とする前提はそれほど無理のないことだと考えます。