.claude [update] テンプレートリポジトリの最新変更を同期 1 month ago
.vscode [add] プロジェクト初期構成 3 months ago
android [add] ImageStatistics の数理ロジックに JUnit テストを追加 1 month ago
docs [clean] 05_TECH を1本に統合(往復書簡 TECH_01-04 を設計経緯・合意の要約に圧縮) 1 month ago
ios [add] Flutter プロジェクト初期構成 3 months ago
lib [update] Dart リファクタリング(挙動不変・テスト保護) 1 month ago
linux [add] Flutter プロジェクト初期構成 3 months ago
macos [add] 撮影フローにシャッター音・保存完了音とON/OFFトグルを追加 3 months ago
scripts [add] プロジェクト初期構成 3 months ago
test [update] プレビュー JPEG をライブプレビュースナップショットに切替 1 month ago
web [add] Flutter プロジェクト初期構成 3 months ago
windows [add] カメラプレビュー(全画面表示・鏡像・上下反転対応) 3 months ago
.gitattributes [update] テンプレートリポジトリの最新変更を同期 2 months ago
.gitignore [clean] 参考画像 DSC_0066.JPG を Git 追跡から除外 1 month ago
.metadata [add] Flutter プロジェクト初期構成 3 months ago
CLAUDE.md [clean] 05_TECH を1本に統合(往復書簡 TECH_01-04 を設計経緯・合意の要約に圧縮) 1 month ago
README.md [clean] 05_TECH を1本に統合(往復書簡 TECH_01-04 を設計経緯・合意の要約に圧縮) 1 month ago
analysis_options.yaml [add] Flutter プロジェクト初期構成 3 months ago
pubspec.lock [add] 撮影フローにシャッター音・保存完了音とON/OFFトグルを追加 3 months ago
pubspec.yaml [add] 撮影フローにシャッター音・保存完了音とON/OFFトグルを追加 3 months ago
README.md

MiniTIAS

千葉大学フロンティア医工学センターの舌画像撮影・解析システム(TIAS)のスマートフォン版。 PC 側のシミュレーション(SmTIAS-LightSim)と実機撮影を定量比較するため、Camera2 API の 完全マニュアル制御で RAW(DNG)を撮影・保存することに特化したアプリ。

主な機能

  • 定量モード撮影(DNG): フロントカメラを Camera2 API でフルマニュアル制御(AE/AWB/AF/NR/EDGE OFF・線形トーンマップ・露光 1/120s・ISO 40 固定)し、10-bit BGGR Bayer の RAW を .dng(約 16 MB)で保存
  • メタデータ JSON: 撮影設定・実適用値・センサ特性・LSC マップ・画素統計・Hot pixel map を .meta.json に保存
  • プレビュー JPEG: シャッター瞬間のライブプレビュー(自動 ISP 処理)スナップショットを .preview.jpg として保存し、アプリ内で撮れ具合を確認
  • 一覧・閲覧・削除: 撮影画像のサムネイル一覧、拡大表示、関連 3 ファイル連動削除
  • カメラ診断: 実機 Camera2 能力(HW Level・対応モード・出力サイズ等)を JSON 出力(インフラのみ・UI 非表示)
  • 端末を逆さに装着する専用アタッチメントに対応した 180° 回転 UI、画面輝度調整、シャッター音 ON/OFF

旧通常モードの非圧縮 PNG 撮影パス(captureFullResolutionPng)はフォールバック用にコードを温存。

対象デバイス

  • AQUOS sense3(SH-02M)/ フロントカメラ + LED ライト付きアタッチメント
  • 診断結果: HW Level 3 + RAW + MANUAL_SENSOR + MANUAL_POST_PROCESSING 対応

技術スタック

項目技術
フレームワークFlutter(stable)/ Dart
状態管理Provider
カメラ(プレビュー)camera パッケージ(ライブプレビュー用)
カメラ(撮影・変換)Android ネイティブ Kotlin(Camera2 API / DngCreator / YUV→JPEG・PNG エンコード)
権限管理permission_handler
設定保存shared_preferences(シャッター音 ON/OFF 等)
画面輝度screen_brightness

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

セットアップ

# 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 を参照。

ビルド・実行

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

撮影データ(.dng / .meta.json / .preview.jpg)は端末の Pictures/MiniTIAS/ に保存される。 PC への転送は adb pull を推奨(大容量 DNG では MTP に不整合リスクあり)。

プロジェクト構成

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

android/app/src/main/kotlin/com/example/mini_tias/
└── RawCapturePlugin.kt   # Camera2 撮影・DNG/PNG/JPEG 変換・診断のネイティブ実装

docs/
├── 01_GUIDE/       # 開発規約・ルール
├── 02_ENV/         # 環境構築
├── 03_PLAN/        # 要件定義・開発ステップ
├── 04_SPEC/        # 画面機能仕様
├── 05_TECH/        # 技術設計・SmTIAS-LightSim 側との外部要求/合意
└── 06_TEST/        # 実機検証結果(カメラ診断など)

開発ガイド

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

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

ドキュメント