たかが「メモ」、されど「メモ」。ちょっとしたメモから、思わぬ発見があったりアイデアが膨らんだりすることがあるので、それを何とか形にして自分用に作ってみたいと思って挑戦しました。
概要
あくまで「メモをする」という位置づけでその行為に集中できるようにするため、同期や締め切り、タグ付け等といった高度な機能を極力省き、必要最小限の機能を搭載したアプリを作る。主な機能は二つに絞って開発を進めた。
メモ機能
メモアプリのメイン機能。「タイトル」と「内容」の二つの入力項目を設けている。「メモ」ではあるが、アイデアを膨らませたりまとめたりできるよう、内容の項目に関してはtextarea
タグでたくさん書けるようにした。
コメント機能
メモアプリのサブ機能。作成されたメモの詳細画面に行くと、コメントが入力できるようになっている。メモ内容に書くまでもないちょっとしたことを書くスペースで、いわゆる仮置き場のような感じ。とっさに思い付いたものを素早く入力できることに重点をおいているので、入力したコメントは編集を行わず削除のみとした。
機能
機能 | 項目 |
---|---|
メモ | 新規、一覧、詳細、編集、削除 |
コメント | 新規、削除、※(詳細) |
その他 1 | メッセージ(サクセス、エラー、確認) |
その他 2 | バリデーション(必須項目、文字制限) |
※ 詳細画面を経て削除を行う
MVC
Model
モデルは Memo と Comment の二つを用意しカラムは以下のようにする。(id ,created_at,updated_at は自動的につくので割愛)
Model | title | content | comment | memo_id |
---|---|---|---|---|
Memo | ○ | ○ | ||
Comment | ○ | ○ |
データの紐づけ
Memo の id と Comment の memo_id を紐づけることで、各メモごとに対応したコメント表示することができる。
View
各機能に応じたビューを作成するが、ヘッダーの部分はメモ一覧にリンクしたタイトルとメモの新規作成のみとし、それをテンプレートとして使用する。Rails での開発なのでスタイリングに関しては触れないこととする。
Controller (routes)
コントローラーは memo , comment を用意し、アクションに応じてデータやメッセージの受け渡しを行うこととする。用意するアクションは下図の通り。
index | new | create | show | edit | update | delete | |
---|---|---|---|---|---|---|---|
memo | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
comment | ○ | ○ | ○ |
これは開発した後のメモアプリを整理して書いたものになります。最初から設計して開発したということではありませんのでご了承ください。
今は一通り完成してあり、特に問題なく使えているので個人用として使用しています。
※ 参考にしたもの
機能 → ドットインストール
コードの組み立て → Progate がメイン