ふりがなメモ — メモアプリにふりがな機能を統合する
| 開発記録 | ふりがなメモ
タグ: #Flutter #設計 #MVP
メモ機能・フォルダ機能・ふりがな機能・単語グループ機能・設定機能を段階的に積み上げ、MVP として 85% まで持ってきたアプリの構成を紹介します。
アプリのコンセプト
ふりがなメモは、メモ帳に「ふりがな」機能を統合した学習補助アプリです。日本語の漢字にふりがなを自動で振り、フォルダで分類し、単語グループに登録して反復学習にも使える、という構成です。
段階的な機能追加
コミット履歴を辿ると、機能を以下の順で積み上げていることが分かります。
- プロジェクト初期セットアップ
- 共有プロバイダーと DAO
- メモ機能
- フォルダ機能
- ふりがな機能
- 設定機能
- 単語グループ機能
- ボトムナビゲーション UI への変更
- 設定永続化・フィルタリング
- テストデータ生成機能とユニットテスト
- UI レベルのエラーログ
- ユーザー設定のフォントサイズ+罫線デフォルト適用
各機能を独立に動くところまで作ってから、次の機能に進むのが個人開発で機能の取捨選択をうまくやるコツです。「全部一緒に作ろう」とすると、結合部で詰まって動かない期間が長くなります。
ふりがな機能の実装方針
ふりがなは、形態素解析ライブラリ(mecab 系)の結果を使う方式です。漢字部分に対して読みを取得し、ルビとして上に表示します。
Flutter での実装は、RichText に小さいルビ文字を上付きで重ねる方式で対応しました。完璧な縦書きルビは難しいですが、横書きであれば十分実用に耐えます。
単語グループ機能
ふりがなメモの差別化ポイントは、メモから抜き出した単語を「グループ」に登録できることです。たとえば「英語学習グループ」「歴史用語グループ」のように、学習対象を整理できます。
グループは設定永続化と連動しており、フィルタリング機能を使えば「特定グループの単語だけ表示」が可能です。
テストデータ生成
初期開発時に困るのが「動作確認用のサンプルデータ」です。本格的に書く前に、テストデータ生成機能を仕込んでおきました。
- 1000 件のサンプルメモ
- 10 個のフォルダ
- 50 個の単語グループ
これが手元にあると、UI の検証が捗ります。リリース時はこの機能を隠す(デバッグビルドのみ有効化)形で対応しました。
設計のポイント
- 共有プロバイダーと DAO を最初に作る(後で機能を積みやすい)
- メモ → フォルダ → ふりがな → 単語グループ、と単方向の依存関係
- 設定永続化は SharedPreferences、メモ本体は Drift
まとめ
- MVP は機能を線形に積み上げると進捗が見える
- テストデータ生成は早めに仕込む
- ふりがなはルビ重ね方式で十分実用的
現在は MVP の 85% まで到達しており、残りはリリース準備とブラッシュアップです。