千葉大学フロンティア医工学センターの舌画像撮影・解析システム(TIAS)のスマートフォン版。 PC 側のシミュレーション(SmTIAS-LightSim)と実機撮影を定量比較するため、Camera2 API の 完全マニュアル制御で RAW(DNG)を撮影・保存することに特化したアプリ。
.dng(約 16 MB)で保存.meta.json に保存.preview.jpg として保存し、アプリ内で撮れ具合を確認旧通常モードの非圧縮 PNG 撮影パス(
captureFullResolutionPng)はフォールバック用にコードを温存。
| 項目 | 技術 |
|---|---|
| フレームワーク | 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 analyze → dart format . → flutter test |
詳細は docs/01_GUIDE/ 配下の各ガイドを参照。