Skip to content

[Pro] front を mobile と同等機能まで追従させる(親issue) #499

Description

@ippei-shimizu

概要

Pro リリース(release/pro-202605)において mobile は練習機能を含む機能開発が完了しているが、front が追従できていない。front も mobile と同じ機能・UI/UX を実装するため、差分を洗い出して issue に分割した。

PR 追加行数 変更ファイル
mobile ippei-shimizu/buzzbase_mobile#80 +30,513 289
front ippei-shimizu/buzzbase_front#313 +2,141 32
back ippei-shimizu/buzzbase_back#216

back の API は v2 に全機能分が揃っており、front 側の実装だけで大半が完結する。

front の PR #313 に含まれるのは Pro LP / Stripe Checkout / ProGate / ProUpgradeModal / useEntitlement / 法務ページ(特商法・利用規約・プライバシーポリシー)のみで、Pro 配下の実機能は未着手。


Phase 0: 基盤(最優先・他のほぼ全てがブロックされている)

Phase 1: Pro 課金・サブスク管理

Phase 2: 既存成績画面の Pro 開放・フィルタ追従(低コスト・高効果)

Phase 3: 練習ドメイン(front に一切存在しない)

Phase 4: ノート・振り返り

Phase 5: 目標・レビュー

Phase 6: スケジュール・素振り・活動可視化

Phase 7: 既存領域の UX 追従


差分なしと判断した領域

以下は front が既に mobile と実質パリティに達しており、issue 化していない。

  • 打席記録 v2 API(作成/更新/削除/by_game)と3ステップウィザード・編集タブ構成
  • 打席詳細入力の全項目(BSO カウント / 初球打ち / ランナー状況 / イニング / 打球の質 / タイミング / 球種 / 対戦投手 / 登板状況 / 自己分析メモ)と投手マスタ CRUD
  • 試合記録ウィザードのフロー分岐(RecordPatternno_play のサマリー直行)
  • グループ招待リンク(発行 / 共有 / コード参加)とグループランキング表(打撃6・投手6カテゴリ)
  • 非公開アカウント(is_private / profile_visible_to?)の表示制御とフォローリクエスト状態
  • プロフィール編集の送信フィールド、フォロワー/フォロー中一覧、ユーザー検索
  • シーズン管理の CRUD(front が mobile より先行。Update: [front] シーズン管理の UX 細部を mobile と揃える #498 は導線の細部のみ)
  • 成績の計算式ページ、試合結果サマリータブ、アワード(受賞歴)

Push 通知(device_tokens)は Web 対象外のため、#489 で方式を決めるまで差分扱いしない。


横断的な要検討事項

  1. 決済手段: back 実装により Web は Stripe Checkout で独立して課金できる構成(platform: web)で確定済み。ただし Stripe の webhook handler が checkout_session_completed のみで、更新・解約・課金失敗・返金イベントが未処理の可能性が高い。Web 加入者の cancelled / billing_issue / expired への遷移が機能しないと Feature: [front] Web(Stripe) 解約導線と IAP 加入者向け解約案内を実装する #456 / Feature: [front] トライアル終了予告・課金失敗(billing_issue)の常設バナーを実装する #458 を作っても状態が更新されないため、back 側 issue の先行が必要
  2. POST /api/v1/pro/sync は RevenueCat 専用RevenueCat::SubscriberSync を呼ぶ)。Stripe 加入者に対する挙動が不明なため Feature: [front] Checkout 完了後の Pro ステータス反映待ちと再同期ボタンを実装する #461 の前に確認が必要。
  3. Stripe Customer Portal を使うか自前 UI か: 支払い方法更新・請求書・解約を Stripe 側に委譲すれば billing_issue 時の導線が標準で得られる。back に Portal Session 生成エンドポイントがないため方針決定が必要。
  4. Web でのブラウザ制約: 素振りのバックグラウンド継続実行(shadow_swing_background)は Web では成立しない。バイブレーションは iOS Safari 非対応。動画トリミングも実装コストが高い。これらの Pro 差別化を Web でどう扱うか要判断(Feature: [front] 素振りカウンター(設定 → カウント → 完了)を実装する #485 / Feature: [front] 野球ノートへのメディア添付(画像・動画)を実装する #477)。
  5. 無料枠の定数が三重管理になる: FREE_CALENDAR_WINDOW_MONTHS = 3MENU_SET_FREE_LIMIT = 2 等が back / mobile / front に重複する。API から上限値を返す設計を検討したい。
  6. entitlement 定数の手動同期が破綻しかけている: back から TS 型を自動生成する仕組み(rake タスク or JSON 配信)を別途検討する価値がある。
  7. オンボーディング完了状態の保存場所: mobile は端末ローカル。front を localStorage にするとデバイス間で共有されない(Feature: [front] 初回オンボーディング(Web版ウォークスルー)を実装する #497)。

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestfrontendproBUZZ BASE Pro リリースに関連する issue

Projects

Status
Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions