本書について
本書はRxSwift研究読本シリーズ1冊目にあたるRxSwift利用者のための基礎を固める書籍です。 RxSwiftという比較的大きなテーマに対し分割して細かくリリースすることで、細かな内容でも迅速にリリースしていき、読者のフィードバックを受けて修正するサイクルを目的としています。 かつてRxSwiftはiOSアプリ開発の準スタンダードと言えるほどに普及し、アプリ開発を行う場合に技術選定される候補の筆頭と言っても過言ではありませんでした。 その理由としてRxSwiftは非同期処理の扱いに長けているだけではなく、 GUIアーキテクチャとしてのMVVM(Model-View-ViewModel)パターンを扱うことで、複数人でのコーディングに秩序をもたせることもあったためです。 さらに、RxSwiftのコンパニオンライブラリであるRxTestやRxBlockingによってテストがしやすいというのも大きなメリットでしょう。 この入門編では、 これからRxSwiftを使ってみようという方はもちろん既に使っている方に向けて、より良いRxSwiftの活かし方を模索するための基礎をおさらいする内容になっています。
RxSwiftのコードを試す場合の環境構築方法
RxSwiftのコードを試す場合の環境構築方法について記事にしました。 https://zenn.dev/yimajo/articles/551737e57b6b7d 環境構築はXcodeのバージョンに大きく依存するため、本文中には記載しておりません。Web上の記事であれば簡単に書き換えられるためにこのようにしています。
どのような方におすすめなのか
「RxSwiftについて基礎からメリットを説明してくれる文章を読みたい」 -- 本書ではRxSwiftの基礎的な話を第一章に盛り込みました。 「マーブルダイアグラムで説明を終わらせられるのにはもうウンザリだ。コードと説明がほしい」 -- マーブルダイアグラムはある程度経験がある人には分かりやすいですが初見殺しなところがありますよね。本書ではマーブルダイアグラムで説明が良くなる部分についてのみマーブルダイアグラムを使い、補助線を引いたりしてわかりやすくしています。 「新しく参加してくれるメンバーにRxSwiftについて知ってほしい。都度参考になるリンクを紹介するのも面倒なのでまとまった内容がほしい」 -- あるあるですね。ネット上に良い説明がころがったりしていますが、まとまってほしいところです。本書のシリーズではなるべくまとめて知識を得られるようにしたいと思っています。そのためにもフィードバックをお待ちしています。 「flatMapLatestを雰囲気で使っているが、公式を見てもマーブルダイアグラムが描かれていないからイマイチわからない」 -- 公式でflatMapのマーブルダイアグラムはあってもflatMapLatestは無いんですよね。海外の人がブログで描いてる記事は沢山ありますが、それぞれ違う表現でピンとこないということも多いと思います。本書では余分なものを削ぎ落としてマーブルダイアグラムに補助線を引いたりしています。作画にはRxMarblesというiOSアプリを使っています。 「RxSwiftのプロジェクトを引き継いだが、もっとRxSwiftのことについて知りたい。とりあえず動いているので使うことはできているが自分の知っている範囲で対応してしまっていてぬるま湯に浸かっている気がして気持ちが悪くなってきた。少し熱い湯に入りたいと思っている」 -- お、おう……。
PDF, epub版の提供について
この商品はPDF, epubの2つのファイルがダウンロードできます。
RxSwift研究読本シリーズ
RxSwift研究読本1 基礎編 https://swift.booth.pm/items/1076262 RxSwift研究読本2 エラーハンドリング編 https://swift.booth.pm/items/1121167 RxSwift研究読本3 ViewModel設計パターン入門 https://swift.booth.pm/items/1223536 RxSwift研究読本4 自作して理解するリアクティブプログラミングフレームワーク編 https://swift.booth.pm/items/1951689 RxSwift研究読本5 スケジューラー編 https://swift.booth.pm/items/2771976
本書へのフィードバック
本書へのフィードバックやご感想は下記ページにてお待ちしています! https://qiita.com/yimajo/private/e32880b01c882806bb42
その他 感想などについて
RxSwift研究読本 という単語でツイートしていただければ確認することができます。 https://twitter.com/search?q=RxSwift%E7%A0%94%E7%A9%B6%E8%AA%AD%E6%9C%AC&src=typed_query&f=live
更新履歴
## 2022.9.24 - 入門編というサブタイトルを基礎編に変更 - "はじめに"の文章を変更 - MVVMについての説明を微調整 ## 2022.4.22 - リスト3.1のコードを微調整: subscribeメソッドの戻り値を`let _ = `とする - リスト3.1のコードを微調整: compleatedをprint表示させてわかりやすく ## 2020.10.12 - RxExample実行のためのブランチ切り替えをタグ5.1.1としXcode 12.0.1対応した - オペレータの解説に「要素からストリームを作成できる」ことについて補足 ## 2020.6.21 - 「リアクティブシステムはリアクティブプログラミングとは関係ない」を「リアクティブシステムはRxSwiftと関係ない」に変更 - 「一貫したコール・アンド・レスポンスを提供するため」をRxSwiftにおいて宣言的なコーディングを実現するため」と変更 ## 2019.5.11 - ライセンス表記の記載ミスを修正 - 「おわりに」からコールアンドレスポンスの話を削除 ## 2019.5.1 - RxSwift 5対応として、「はじめに」にある図 1: RxSwift の全体像をRxRelayフレームワークを追加し全体を調整しました - RxSwift 5対応として、第一章のdebounceの引数についてDispatchTimeIntervalを使うことを追記しました ## 2019.4.21 - 一章の構成を変更し、「RxSwiftとは」を追加しました ## 2019.2.4 - 「シーケンス」という表現をより一般的な「ストリーム」に変更 ## 2019.2.3 - 「はじめに」にRxSwiftの全体像を示す図を追加 ## 2019.1.18 - 「Observableシーケンス」という表現を「ストリーム」に変更 - 表紙についての説明をあとがきに追加 ## 2019.1.16 debounceオペレータのマーブルダイアグラムを修正。 `.debounce(1)`の後に1秒のスペースが空いておらず、詰まった状態の図になっていましたため、1秒のスペースを確保しました。 ## v1.3.3 2018.12.19 スペシャルサンクスに記載したアカウント名を修正 ## v1.3.2 flatMapLatestの説明についての参照先がcombineLatestになっていたので修正 ## v1.3.1 Typo修正 ## v1.2 epub版同梱