記の2つのみをアプリ内課金とすることに決めました。
(月謝袋の基本的な機能は全て無料で使えるようにする)
・オリジナルスタンプ
・年毎のCSVダウンロード
無料機能:
✅ デフォルトスタンプ(PAID/NOT PAID)
✅ 月謝管理
✅ レッスン日管理
✅ 基本的な表示機能
目次
CSVのダウンロード
機能:CSVダウンロード
年を選択してダウンロード
Excelで開ける
会計ソフトへのインポート用
年,月,生徒名,支払い状態,金額,受取日,メモ
2025,1,山田太郎,支払い済み,5000,2025-01-15,テキスト代込み
2025,2,山田太郎,支払い済み,5000,2025-02-10,
2025,3,山田太郎,未払い,,,
2025,1,佐藤花子,支払い済み,3000,2025-01-20,
✅ CSVダウンロードタブのUIを作成
年選択ドロップダウン
データ件数プレビュー
ダウンロードボタン
使い方説明
✅ create_post_widgetにタブを追加
タブ1: 月謝スタンプ
タブ2: レッスン日管理
このあと、flutter flowからの移行だったので、通常のコードが使えず、とんでもない時間が過ぎていく。
(とても書けないので省略)
結論、flutter flowで作ってからflutterへの流れは、かなり大変!
ダウンロードされるファイル:
ファイル名: monthly_fee_2025.csv
選択した年の1月〜12月の全データ
全生徒分のデータ

オリジナルスタンプ機能の実装
機能:
- 先生が自分のスタンプ画像をアップロードして使用できる
- プレビュー表示
- デフォルトに戻す機能
- リアルタイム反映
変更可能な画像:
PAID スタンプ – 支払い済み用
UI配置:
タブ3のCSVダウンロードの下に配置
このあと、Firebaseのパーミションエラー、image_pickerのバージョンなどいろいろありました・・
(もう長すぎて省略)
下記のようになりました。


アプリ内課金の実装
- 商品の設定
- Flutterコードの実装
- テスト
- セキュリティールールの本番化
流れ
- パッケージの追加
- Firestore設定
is_premium: false - 購入状態の管理(プレミアム会員情報)
- コード実装
- 購入画面の作成(プレミアム機能の説明、価格表示、購入ボタン)
機能のロック/アンロック
購入処理の実装(テスト用に、ボタンを押すと is_premium: true に変更)
購入復元機能 - ストア設定


