ponshu-room-lite/docs/archive/CURSOR_REVIEW_PROMPT_UPDATE...

9.2 KiB
Raw Blame History

Ponshu Room Lite - 友人配布前の最終コードレビュー(更新版)

📋 これまでの作業完了状況

Claude実装完了項目2026-02-03

  1. home_screen.dart:70-71修正 - Phase D6フィルタリング完全性修正
    • rawSakeListItemsProviderallSakeItemsProvider
  2. マジックナンバー定数化 - lib/constants/app_constants.dart作成・全ファイル適用
    • sake_detail_screen.dartレコメンド件数、信頼度スコア
    • sommelier_screen.dartMBTI最小件数
    • gamification_service.dartバッジ閾値
    • other_settings_section.dart開発モードタップ数
    • add_set_item_dialog.dart画像品質
  3. flutter analyze改善 - 61issues → 58issues3件改善

⚠️ 実施不要と判断した項目

  • セット商品画像圧縮統一化(既に適切な圧縮設定が存在)

プロジェクト概要

  • アプリ名: Ponshu Room Lite日本酒コレクション管理アプリ
  • 現在バージョン: v1.0.10+19
  • 配布計画:
    • 優先: Android版友人配布用APKビルド済み
    • 次段階: iOS版2017 MacBook Airで環境構築予定
  • 状態管理: Riverpod 2.x
  • 主要機能: OCRラベル認識、Google Drive同期、MBTI診断、スマートレコメンド

Phase D6 完了状況(最新実装)

実装完了内容:

  • filteredByModeProviderを新規作成(モード別フィルタリングを一元化)
  • データフロー: rawSakeListItemsProviderfilteredByModeProviderallSakeItemsProvider/sakeListProvider
  • Personal Mode: セット商品(ItemType.set)と未分析品(isPendingAnalysis)を除外
  • Business Mode: 全アイテム表示

修正完了箇所:

  • lib/providers/sake_list_provider.dart:68
  • lib/screens/sake_detail_screen.dart:76
  • lib/widgets/sake_search_delegate.dart:48
  • lib/screens/home_screen.dart:70-712026-02-03追加修正

【重要】修正してはいけない項目

UI/UXの直接色指定

以下の箇所は意図的なハードコーディングのため修正不可:

  1. home_screen.dart:86-88 - AppBar検索フィールド
hintStyle: const TextStyle(color: Colors.white70),
style: const TextStyle(color: Colors.white),

理由: AppBarは常にダーク背景のため、白テキスト固定が正しい

  1. sake_grid_item.dart:102-152 - 画像オーバーレイ
color: Colors.black54, // Changed from gradient to solid for "Transparent Black" underlay request

理由: 過去に入念に修正した結果(視認性確保のため)

  1. SpeedDialのオーバーレイhome_screen.dart:151, 167 理由: Material Designの標準パターン

【NEW】UI/UX改善提案オプション

提案1: AppBarとNavigationBarの背景色統一ダークモードのみ

現状:

  • AppBarダークモード: #121212(やや暗い)
  • NavigationBarダークモード: #1E1E1E(若干明るい)

改善案lib/theme/app_theme.dart:134:

// 現在
appBarTheme: AppBarTheme(
  backgroundColor: (brightness == Brightness.dark) ? const Color(0xFF121212) : null,
  ...
),

// 改善後
appBarTheme: AppBarTheme(
  backgroundColor: (brightness == Brightness.dark) ? const Color(0xFF1E1E1E) : null,
  ...
),

メリット:

  • ダークモードでAppBarとNavigationBarの色が統一
  • AppBarがやや明るくなり、視認性向上
  • ライトモードは現状維持(デグレなし)
  • 検索フィールド変更不要

デメリット:

  • ⚠️ ユーザーの見た目に若干の変化AppBarが若干明るくなる

実施可否: ユーザー判断に委ねる実装時間2分


提案2: AppBarの初期背景色設定ライトモードのみ

現状:

  • ライトモードのAppBar: null → スクロールすると色がつくMaterial Design 3デフォルト

改善案lib/theme/app_theme.dart:134:

appBarTheme: AppBarTheme(
  backgroundColor: (brightness == Brightness.dark)
      ? const Color(0xFF1E1E1E)
      : Colors.white, // 最初から白背景を敷く
  ...
),

メリット:

  • AppBarとNavigationBarの完全統一
  • スクロール時の色変化がなくなり、落ち着いた印象

デメリット:

  • home_screen.dartの検索フィールド修正が必須(白テキスト→黒テキスト)
  • ⚠️ Material Design 3の標準動作から外れる
  • ⚠️ デグレリスク中程度

