もともとXamarin.Formsというクロスプラットフォームアプリ開発フレームワークを使って作っていたシンプルなメモ帳アプリを、 Webアプリとして書き換えたものです。
ユーザーはメモをジャンル分けして管理することができ、簡易的な検索や並び替えの機能などを実装しています。 また、Firebase Authを使用していていて、Googleアカウントでのログインやゲストとしてのログインもあります。
このプロジェクトに限らず、基本的には欲しいものをつくるというより、開発の経験を積むためにものを作っています。 このプロジェクトと前身のXamarin.Formで作ったものは、特にそういった色合いが強いです。 入門書ばかり読んでいた頃に、実際に何か作らなければ技術力が身につかないと感じて作り始めたという経緯があります。
これを作り始める前はWeb技術について全く知識がなかったため、データの保存にRDBやNoSQLなどを使わず、 代わりにデータをjsonに変換してFirebaseのStorageに保存するという方法をとっていました。 Xamarin.Formsで作っていた頃も、ファイルに保存してDropboxに保存していました。 HTMLやCSSも全く知らなかったため、Vuetifyで試行錯誤しながら画面を作っていました。
これまでは、C言語やC#、Javaなどを使用しており、初めて動的型付け言語を使用しました。
引数の型が間違っていたり、文字列を間違えるといったバグが多かったです。
実装の初期の段階ではあまり問題にはなりませんでしたが、修正を加えるタイミングで変更箇所を見落としたり、間違った変更を加えてしまうなど、かなり手間取りました。
この頃はそれを言語化できませんでしたが、今振り返ってみると、この経験を通じて、動的型付け言語はリファクタリングのコストが大きいということを実感することができました。