見出し画像

逆引きRxSwift: 編集画面のViewModel設計と実装

はじめに

RxSwift + MVVMを使ったiOSアプリを開発する際に、すでに登録済みのデータを編集する画面では、どのようにViewModelを設計/実装すればよいのかということについての案を示します。この内容が何らかの参考になればと思っています。

このnoteは「RxSwift研究読本 逆引きレシピ編」として作成されたものです。

編集画面のViewModel設計についての課題

極端なやり方としては、編集画面用の初期値をviewDidLoad時にテキストフィールドにセットすれば良さそうです。しかしそれよりもリアクティブプログラミングを活かした作りにしたいという欲求が強いはずです。

説明のための前提

- 編集画面なのでテキストフィールド(UITextField)には初期値が設定されています

- テキストフィールドのテキストはユーザによって編集されます

- ユーザがボタンを押すとそのデータが更新されます(Web API利用で通信によってそのデータが更新されるなど)

- ほとんど環境に依存しない内容を心がけています(著者はCloud Firestoreを趣味で使うためそれでも使えます)

- 有料noteの金額を今のところ低めに設定しています

この文章では、リアクティブプログラミングを活かした編集画面のViewModelの設計と実装について、シンプルな例を使って一つずつ順を追って説明します。ですが、需要があるかどうかわからないため、提示する設計案は一つのみで、コストのかかる検証用の実動作するサンプルコードは最小限です。そのかわり、現状は低額の有料noteの金額としています。もし需要が高ければ別の設計案や実動作する検証用のコードを追加していって有料noteの金額を上げるようにしていきます。

変更履歴

- 2/27 公開しました

- 2/28 双方向バインディングをする上での注意点を追加しました

編集画面のViewModel設計と実装: 双方向バインド案

解説を3段階に分解します。

この続きをみるには

この続き:3,631文字/画像4枚

逆引きRxSwift: 編集画面のViewModel設計と実装

y.imajo

200円

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

ありがとうとざいます。最近のおすすめPS4ゲームはアンセムです!
8
RxSwift研究読本を書いています https://swift.booth.pm/
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。