# Cursor申し送り事項・残課題リスト ## 📅 作成日時 2026年2月3日 ## ✅ 完了事項(Claude実施済み) ### Phase D6完全実装 - ✅ [lib/widgets/home/sake_filter_chips.dart:27-28](lib/widgets/home/sake_filter_chips.dart#L27-L28) - `rawSakeListItemsProvider` → `allSakeItemsProvider` - 個人モードのタグフィルターからセット商品のタグを除外 - ✅ [lib/widgets/prefecture_filter_sheet.dart:21-22](lib/widgets/prefecture_filter_sheet.dart#L21-L22) - `rawSakeListItemsProvider` → `allSakeItemsProvider` - 個人モードの都道府県フィルターからセット商品の都道府県を除外 - ✅ [lib/theme/app_theme.dart:134-135](lib/theme/app_theme.dart#L134-L135) - ダークモードAppBar背景色統一(#121212 → #1E1E1E) ### 定数統一化 - ✅ [lib/constants/app_constants.dart](lib/constants/app_constants.dart) 新規作成 - ✅ 10個の定数を7ファイルで使用 ### リリースビルド - ✅ Lite版: `ponshu-room-lite-v1.0.10+19-release.apk` (88.9MB) - ✅ Pro版: `ponshu-room-pro-v1.0.10+19-release.apk` (50.5MB) --- ## 🔴 残課題(優先度: 高) ### 1. flutter analyze残存issues(58件) **現状**: 61 issues → 58 issues(3件改善済み) **内訳**: - deprecated_member_use: 約20件(Tutorial関連、Share関連、ExpansionTileController) - use_build_context_synchronously: 約15件 - withOpacity → withValues()への移行: 約10件 - その他: 約13件 **Cursorへの依頼事項**: ```markdown 優先度順に修正してください: 1. **Tutorial関連のdeprecated警告** (7箇所) - lib/models/user_profile.dart - lib/models/user_profile.g.dart - lib/providers/theme_provider.dart - これらのフィールドは既に削除予定としてマークされているが、完全削除されていない - 削除しても問題ないか確認後、完全削除を検討 2. **withOpacity → withValues()への移行** (約10箇所) - Flutter 3.x以降のAPIに準拠 - 精度損失を防ぐための推奨修正 - 一括置換可能(デグレリスクは低い) 3. **use_build_context_synchronously警告** (約15箇所) - async処理後のBuildContext使用に関する警告 - mounted チェックが必要な箇所を特定 - デグレリスクあり(慎重に対応) 4. **Share → SharePlus移行** (2箇所) - lib/screens/placeholders/sommelier_screen.dart:51 - 新しいパッケージへの移行 - pubspec.yamlの依存関係確認が必要 5. **ExpansionTileController → ExpansibleController** (2箇所) - lib/widgets/sake_detail/sake_detail_specs.dart:24 - Flutter 3.31.0以降のAPI変更 ``` --- ### 2. セット商品のUI設計検討 **現状の課題**: ユーザーコメント: > セット商品はあくまでビジネスモードのお品書き作成でしか使いません。 > ビジネスモードでも、カード一覧ではない場所から選択できた方がいいのかもしれない。 **現在の動作**: - 個人モード: セット商品は完全除外(Phase D6完了) - ビジネスモード: カード一覧にセット商品が混在 **検討オプション**: **Option A: メニュー作成画面専用UI** ``` メリット: - セット商品と通常商品を明確に分離 - お品書き作成時のUXが向上 - 「セット商品」の用途が明確化 デメリット: - 新規UIコンポーネント作成が必要 - 実装工数: 中〜大 推奨度: ★★★★☆ ``` **Option B: カード一覧に「セット商品タブ」追加** ``` メリット: - 既存UIの延長で実装可能 - ビジネスモード全体でセット商品にアクセス可能 デメリット: - タブが増えてUIが複雑化 - 実装工数: 小〜中 推奨度: ★★★☆☆ ``` **Option C: 現状維持** ``` メリット: - 追加実装不要 - デグレリスクゼロ デメリット: - ビジネスモードでカード一覧が混雑 - 「セット商品」の特殊性が視覚的に不明確 推奨度: ★★☆☆☆ ``` **Cursorへの依頼事項**: ```markdown AI_CONSULTATION_PROMPT.mdを参考に、他のAI(Gemini、GPT-4)と協議して、 最適なUI設計を提案してください。 検討ポイント: 1. セット商品の登録頻度・使用頻度 2. お品書き作成フローの最適化 3. ビジネスモードの全体的なUX 4. 実装工数とメンテナンス性 ``` --- ## 🟡 残課題(優先度: 中) ### 3. ライトモードのUI/UX統一 **現状**: - ダークモードは統一済み(AppBar背景色: #1E1E1E) - ライトモードは Material Design 3 の標準動作(スクロールで色変化) **Cursorへの依頼事項**: ```markdown ライトモードでAppBarとNavigationBarの背景色を統一する場合: 1. 検索フィールドのテキスト色を変更する必要があるか確認 - 現在: Colors.white(AppBarが常にダーク背景前提) - 変更後: appColors.textPrimary など 2. Material Design 3のスクロール時色変化を無効化 - backgroundColor を明示的に指定 3. 全テーマ(Sumi, Kohaku, Ai, Wakakusa)で確認 ⚠️ デグレリスク中程度(慎重に実施) ⚠️ ユーザーに確認を取ってから実施推奨 ``` --- ### 4. iOS準備(将来的) **必要作業**: 1. Info.plist権限追加 ```xml NSPhotoLibraryUsageDescription 写真ライブラリにアクセスして日本酒の画像を選択します NSCameraUsageDescription カメラで日本酒のラベルを撮影します ``` 2. Firebase iOS設定 - GoogleService-Info.plist作成 - Firebase ConsoleでiOSアプリ追加 3. 2017 MacBook Air制約 - Xcode最新版が動作するか確認 - メモリ不足の可能性あり(8GB) **Cursorへの依頼事項**: ```markdown iOS配布前に以下を実施: 1. Info.plistに必要な権限をすべて追加 2. Firebase iOS設定の手順書作成 3. 2017 MacBook Airでの動作確認手順 4. TestFlightまたはAd-Hoc配布の手順書 ``` --- ## 🟢 残課題(優先度: 低) ### 5. 未使用コード・コメントのクリーンアップ **確認が必要な箇所**: 1. lib/models/user_profile.dart の tutorial関連フィールド - hasSeenCameraTutorial - hasSeenProfileTutorial - hasSeenSommelierTutorial - これらは既に `@Deprecated` だが完全削除されていない 2. tools/ ディレクトリのスクリプト - avoid_print 警告が多数 - デバッグ用途なら問題ないが、不要なら削除 **Cursorへの依頼事項**: ```markdown 以下をクリーンアップ: 1. Deprecatedフィールドの完全削除 - マイグレーション処理が必要か確認 - 既存ユーザーデータとの互換性確認 2. tools/ ディレクトリのスクリプト整理 - 使用されているスクリプトと未使用スクリプトを分類 - 未使用なら削除、使用中ならdebug用として明示 ``` --- ### 6. パッケージアップデート **現状**: ``` Lite版: 60 packages have newer versions incompatible with dependency constraints. Pro版: 33 packages have newer versions incompatible with dependency constraints. ``` **注意事項**: - flutter_riverpod 3.1.0 → 3.2.0 - google_fonts 6.3.3 → 8.0.0 - connectivity_plus 6.1.5 → 7.0.0 (Breaking changes likely) - その他多数 **Cursorへの依頼事項**: ```markdown ⚠️ 慎重に実施(Breaking changes多数) 1. flutter pub outdated でBreaking changesを確認 2. 影響範囲が小さいパッケージから順次アップデート 3. 各アップデート後に flutter analyze と flutter test を実行 4. 実機テストで動作確認 優先度: - Low: 現状でも動作している - ただし、長期的にはメンテナンスが必要 ``` --- ## 📝 保護すべきコード(絶対に変更しないこと) ### 1. 空状態判定ロジック ```dart // lib/screens/home_screen.dart:176 final isListActuallyEmpty = ref.watch(rawSakeListItemsProvider).asData?.value.isEmpty ?? true; // lib/screens/menu_creation_screen.dart:134 final isListActuallyEmpty = ref.watch(rawSakeListItemsProvider).asData?.value.isEmpty ?? true; ``` **理由**: 「完全に空」vs「フィルタで0件」の区別に必須 --- ### 2. 開発者メニューの全データアクセス ```dart // lib/screens/dev_menu_screen.dart:189 final allItems = ref.read(rawSakeListItemsProvider).asData?.value ?? []; ``` **理由**: セット商品含む全データ解析が必要 --- ### 3. 意図的なハードコーディング **画像オーバーレイ** (lib/widgets/home/sake_grid_item.dart:102): ```dart color: Colors.black54, // Changed from gradient to solid for "Transparent Black" underlay request ``` **理由**: 以前の入念な調整結果。視認性確保のため。 **AppBar検索フィールド** (複数箇所): ```dart style: const TextStyle(color: Colors.white) ``` **理由**: AppBarは常にダーク背景のため、白テキストが正解。 詳細: [SAFE_FIXES_REPORT.md](SAFE_FIXES_REPORT.md)参照 --- ## 🎯 Cursorへの推奨作業順序 ### フェーズ1: 安全な修正(デグレリスク: 低) 1. ✅ withOpacity → withValues() 一括置換 2. ✅ Tutorial関連のDeprecated削除(マイグレーション確認後) 3. ✅ Share → SharePlus移行 4. ✅ ExpansionTileController → ExpansibleController移行 **期待される成果**: flutter analyze 58 issues → 35 issues程度 --- ### フェーズ2: 慎重な修正(デグレリスク: 中) 1. ⚠️ use_build_context_synchronously警告の修正 - mounted チェック追加 - 各箇所を個別に検証 2. ⚠️ ライトモードUI統一(ユーザー確認後) **期待される成果**: flutter analyze 35 issues → 20 issues程度 --- ### フェーズ3: 長期的改善(デグレリスク: 中〜高) 1. ⚠️ セット商品のUI設計変更(Option A推奨) 2. ⚠️ パッケージアップデート(段階的に) 3. ⚠️ iOS準備(将来的) --- ## 📊 現状の品質指標 ### ビルド - ✅ Lite版: 88.9MB(リリースビルド成功) - ✅ Pro版: 50.5MB(リリースビルド成功) ### 静的解析 - flutter analyze: 58 issues(info levelのみ、error/warningなし) ### Phase D6実装 - ✅ 個人モード: セット商品完全除外 - ✅ ビジネスモード: セット商品表示 - ✅ タグフィルター: セット商品除外(個人モード) - ✅ 都道府県フィルター: セット商品除外(個人モード) - ✅ 空状態判定: 正常動作 ### UI/UX - ✅ ダークモード: AppBar/NavigationBar統一 - ⚠️ ライトモード: Material Design 3標準動作(要検討) --- ## 📚 参考ドキュメント 1. **PHASE_D6_COMPLETION_REPORT.md**: Phase D6完全実装の詳細 2. **IMPLEMENTATION_SUMMARY_v1.0.10+19.md**: 全実装内容のサマリー 3. **CURSOR_PROPOSAL_FINAL_REVIEW.md**: Cursor提案の批判的レビュー 4. **SAFE_FIXES_REPORT.md**: 意図的なハードコーディングのリスト 5. **AI_CONSULTATION_PROMPT.md**: セット商品UI設計の相談用プロンプト 6. **CURSOR_REVIEW_PROMPT_UPDATED.md**: 包括的レビュープロンプト --- ## 🎉 完了の定義(Definition of Done) ### Android友人配布版 - ✅ Phase D6完全実装(完了) - ✅ リリースビルド成功(Lite/Pro両方) - ✅ デグレなし(flutter analyze安定) - ✅ 実機テスト推奨(ユーザー実施) ### 次期バージョン(v1.0.11+20) - [ ] flutter analyze 20 issues以下 - [ ] セット商品UI改善(Option A実装) - [ ] iOS TestFlight配布準備完了 - [ ] パッケージアップデート完了 --- **作成者**: Claude (Sonnet 4.5) **作成日時**: 2026年2月3日 **対象バージョン**: v1.0.10+19 **Cursor申し送り**: このドキュメントに従って段階的に改善してください