端末ストレージ上のファイルを Amazon S3 と同期するモバイルアプリ。
ステータス: 開発中。設定画面までを実装済みで、ファイル同期機能は未着手。
- Android
- iOS
Web / デスクトップは対象外。
- Flutter(バージョンは mise.toml で固定)
- 状態管理: Provider +
ChangeNotifier(ADR-0003) - ルーティング: go_router +
StatefulShellRoute.indexedStack(ADR-0004) - 永続化: shared_preferences(非機密設定)。認証情報は
flutter_secure_storage予定 - 国際化:
flutter_localizations+ ARB(ADR-0005、対応言語: ja / en) - Lint: very_good_analysis + Effective Dart 準拠の追加ルール(.claude/rules/coding-style.md)
mise で Flutter SDK を管理しているため、Flutter コマンドは mise exec -- 経由で実行する。
mise install # mise.toml に従って Flutter SDK をインストール
mise exec -- flutter pub get # 依存を解決
mise exec -- flutter run # 接続中のデバイスでアプリを起動mise exec -- flutter test # テスト実行
mise exec -- flutter test --coverage # カバレッジ計測(coverage/lcov.info)
mise exec -- flutter analyze # 静的解析
mise exec -- dart format . # フォーマット(80列)
mise exec -- flutter gen-l10n # ARB ファイル変更後にローカライズを再生成lib/
├── domain/models/ # ドメインモデル (@immutable)
├── data/repositories/ # データアクセス。外部ストアはコンストラクタ注入
├── routing/app_router.dart # 単一の GoRouter インスタンス
├── l10n/ # ARB ファイル + 拡張(生成物は .gitignore 対象)
├── main.dart # DI と MaterialApp.router の組み立て
└── ui/
├── core/ # feature 横断の共通ウィジェット
└── features/<feature>/
├── view_models/ # ChangeNotifier ベースの ViewModel
└── views/ # View(context.watch / context.read で消費)
詳細なアーキテクチャ方針は CLAUDE.md と各 ADR を参照。
- CLAUDE.md — Claude Code 等の AI エージェント向けプロジェクトガイド
- docs/adr/ — アーキテクチャ決定記録(MADR v4 形式)
- .claude/rules/git.md — Conventional Commits / GitHub Flow / semantic-release
- .claude/rules/security.md — OWASP MASVS v2 準拠の遵守事項
- .claude/rules/coding-style.md — Effective Dart ベースの追加コーディング規約