← ClaudeAtlas

mobile-conventionslisted

HwHubモバイル(hw-hub-mobile)の設計規約・実装方針。Dartファイル・Flutterウィジェット・RiverpodのNotifier・Retrofitクライアント・テストファイルを新規作成・編集するときは必ずこのスキルを参照すること。feature-first構成・アーキテクチャ層・状態管理・テスト方針・i18nなど、実装の判断に必要な規約をすべてここに集約している。
ryokkon624/scrum-agent-base · ★ 0 · AI & Automation · score 62
Install: claude install-skill ryokkon624/scrum-agent-base
# Mobile Conventions hw-hub-mobileの設計規約・実装方針。 特定の実装場面でだけ必要になる詳細パターンは `patterns/` 配下に分離している。本文中のリンク先は、該当する実装をするときだけ読むこと。 --- ## 1. アーキテクチャ(feature-first + 簡略 Clean Architecture) ``` presentation/ (Page・Notifier・State) ↓ data/ (Repository interface + impl・API・モデル) ↓ core/network/ (Dio・例外・インターセプター) ``` - **domain 層は省略**する。Repository interface は `data/` に同居させる - UseCase は設けない。Notifier が直接 Repository を呼ぶ - 複数機能をまたぐビジネスロジックが必要になった場合のみ `domain/usecase/` を切り出す - `features/shell` はナビゲーションシェル(BottomNavigationBar・世帯切替UI)であり、ドメイン機能ではない ### 依存方向ルール - Page は Notifier を呼ぶ。Repository を直接呼ばない - Notifier は Repository interface に依存する。実装クラスには依存しない - **Notifier 内で `Dio` を直接使用してはならない**。必ず `Repository` 経由で API を呼ぶこと(`Notifier → Repository → Api` の依存方向を守ること) - `core/` 配下は全機能から参照できる共通基盤 --- ## 2. ディレクトリ構成 ``` lib/ ├── main.dart ├── app_router.dart # GoRouter 全ルート定義 ├── core/ # 全機能共通基盤 │ ├── auth/ # 認証状態管理(AuthNotifier・TokenStorage) │ ├── config/ # 環境設定(AppConfig・ベースURL) │ ├── di/ # Provider 定義(DI配線) │ ├── household/ # 世帯状態管理 │ ├── models/ # 共有ドメインモデル │ ├── network/ # Dio クライアント・例外定義・インターセプター │ ├── storage/ # ストレージキー定数 │ ├── theme/ # テーマ・カラー・スペーシング定数 │ └── ui/ # 共通UIコンポーネント(SnackBar・Dialog) └── features/ └── {feature}/ ├── {feature}_providers.dart # Provider 定義