本書について
本書はRxSwift研究読本シリーズ3冊目です。 本書では、様々なViewModelの設計を紹介し検討するための構成にしています。 第1章では制約のないViewModel設計についての問題を提起します。 第2章ではその問題を解決するために、 ViewModelのより良いインタフェースのための観点を定義します。 そしてその観点に従って様々なViewModelインタフェースを例にあげ、比較検討します。 第3章では第2章で取り上げたViewModel設計の1つであるsergdort氏のViewModelパターン(以降敬称略、「serrgdortのViewModel」と呼ぶ)についてサンプルコードを用いて解説します。 第4章についても第2章で取り上げたViewModel設計の1つであるKickstarterのViewModelパターンについて第3章と同じサンプルコードを用いて解説します。 さらにニューヨーク市で2018年12月に開催された関数型プログラミングのカンファレンス「Functional Swift Conference 2018」にて、Stephen Celis氏によって発表された新しいViewModelについても同じサンプルコードを用いて詳しく解説します。 ViewModelのインタフェースを考えるとき、解決したい課題によって様々な観点があるでしょう。本書で紹介するViewModel設計の根底にあるテーマは、「関数型プログラミングの考え方を念頭に置いたシンプルで扱いやすいViewModel」です。そのため、第3章4章のサンプルコードに対してテストコードによってそれらを示しています。
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/2621adcf8934e3f1abe2
その他 ご意見ご感想について
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.4.24 - RxSwift 6.5に対応し`subscribe(with:onNext:)`に変更 - サンプルコード`import Extensions`としていたところを`import Library`に修正し、その説明を追記 ## 2019.5.2 - RxSwift 5に対応しdebounceの引数をDispatchTimeIntervalに変更しました ## 2019.4.14 - KickstarterスタイルのViewModel(WikipediaSearchViewModel)を扱う際に変数宣言時の型をプロトコル WikipediaSearchViewModelType とすることについて言及しました ## 2019.2.22 - ViewControllerと書くところをViewModelと書いていたので修正しました ## 2019.2.20 - 新しく提案されたKickstarterのViewModel関数の戻り値を分解されたタプルで受け取ることについて追記 - epub版を追加 ## 2019.2.12 - PDF版リリース