することで、テストを書く際にモックデータを返却することが容易になります。継承して各メソッドの実処理を実装すると、下記のようになります。V.106で特集されていた手法をそのまま採用しています。ソースを見て頂けると伝わるかと思います。ViewModelの説明では、ViewModelについて次は見ていきます。保存した位置情報を取得するの5つを実装の内の幾つかを例に説明していきます。以下を守ることを念頭に置くことが大事です。最低限の実装から先に説明します。プロトコルを継承するクラスとして定義します。定義する必要が出てきます。realmManagerを定義しています。具体的な処理は書かれていません。インタフェースの提供のみです。このため、テストを書く際に、レスポンスをモック化することが容易になるのです。初期化時の引数として外部から渡せるようにすることで依存性を軽減しています。説明(2)の実装を活かすために、外部から渡せるようにしたと言いかえることもできますね。実装部分を説明してきます。位置情報の取得情報の確認は下記の通りに実装しています。}}これはRxSwiftの公式ExampleのGeolocationServiceと同じ実装です。詳細はGeolocationSampleから学ぶdelegateのRx対応でも説明しているので、ここでは概略だけにします。そのデータを保存する位置情報の計測を停止するは下記の通りに実装しています。内の処理に導くために実装している部分になります。型として宣言しています。して定義したことで、必要となった実装です。機能を利用される可能性があります。して内部に閉ざしています。関連にも関わらず、この書式を取っています。誤った利用がされる恐れはないため。指示を受け取った後に実行している処理になります。いうアーキテクチャが取れているわけです。渡しつつ、実行処理を指示しています。責務は、Viewユーザアクションのキャッチ画面の描画になります。最低限の実装から説明します。別名として設定しています。メソッドが必要になります。別名として設定しているため実現可能となります。本アプリでは、UITabBarの「STOP」項目をタップすることで位置情報の計測停止処理を進めることができます。メソッドを呼び出すように処理を書いています。説明(5)ここは1つ1つの処理が長くなり過ぎないように、単にメソッド分けしているだけです。settings}単にこれだけですが、何をタップした時にどんな処理をするのかが、こちらの方がひと目でわかりますよね。説明(6)ここで具体的に「STOP」をタップされた場合の処理を書いています。strongSelf.disposeBag)の部分です。指示が出ていることを伝えています。バインディングしています。双方向データバインディングな関係を構築しています。冒頭でも述べた通り、まだアプリは完成しておりません...そこで今後の展望ですが、下記2点となります。利用している箇所があります。置き換えることで視認性の向上に繋がると考えています。十分にテストが書けていません...折角、疎結合を意識しながら構築しているのでテストは書き切りたいと思っています。それらを満たした上で、リリース時期は1月末を見込んでいます。早期なリリースを目指していきたいと思います。まとめさて如何でしたでしょうか?今回は5年前の個人開発アプリの再構築について紹介させて頂きました。新たな技術の学びにも繋がるかと思います。筆者もめげずにこれからも新しい技術を学び続け、個人開発した結果をアウトプットしていきたいなと思います。言ったところで本日はここまで。Apple』〜サードパーティアカウントでOAuth認証によるログインを備えたアプリで迷わないように。