Dog Coordinate AI 技術詳細
実リポジトリに基づく、Flutter実装の技術構成
このページでは `flutter-dog-coordinate-ai` リポジトリの実装内容をもとに、 認証、API連携、キャッシュ、環境切り替え、運用面までを技術観点で整理しています。
AI CoreAIコーディネート提案の中核設計
このアプリの価値は、条件入力に対して「説明可能な提案」を返す点にあります。
提案エンジンの技術要点
`CoordinateRecommendation` モデルでは、提案そのものだけでなく、天候情報、判定結果(防水/防寒)、 おすすめ理由、商品検索キーワードまでを構造化して扱います。これにより、 「なぜこの提案なのか」をユーザーに説明しながら、次のアクション(商品探索)まで自然に接続できます。
AuthenticationGoogle / Apple 認証と API トークン管理
`AuthService` で Google Sign-In / Sign in with Apple を実装し、API認証へ橋渡ししています。
実装の要点
認証後は API の /auth/google および /auth/apple にトークンや認可コードを送信し、 返却されたアクセストークンを `SharedPreferences` に保存。以降の API 呼び出しで `Authorization: Bearer` を統一的に付与します。
Domain APIペット・天気・提案・商品検索の API レイヤー分離
画面実装から直接 HTTP を呼ぶのではなく、用途別サービスに責務を分離し、AI提案ロジックの改善を継続しやすくしています。
主要エンドポイント
/pets 系: ペットプロフィール CRUD/weather/current: 位置情報/都市名ベースの天気取得/coordinates/recommend: コーディネート提案生成/coordinates/recommendations: 提案履歴/詳細取得/coordinates/search-items: 提案キーワード連動の商品検索
Performance天気キャッシュとレスポンス制御
体感速度と API 負荷のバランスを取るため、提案精度に必要なデータ鮮度を保ちながら TTL キャッシュを実装しています。
キャッシュ戦略
緯度経度を小数点2桁で丸めたキーを生成し、天気情報を3時間保持。 強制更新フラグ (`forceRefresh`) も備え、通常利用時の高速化とリロード時の最新性を両立しています。
Environment開発・検証・本番の環境切り替え設計
`env/*.json5` と `--dart-define` を使い、API向き先と Apple 設定を環境別に切り替えます。
運用上の工夫
Android エミュレータでは `localhost` を `10.0.2.2` に自動変換する `ApiClient` 実装を採用。 また、Apple 認証に必要な `APPLE_SERVICES_ID` / `APPLE_REDIRECT_URI` は環境ファイルから注入できる構成です。
Release OpsApp Store 審査・提出ドキュメントまで整備
実装だけでなく、審査提出フロー、プライバシー入力、カテゴリ設定、審査アカウント準備までドキュメント化しています。
継続運用を見据えた開発体制
リポジトリ内に App Store 提出手順を整理し、レビュー対応の再現性を確保。 プロダクト機能開発とリリース運用を分断しない形で、改善サイクルを回せる体制を整えています。
Why It Is Strong技術的に優れているポイント
単機能アプリではなく、AI提案を中心に認証・データ取得・説明可能性・運用までつないだ構成を実現しています。
アピールポイント
認証、位置情報、天気、提案、検索の複数ドメインを連携しながら、提案根拠とユーザー行動を同一導線で扱える点が強みです。 提案モデルの改善や外部APIの差し替えにも追従しやすい構造を採用しており、 AI機能を継続的に成長させる前提で設計されています。