# プロジェクト構成定義書 (Project Configuration) ## 1. プロジェクト基本情報 (Basic Information) - **プロジェクト名**: Android 音声操作端末アプリ (Voice-Controlled Android App) - **対象パス**: `/root/.gemini/antigravity-cli/scratch/voice_controlled_device` - **開発種別**: 新規開発 (New Development) - **対象デバイス / OS**: Android OS 10.0+ (API Level 29 以上推奨) - **ハードウェア設計の有無**: なし (市販/標準Android端末の上で動作するソフトウェア開発。内蔵マイク・スピーカー・Bluetoothオーディオ機器等を使用) - **主なユースケース**: ハンズフリーによる音声認識・コマンド入力、対話システム、音声読み上げ (TTS)、端末状態管理 --- ## 2. 技術スタック (Tech Stack) - **プログラミング言語**: Kotlin (v1.9+) - **UIフレームワーク**: Jetpack Compose (宣言型UI) - **音声認識 (Speech Recognition)**: `SpeechRecognizer` API / Android Voice Interaction API - **音声合成 (Text-to-Speech)**: `TextToSpeech` (TTS) Engine - **非同期処理・状態管理**: Kotlin Coroutines, StateFlow / SharedFlow - **アーキテクチャモデル**: Clean Architecture + MVVM (Model-View-ViewModel) - **依存関係注入 (DI)**: Hilt / Koin - **データ保持・キャッシュ**: Room Database / DataStore Preferences --- ## 3. テスト実行方式 & CI/CD (Testing & CI Execution) - **テスト実行方式**: - **ローカルテスト (Local Execution)**: - 単体テスト: JUnit 5, MockK, Turbine (Flow/Coroutinesテスト) - UI・結合テスト: Jetpack Compose Test Framework, Robolectric - **CI実行環境 (CI Pipeline)**: - Gitea Runner / GitHub Actions によるビルド自動化、静的解析 (ktlint/detekt)、単体テスト実行 - **テストスコープ**: - Domain / Data レイヤーのユニットテスト完全自動化 - SpeechRecognizer / TTS ラッパーインターフェースのモックテスト --- ## 4. 推奨ディレクトリ構成 (Directory Structure) ``` voice_controlled_device/ ├── docs/ │ ├── 00_project_config.md # 本構成定義ファイル │ └── 02_specifications.md # 機能仕様書 ├── app/ │ ├── src/ │ │ ├── main/ │ │ │ ├── java/com/example/voiceapp/ │ │ │ │ ├── data/ # リポジトリ・ローカルデータソース │ │ │ │ ├── domain/ # ユースケース・モデル定義 │ │ │ │ ├── ui/ # Jetpack Compose UI / ViewModel │ │ │ │ └── voice/ # SpeechRecognizer & TTS ラッパーモジュール │ │ │ └── AndroidManifest.xml │ │ └── test/ # 単体テストコード └── build.gradle.kts ``` --- ## 5. 次の工程への引継ぎ事項 - 機能仕様書 (`docs/02_specifications.md`) の作成に進みます。