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

263 lines
9.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Ponshu Room Lite - 友人配布前の最終コードレビュー(更新版)
## 📋 これまでの作業完了状況
### ✅ Claude実装完了項目2026-02-03
1. **home_screen.dart:70-71修正** - Phase D6フィルタリング完全性修正
- `rawSakeListItemsProvider``allSakeItemsProvider`
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`を新規作成(モード別フィルタリングを一元化)
- データフロー: `rawSakeListItemsProvider``filteredByModeProvider``allSakeItemsProvider`/`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-71`2026-02-03追加修正
---
## 【重要】修正してはいけない項目
### ❌ UI/UXの直接色指定
以下の箇所は**意図的なハードコーディング**のため修正不可:
1. **home_screen.dart:86-88** - AppBar検索フィールド
```dart
hintStyle: const TextStyle(color: Colors.white70),
style: const TextStyle(color: Colors.white),
```
**理由**: AppBarは常にダーク背景のため、白テキスト固定が正しい
2. **sake_grid_item.dart:102-152** - 画像オーバーレイ
```dart
color: Colors.black54, // Changed from gradient to solid for "Transparent Black" underlay request
```
**理由**: 過去に入念に修正した結果(視認性確保のため)
3. **SpeedDialのオーバーレイ**home_screen.dart:151, 167
**理由**: Material Designの標準パターン
---
## 【NEW】UI/UX改善提案オプション
### 提案1: AppBarとNavigationBarの背景色統一ダークモードのみ
**現状**:
- AppBarダークモード: `#121212`(やや暗い)
- NavigationBarダークモード: `#1E1E1E`(若干明るい)
**改善案**lib/theme/app_theme.dart:134:
```dart
// 現在
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:
```dart
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`(写真ライブラリ権限)
- `CFBundleURLSchemes`Google 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実装は維持、意図的なハードコーディングの修正
### 出力形式
以下の形式で報告してください:
```markdown
## コードレビュー結果
### 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改善提案の実施可否判断