月謝袋アプリにプレミアム機能を実装

目次

今回やったこと

Flutter製の月謝管理アプリに、RevenueCatを使った
サブスクリプション機能を実装しました。

サンドボックステスト

iOSのサンドボックスアカウントを使って購入フローをテスト。
「プレミアムにアップグレード」ボタン → Apple の購入確認画面
→ 購入完了 → CSV機能アンロック、という一連の流れが動作しました。

「ちら見せ」カレンダー画面

プレミアム未加入のユーザーには、カレンダーがうっすら見える
ロック画面を表示します。

  • 背景:ダミーカレンダー(透過表示)
  • 前面:鍵アイコン+「¥300/月で始める」ボタン

これにより「こんな機能があるんだ」と視覚的に伝えられます。

実装でハマったポイント

Firestoreのフィールド名

カレンダーのデータ取得で最初うまくいきませんでした。
Firestoreのフィールド名が year ではなく year_dropdown、
month ではなく month_dropdown(ゼロ埋め)でした。
実際のデータ構造を確認することが大事です。

プレミアム判定の優先順位

RevenueCatだけで判定すると、Firestoreに is_premium: true が
あっても認識されないケースがありました。
Firestore → RevenueCat の順番でチェックするように修正しました。

次のステップ

  • カレンダーの生徒色分け表示
  • 同日複数レッスンの名前一覧表示
  • ダブルブッキング検知機能

目次