表題の通りである。去年の夏から少しずつコードを書いて、アプリケーションをつくりはじめた。単純な日報アプリだが、目標設定や振り返りができるものにした。わたしが欲しいためだ。
以前から学習記録を記入するときに別のアプリケーションを使っていた。なにに何時間かけたかを記録して、Twitterでつぶやいていた。わりと楽だったし、反応をもらえるとモチベーションになった。ただ、目標を設定して一週間後にそれを振り返るということもやっていた。これはアプリケーションではできなくて、自分でメモ帳に手打ちをしていた。ちょっと面倒臭かった。
Railsの学習が一区切りついた去年の夏からアプリケーションをつくりはじめた。DBの構造を決めて、バックエンドをつくり、フロントエンドをやった。デプロイをした。日中は仕事があったり、子供の対応をしていたので早朝しか時間が取れない。それに加えて彼らは早朝にも目を覚まして泣き立てることがあった。それはどうしようもない。毎日1時間程度、時間をとりながらやっていった。
工夫したところはジャンルの自動追加機能と、振り返りの際の非同期処理である。
日報や目標を記録する際に、その項目のジャンルを決める必要がある。当初はプルダウンで選ぶ形をとっていたが、事前にジャンルを登録しておくのは相当面倒くさい。記録するときに同時にジャンルを登録できるようにした。プルダウンメニューではなく、datalistをつかった。ふつうのフォームだが、クリックすると補完候補がずらっとでてくる。ジャンルをそこに並べた。新規にジャンルを作る場合はそのまま記入すれば良い。
振り返りのときに締め切りに対して「完了」「中止」「締め切り延長」を選べるようにした。締め切り延長の場合は、新しい締め切りを設定するフォームが、しゅっと出てくるようにした。それが非同期処理である。Railsでそれを実現しようと思ったらちょっとごちゃごちゃした設定が必要だ。これは後でどこかに記事としてまとめる。
デプロイはRender.comというやつをつかってなんとかなった。そろそろ一般向けに宣伝しようか。
本当はデザインをきれいにしたいとかいろいろあるけど、やりすぎるとモチベーションを失ってしまう。早いうちに皆からのフィードバックをもらおう。
Photo by Ross Stone on Unsplash