はじめに
月謝管理アプリ「月謝袋」に、長らく要望のあった未納管理機能をついに実装しました。
今日はその実装内容と、機能設計の背景にある「現場の気持ち」についてお話しします。
作った機能
1. カレンダーポップアップに月謝状態を表示
日付をタップすると、その日のレッスン予定が表示されます。
以前は「月謝受取済み」の欄に、その日と関係ない生徒の名前が出てしまっていました。
改善後は、レッスン1行ごとに月謝状態をバッジ表示するようにしました。
3月27日
────────────────
📅 レッスン予定
● 9:15〜10:15 山田花子 💰 未納
● 15:45〜16:45 田中太郎 ✅ 受取済
● 17:00〜18:00 鈴木一郎 ✅ 受取済
「来た人が払っているかどうか」が一目でわかるようになりました。
2. 未納一覧画面

カレンダー上部に 「💰 未納 ○名 ›」 バーを表示。
タップすると未納一覧画面が開き、その月にレッスンがあったのに月謝スタンプが押されていない生徒を一覧表示します。
2026年3月 未納 1名
────────────────────
💲 山田花子
レッスン日:3/10、3/27
3. 定型文メール送信
未納一覧から生徒をタップすると、定型文が自動入力されたメール作成画面が開きます。
送信前に全文を自由に編集でき、「メールアプリで送信」ボタンを押すと端末のメールアプリが起動します。
件名: 【月謝のお知らせ】
〇〇 様
いつもレッスンにお越しいただきありがとうございます。
△△ です。
3月分の月謝がまだ確認できておりません。
お手数ですが、次回レッスン時にご持参いただけますと
幸いです。
--- このメールは「月謝袋アプリ」から自動送信されています ---
設計のポイント:「先生から月謝の話は言い出しにくい」
この機能を設計するうえで一番大切にしたのは、現場の感覚です。
先生が生徒に「月謝まだですよ」と直接言うのは、とても言い出しにくいものです。
だからこそ、メールの最後に
--- このメールは「月謝袋アプリ」から自動送信されています ---
この一行を入れました。
定型文とわかることで、生徒も傷つかない。先生も言いやすい。
小さな一行ですが、これがこの機能の核心だと思っています。
教室によっては、月謝を前月に徴収するところもあれば、月初めに徴収するところもあるので、
自動送信の機能はやめて、先生が好きなタイミングで(定型文でありながらも)文章を編集できる形で送信できるようにしました。
技術的なポイント
- サーバー不要:
url_launcherのmailto:スキームを使用。外部サーバーへの依存なし - Firestore構成:
userコレクションのis_admin・display_name・emailフィールドを活用 - 未納の定義:「その月にレッスン予定(
lessonsコレクション)がある生徒のうち、月謝スタンプ(postコレクション)が押されていない人」
おわりに
月謝袋アプリはピアノ・ギター・ヨガ・そろばんなど、さまざまな個人教室の先生に使っていただいています。
現場で感じる「あったらいいな」をひとつずつ形にしていくのが、このアプリ開発の楽しさです。
引き続き開発を続けていきますので、応援よろしくお願いします
