SPEC_01_画面機能仕様書 の仕様をもとに,実装の順序とステップを定義する. 各ステップは 1 つのブランチ・PR に対応させる.
| # | ステップ | 概要 | 依存 |
|---|---|---|---|
| 1 | プロジェクト基盤 | アプリ骨格,テーマ,画面遷移,Provider 登録 | — |
| 2 | カメラプレビュー | インカメラのライブプレビュー表示(180° 回転) | 1 |
| 3 | 撮影・保存 | シャッターボタン,PNG 保存,ファイル命名 | 2 |
| 4 | 一覧・削除 | サムネイルグリッド,拡大表示,画像削除 | 3 |
| 5 | 仕上げ | パーミッション UX 改善,エラーハンドリング,手動テスト | 4 |
アプリの骨格を構築し,画面遷移が動作する状態にする.
main.dart — runApp() で Provider を登録し,アプリを起動するapp.dart — MaterialApp の定義,テーマ設定screens/capture_screen.dart — 撮影画面の空のスキャフォールドscreens/gallery_screen.dart — 一覧画面の空のスキャフォールドBottomNavigationBar による 2 タブ切り替えTransform.rotate)dart analyze / dart format がクリーンfeature/app-foundation
インカメラのライブプレビューを撮影画面に表示する.
services/permission_service.dart — カメラ権限の確認・要求providers/camera_provider.dart — カメラの初期化・プレビュー制御・ライフサイクル管理widgets/camera_preview.dart — CameraPreview ウィジェットscreens/capture_screen.dart — カメラプレビューの組み込みfeature/camera-preview
シャッターボタンで撮影し,PNG 形式でストレージに保存する.
services/file_service.dart — PNG 保存,ファイル名生成,重複回避ロジックwidgets/shutter_button.dart — シャッターボタン UIproviders/camera_provider.dart — 撮影実行メソッドの追加screens/capture_screen.dart — シャッターボタンの組み込み,撮影成功時のスナックバーFileService のファイル名生成ロジックの Unit テストFileService の重複回避ロジックの Unit テストPictures/MiniTIAS/ に MiniTIAS_YYYYMMDD_HHmmss.png 形式で保存されるfeature/capture-save
撮影済み画像の一覧表示,拡大確認,削除機能を実装する.
providers/gallery_provider.dart — 画像一覧の取得・キャッシュ・削除操作widgets/image_grid.dart — 3 列サムネイルグリッドwidgets/image_detail_dialog.dart — 拡大表示ダイアログ(ピンチズーム,削除ボタン)screens/gallery_screen.dart — グリッド・ダイアログの組み込み,空状態メッセージGalleryProvider の一覧取得・削除ロジックの Unit テストfeature/gallery-delete
パーミッション UX の改善,エラーハンドリングの強化,全体の動作確認を行う.
dart analyze / flutter test がクリーンfeature/polish-permissions