2018の12日目の記事です。今年は、5年前に初めて個人開発したアプリを再構築している話を思い出を交えながら書こうと思います。言え、絶賛再構築中なので、恐らく本記事公開日までに作り終わらないと思うのですが、それも一興ということで大目に見て頂ければと思います。5年前になぜ個人開発をしようと思ったのかまずは筆者がなぜ個人開発を始めようと思ったのかについて話したいと思います。当時の筆者の状況やスキルを思い出してみます。Androidアプリの中身はWebViewを利用しており、ネイティブコードは位置情報の取得やプッシュ通知などのごく一部でした。当時、非常に新しかったNode.jsやMongoDBも訳が分からず利用しており、その知識やスキル不足からプロジェクトを大炎上させてしまいました。これができなかったらごめんなさいで済まされないレベル』の話でした。個人開発を始めた理由そんな状態の私がなぜ個人開発を始めたのかというと...技術的な強みを1つ持ちたかったエンジニアとしての将来が不安で悶々としていたという2つが大きな理由です。アプリの開発を勉強しながら始めることにしました。ネイティブアプリの開発ができるようになるというのが当面の目標でした。WebViewではなく、ネイティブアプリの開発です。1つアプリを完成させて世にリリースしたいという想いが強くなりました。して完成した個人開発の第一段階アプリが『足跡計』です。足跡計の機能このアプリには、次のような機能を持たせました。位置情報機能は私にとって非常に扱いやすかったためです。今回再構築をしようと思った理由さて、ここまでは5年前の個人でのアプリ開発に至るまでの話をしてきました。ここからが本題で、今回、筆者は思い切って、足跡計アプリを再構築しようと考えました。アーキテクチャを用いたアプリ開発を試したいという3つの想いがあったためです。アーキテクチャでのiOSアプリ開発に挑戦し、改めてiOSアプリのアーキテクチャのあり方に悩んだことが元となっています。アーキテクチャ設計をきちんと勉強しておきたいと思わずにはいられなかったのです。ハマったことを中心に説明し、最後に今後の展望とリリース時期を説明して終了にしたいと思います。足跡計の再構築についてでは、再構築について一つずつ説明してきましょう。プロジェクト構成の変更まずはアーキテクチャの変更によって生じたプロジェクト構成の変更について説明します。アーキテクチャを採用していたため、下記のようなプロジェクト構成になっていました。下記観点が全然ダメだなと今振り返って思います。アーキテクチャを採用し、プロジェクト構成も見直しています。設計思想的な面で変更している部分はあるものの、以前に比べれば視認性は上がったと思っています。アーキテクチャで具体的に何をどのように書いているのか紹介したいと思います。全ては紹介しきれないため、メイン画面であるマップ画面を元に一部を説明したいと思います。具体的にスクショを交えながら、機能を紹介します。ここからはソースコードベースで実装について説明したいと思います。保存した位置情報を取得するのように言い換えられます。それぞれどんな責務を持たせれば良いのでしょうか。下記にそれぞれの責務を簡単に書き出してみました。処理依頼を受けて、Modelを介して必要な情報を取得し、Viewに特定の描画司令を出す続いて、具体的に上記を実現する方法について説明します。関する実装から説明します。