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

263 lines
9.2 KiB
Markdown
Raw Normal View History

# 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改善提案の実施可否判断