つくるもの
画像をアップロードしたら、その画像をChatGPTに投げて、OCR処理をして値を返すもの
パワプロのペナントの成績画面のキャプチャを添付して、その選手の成績をペナントで出せないものまで仮想で計算して返すもの
プロジェクト概要
プロジェクト概要
目的
パワプロのペナント成績画像を解析し、ゲーム内では表示されないセイバーメトリクスを計算・表示する。
技術スタック
- Android (Kotlin)
- OpenAI Vision API
- Clean Architecture + MVVM
- Hilt
開発フェーズ(進捗)
-
要件定義・設計(100%)
- 機能要件: 画像アップロード、OCR、セイバーメトリクス計算
- 技術要件: Android Studio + Kotlin + OpenAI API
- UI/UX: Material Design準拠、レスポンシブ対応
- アーキテクチャ: Clean Architecture + MVVM
-
プロジェクト構築(100%)
- Android Studioでプロジェクト作成
- 依存関係設定(Retrofit、Hilt、CameraXなど)
- パッケージ構成(
ui
、data
、domain
、di
、utils
)
-
基本構造実装(100%)
-
Application
:PowerProApplication
(Hilt) - データモデル:
BattingStats
、PitchingStats
、FieldingStats
- ドメインモデル:
AnalysisResult
、Sabermetrics
- リポジトリインターフェース:
ImageRepository
、SabermetricsRepository
- ユースケース:
AnalyzeImageUseCase
、CalculateSabermetricsUseCase
-
-
依存性注入(100%)
-
NetworkModule
: Retrofit、OkHttp、OpenAI API設定 -
RepositoryModule
: リポジトリ実装提供 -
UseCaseModule
: ユースケース提供 -
ViewModelModule
: ViewModel提供
-
-
セイバーメトリクス計算(100%)
-
SabermetricsCalculator
: wOBA、WIP、FIP、WHIP、WAR など - 計算ロジック: 野球統計学に基づく実装
- フォーマット: 適切な小数点表示
-
-
API統合(100%)
-
OpenAIApi
: Vision API インターフェース -
ImageRepositoryImpl
: 画像解析リポジトリ - エラーハンドリング: リトライ、例外処理
- セキュリティ: APIキー管理、ネットワーク設定
-
-
UI実装(100%)
- メイン画面: 画像アップロード(カメラ / ギャラリー)
- 解析画面: プログレスバーとステータス表示
- 結果画面: セイバーメトリクスと基本成績の表示
- エラー画面: エラーメッセージとアクション
- リソース: アイコン、文字列、権限設定
技術的ハイライト
- アーキテクチャ: Clean Architecture + MVVM
- 画像解析: OpenAI Vision API を用いて OCR 実装
- セイバーメトリクス: wOBA、WAR、FIP、WHIP などをアプリ内で計算・表示
-
状態管理:
StateFlow
+sealed class
による堅牢なUI状態管理 - 依存性注入: Hilt によるモジュール化とテスト容易性向上
-
セキュリティ: APIキーは
BuildConfig
等で管理、HTTPS 強制、最小権限の権限設計
開発成果
完成度(チェック済み)
- ✅ 設計・ドキュメント: 100%
- ✅ プロジェクト構築: 100%
- ✅ 基本構造: 100%
- ✅ 依存性注入: 100%
- ✅ セイバーメトリクス計算: 100%
- ✅ API統合: 100%
- ✅ UI実装: 100%
品質
- ビルド: 成功(軽微な SDK 警告のみ)
- アーキテクチャ: Clean Architecture 準拠
- コード品質: Kotlin スタイルガイド準拠
- テスト: 単体・統合・UI テスト設計済み(実装は今後)
学びとポイント
技術面
- Clean Architecture を実プロジェクトで運用した知見
- MVVM +
StateFlow
による状態管理の安定化 - Hilt による DI 設計とモジュール分割のパターン
- OpenAI API(Vision)との統合での課題と対策(OCR 精度、レスポンス設計)
開発プロセス
- ドキュメント先行の設計で実装がスムーズに進行
- 段階的実装(フェーズごとに完了させる進め方)で品質を担保
- TDD(テスト設計先行)を意識した実装プロセス
今後の展開
- テスト実装と CI/CD の導入
- パフォーマンス最適化(OCR 時の非同期処理、メモリ管理)
- ユーザビリティ改善(結果の解釈ガイド、フィルタリング)
- 機能拡張(解析結果のデータ保存、クラウド連携、履歴表示)
まとめ
要件定義から UI 実装まで完了。Clean Architecture と MVVM により保守性を確保し、OpenAI Vision API を用いた画像解析/OCR を実装済み。セイバーメトリクス計算ロジック(wOBA や WAR 等)も組み込み済みで、次はテスト・CI・パフォーマンス改善に注力するフェーズです。
と、まぁプロジェクト概要からまとめまでもCursorに書いてもらいました。
素晴らしいまとめですね。作っている僕でも分からない言葉が出てきています。