# MiniTIAS

千葉大学フロンティア医工学センターの舌画像撮影・解析システム（TIAS）のスマートフォン版。
既存の積分球装置による撮影と画質を比較するため、まずは撮影・保存に特化したアプリとして開発。

## 主な機能

- フロントカメラによる舌画像の撮影（PNG 無圧縮保存）
- 3 秒カウントダウンタイマー
- 画面輝度調整スライダー（LED 光源の補助）
- 撮影画像の一覧表示・拡大閲覧・削除
- 端末を逆さに装着する専用アタッチメントに対応した UI 回転

## 対象デバイス

- AQUOS sense3（フロントカメラ + LED ライト付きアタッチメント）

## 技術スタック

| 項目 | 技術 |
|------|------|
| フレームワーク | Flutter 3.11 / Dart |
| 状態管理 | Provider |
| カメラ | camera パッケージ（Camera2 API） |
| 画像処理 | image パッケージ（YUV→PNG 変換） |
| 権限管理 | permission_handler |

詳細は [docs/02_ENV/ENV_01_技術スタック.md](docs/02_ENV/ENV_01_技術スタック.md) を参照。

## セットアップ

```powershell
# 1. リポジトリをクローン
git clone https://github.com/rintoHasegawa/MiniTias.git
cd MiniTias

# 2. セットアップスクリプトを実行（Flutter・Android SDK 等を自動インストール）
./scripts/setup.ps1

# 3. ライセンスに同意
flutter doctor --android-licenses

# 4. 環境を確認
flutter doctor
```

詳細な手順は [docs/02_ENV/ENV_02_環境構築手順.md](docs/02_ENV/ENV_02_環境構築手順.md) を参照。

## ビルド・実行

```bash
# USB デバッグを有効にした端末を接続
flutter devices    # 端末が認識されていることを確認
flutter run        # ビルド＆実行
```

## プロジェクト構成

```
lib/
├── screens/        # 画面（撮影・一覧）
├── providers/      # 状態管理（カメラ・ギャラリー）
├── services/       # ビジネスロジック（ファイル保存・権限・RAW 変換）
├── widgets/        # 共通ウィジェット（プレビュー・シャッターボタン・グリッド）
├── app.dart        # アプリ設定
└── main.dart       # エントリポイント

docs/
├── 01_GUIDE/       # 開発規約・ルール
├── 02_ENV/         # 環境構築
├── 03_PLAN/        # 要件定義・開発ステップ
└── 04_SPEC/        # 画面機能仕様
```

## 開発ガイド

| ルール | 概要 |
|--------|------|
| ブランチ命名 | `feature/` `fix/` `docs/` `chore/` + kebab-case |
| コミットメッセージ | `[add]` `[update]` `[fix]` `[remove]` `[clean]` + 日本語 |
| 実装フロー | `/implement` でコーディング → テスト → リファクタリング |
| コミット前 | `dart analyze` → `dart format .` → `flutter test` |

詳細は [docs/01_GUIDE/](docs/01_GUIDE/) 配下の各ガイドを参照。

## ドキュメント

- [要件定義書](docs/03_PLAN/PLAN_01_要件定義書.md)
- [開発ステップ](docs/03_PLAN/PLAN_02_開発ステップ.md)
- [画面機能仕様書](docs/04_SPEC/SPEC_01_画面機能仕様書.md)
- [Git 運用ルール](docs/01_GUIDE/GUIDE_04_Git運用ルール.md)
- [コーディング規約](docs/01_GUIDE/GUIDE_06_コーディング規約.md)
- [テスト方針](docs/01_GUIDE/GUIDE_07_テスト方針.md)