実施可否: 実装前にユーザーと相談必須


【iOS準備】事前確認項目

iOS固有設定の現状チェック

  1. Firebase設定iOS

    • ios/Runner/GoogleService-Info.plistの存在と内容
    • Firebase ConsoleでiOSアプリ登録済みか
  2. 権限記述Info.plist

    • ios/Runner/Info.plistに以下が記載されているか:
      • NSCameraUsageDescription(カメラ権限)
      • NSPhotoLibraryUsageDescription(写真ライブラリ権限)
      • CFBundleURLSchemesGoogle Sign-In用
  3. ビルド互換性

    • ios/Podfileのプラットフォーム設定は適切か?
    • 2017 MacBook AirmacOS最大Big Sur 11.xで動作するXcodeバージョンでビルド可能か

【質問形式】レビュー依頼

以下の質問に対し、コードベースを精査して回答してください:

1. Phase D6のフィルタリングは完全に動作していますか

  • rawSakeListItemsProviderへの直接参照が残っていないか再調査
  • 既知の修正完了箇所を除外
    • home_screen.dart:70-71修正済み
    • sake_list_provider.dart:68修正済み
    • sake_detail_screen.dart:76修正済み
    • sake_search_delegate.dart:48修正済み

2. マジックナンバー定数化は完全ですか?

  • AppConstantsが使用されていない箇所が残っていないか?
  • 特に以下の数値をチェック:
    • 画像圧縮品質85, 90
    • 画像最大サイズ1024, 2000
    • MBTI最小件数5
    • バッジ閾値50, 5.0など)
    • 開発モードタップ数5
    • 信頼度スコア閾値80, 50

3. 非同期処理のmountedチェック漏れはありますか?

  • use_build_context_synchronously警告が新たに発生していないか?
  • 危険な箇所camera_screen.dart, scan_screen.dart, sake_detail_screen.dart

4. iOS互換性の問題はありますか

  • プラットフォーム分岐コード(Platform.isAndroidのみでPlatform.isIOSが欠けている箇所)
  • iOS未対応のパッケージ使用
  • Android固有API の使用

5. 配布前に修正すべき Critical/High 優先度の問題は何ですか?


R8無効化について判断保留

現状: isMinifyEnabled = false(意図的な無効化) 理由: Google Drive API、Firebase、画像処理ライブラリとの互換性懸念

実行指示:

  • R8有効化した場合のリスク評価のみ実施
  • 実際の有効化は実行しない(ビルドエラーリスクが高い)
  • ProGuardルール追加で対応可能か検証

実行ガイドライン

修正の優先順位

  1. CRITICAL: 即座に修正(バグ、クラッシュリスク)
  2. HIGH: 配布前に実装推奨パフォーマンス、UX
  3. MEDIUM: 時間があれば実装(保守性、将来対策)

破壊的変更の扱い

  • 許可: バグ修正、パフォーマンス最適化
  • 要相談: アーキテクチャ変更、大規模リファクタリング、UI/UX変更
  • 禁止: 機能削除、既存動作の変更Phase D6実装は維持、意図的なハードコーディングの修正

出力形式

以下の形式で報告してください:

## コードレビュー結果

### CRITICAL修正即実行推奨
1. [項目名]
   - 修正箇所: [ファイルパス:行番号]
   - 問題内容: [具体的な問題]
   - 修正方針: [どう修正すべきか]
   - 影響範囲: [どの機能に影響するか]

### HIGH修正配布前推奨
...

### MEDIUM修正時間があれば実装
...

### UI/UX改善提案オプション
- 提案1AppBar背景色統一の実施可否判断
- 提案2ライトモード初期背景の実施可否判断

### iOS互換性検証結果
- 必須対応事項: [環境構築前に解決すべき問題]
- 推奨対応事項: [iOS品質向上のための改善]
- Android実装への影響: [あり/なし + 詳細]

### 新規発見事項
...

### 修正不要と判断した項目
...

## 総合評価
- 修正前の評価: [1-10点]
- 修正後の評価: [1-10点]
- Android配布可否判断: [Go/No-Go + 理由]
- iOS準備の難易度: [Easy/Medium/Hard + 理由]

最終確認

このプロンプト実行後、以下が達成されることを期待: Criticalバグが0件 Phase D6フィルタリングの完全性検証 マジックナンバー定数化の完全性検証 Android配布可否の明確な判断材料 iOS準備の完全なロードマップ UI/UX改善提案の実施可否判断