iOSアプリ作成(疑似ブラウザアプリ)
■ツールの活用目的: スマホでなにか調べているときに、役立ったページをブックマークしていても、時間が経つとなぜこのページをブックマークしているんだろうと忘れることがありました。そこで、ブックマークする際にメモ書きを追加できるようにして、この情報が役に立ったとか、何がわかるといったことを書き込んで振り返ることができるようにしました。 ■機能概要: WebビューとDBを用いて、ブラウザが持つ機能(ブックマーク、履歴機能など)を疑似的に再現したアプリとなっています。Googleをスタートページに設定して検索を可能にし、閲覧途中でGoogleに戻りたい場合には、Googleへ遷移するボタンを用意しています。 また、ブックマークには任意のコメントを追記することができます。 ※厳密には、Webビューを用いてブラウザに相当するアプリを作ることは推奨されていないが、あくまで勉強目的(≠リリース目的)ということで作成しています。 ■テストについて 機能要件が満たされているかのチェックだけを実施しております。(ブックマーク及び履歴の登録、更新、削除ができているか、ブラウザGo/BackやGoogleへのショートカットボタンが動作するかなど) ■開発において学んだ点 ・遷移方法の違いを意識すること →例えばWebビューでGo/Backの機能をつけるといった際に、NavigationBarを組み込んでいたとしてもできるわけではなく、対応するメソッドを呼び出すボタンを作る必要があったり、NavigationBarが組み込まれているビューで遷移を行う際に、pushを使うべきか(=階層をつなげてBackを押していい状態にするか)、それともpopを使うべきかを考えるということを意識しないと、機能を実装できなかったり、想定外のエラーを発生させてしまうということを実体験で学ぶことができました。 ・オートインクリメント機能がないDBの存在 →過去にPHP/Laravelで作成したWebアプリではMySQLを使っており、その際にはオートインクリメント機能があったのでIDを項目に用意するときに特に意識しなかったが、今回使用したRealmではその機能がなく、自前でその仕組みを用意しなければならないということを知ることができました。 ■工夫した点・難しかった点 ・アプリへ実装する前に、仮プロジェクトで初実装の技術を試したこと →今回が初めてiOSアプリを作成したのですが、出来るだけ前もって使う要素を仮プロジェクトで試しに記述して、どういった挙動をするのかということを確認して進めるようにしました。そうすることで、実際にアプリへ組み込むときにも考える時間を減らすことができるようになりました。それでも、エラーが発生することはありましたが、その際はアプリと仮プロジェクトの間にある差分を少しずつ埋めていくことで、何が原因でエラーが起きるのか、といったことを解明しやすくして、原因がわかったところでそれに関連する情報を集めるということで対応していきました。 ■ソースコード https://github.com/HIro-im/BrowserMemo.git