カテゴリ一覧 著者一覧
CombineとUIKitによるiOSアプリ開発
4.0
500円(税込)
獲得ポイント: 5pt
通常:
5pt

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 との組み合わせに慣れ親しんでいれば楽に移行できるでしょう。

目次

はじめに

UIKit と SwiftUI
本書の前提知識
iOS の動作対象バージョン

第1章 Combine の基礎

1.1 Combine とは
1.2 Publisher
1.3 Subscription
1.4 イベント
1.5 Operator
1.6 Combine のコンセプト
1.7 この章のまとめ

第2章 データの変化を伝える

2.1 モデルクラス
2.2 @Published
2.3 CurrentValueSubject
2.4 PassthroughSubject
2.5 手段の選択
2.6 Operator の活用
2.7 この章のまとめ

第3章 UI を更新する

3.1 assign
3.2 UI の更新
3.3 ViewModel
3.4 sink が必要な場合
3.5 この章のまとめ

第4章 ユーザの操作に対応する

4.1 UIKit でのユーザ操作の処理
4.2 Notification
4.3 PassthroughSubject の活用
4.4 CombineCocoa
4.5 CombineCocoa の応用
4.6 debounce
4.7 この章のまとめ

第5章 Combine を活用した設計

5.1 実際の画面の作成
5.2 実装の方針
5.3 LoginModel
5.4 LoginViewModel
5.5 LoginViewController
5.6 設計について
5.7 この章のまとめ

おわりに

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

奥付

ユーザーレビュー

4.0
投稿者:Tsukubadepot
投稿日:2021年1月13日
もう少し具体的内容が欲しい一冊です。
この書籍を理解する前提として「Combine を始めよう」という書籍の理解が必要なのですが(導入部でも促している)、そちらの書籍を先に読み、理解を含めておくとこの書籍の前半半分は繰り返しとなり、やや冗長間が否めません。

重複部分も多いので、書籍の価格としては上がったとしても2つの書籍を合わせ一つの書籍とし、第一部入門編、第二部応用篇としてもよかったのかもしれません。

その点においては、たとえば第二章まではバッサリと切り捨てて、その分 UIKit との連携例を増やしていただいた方が読み応えはあったかもしれません。

それでも、Combine をはじめとするリアクティブプログラミングの考え方、またそれをいくつかのモデルに分ける場合の考え方については、5章で簡潔、かつわかりやすいモデルを用いて説明がありますので、その部分を参照できただけでもこの書籍としても価値はあると思います。

気をつけたいのは、著者も第5章のまとめで述べている通り、「Combine を使うことと、設計アーキテクチャは別である」という点です。そこを明確に述べられている点も評価できるかと思います。

ただ、そういう意味ではモデル間において Publisher をいかに意識させずに(疎な結合として)関連づけさせるべきかという点まで踏み込んでいただければなおよかったのかなと感じています(もちろん、この点はまさにモデル設計と関連してくるので、切り分けも難しいところですが)。
すべてのレビューを見る
書籍をシェアする