CombineとUIKitによるiOSアプリ開発
発売日 :
2020年12月29日
想定ページ数 :
48ページ
ダウンロード :
PDF
EPUB
全文検索 :
対応
Combine は Swift を使ってリアクティブプログラミングを行うためのフレームワークです。2019 年 6 月の WWDC で登場して、注目を浴びました。
本書では、Combine を iOS App 開発に活用する手法を述べます。特に、UIKit での開発に Combine を組み合わせて使う事例を考えます。
iOS App 開発では、UI 層とモデル層とのあいだでデータをやり取りする手段が意外と難しいところです。UIKit はそのための仕組みを、あまり明示的には提供していませんでした。ここに Combine を導入することで、UI とモデルとを関連づけることが容易になります。これによって、UIKit を使った開発でのアーキテクチャ設計を改善できます。
本書で述べる内容は、それほど難しいものではありません。しかし、Combine の書籍や記事は内容が高度なものが多く、敷居が高い場合が多いです。基本的なことをできるだけ丁寧に説明した本があったら良いのではないか、と考えて本書を執筆しました。
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 との組み合わせに慣れ親しんでいれば楽に移行できるでしょう。
重複部分も多いので、書籍の価格としては上がったとしても2つの書籍を合わせ一つの書籍とし、第一部入門編、第二部応用篇としてもよかったのかもしれません。
その点においては、たとえば第二章まではバッサリと切り捨てて、その分 UIKit との連携例を増やしていただいた方が読み応えはあったかもしれません。
それでも、Combine をはじめとするリアクティブプログラミングの考え方、またそれをいくつかのモデルに分ける場合の考え方については、5章で簡潔、かつわかりやすいモデルを用いて説明がありますので、その部分を参照できただけでもこの書籍としても価値はあると思います。
気をつけたいのは、著者も第5章のまとめで述べている通り、「Combine を使うことと、設計アーキテクチャは別である」という点です。そこを明確に述べられている点も評価できるかと思います。
ただ、そういう意味ではモデル間において Publisher をいかに意識させずに(疎な結合として)関連づけさせるべきかという点まで踏み込んでいただければなおよかったのかなと感じています(もちろん、この点はまさにモデル設計と関連してくるので、切り分けも難しいところですが)。