Dog Coordinate AI 技術詳細
実リポジトリに基づく、Flutter実装の技術構成
このページでは `flutter-dog-coordinate-ai` リポジトリの実装内容をもとに、 認証、API連携、キャッシュ、環境切り替え、運用面までを技術観点で整理しています。
AI Core

AIコーディネート提案の中核設計

このアプリの価値は、条件入力に対して「説明可能な提案」を返す点にあります。

提案エンジンの技術要点
`CoordinateRecommendation` モデルでは、提案そのものだけでなく、天候情報、判定結果(防水/防寒)、 おすすめ理由、商品検索キーワードまでを構造化して扱います。これにより、 「なぜこの提案なのか」をユーザーに説明しながら、次のアクション(商品探索)まで自然に接続できます。
Authentication

Google / 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 Ops

App Store 審査・提出ドキュメントまで整備

実装だけでなく、審査提出フロー、プライバシー入力、カテゴリ設定、審査アカウント準備までドキュメント化しています。

継続運用を見据えた開発体制
リポジトリ内に App Store 提出手順を整理し、レビュー対応の再現性を確保。 プロダクト機能開発とリリース運用を分断しない形で、改善サイクルを回せる体制を整えています。
Why It Is Strong

技術的に優れているポイント

単機能アプリではなく、AI提案を中心に認証・データ取得・説明可能性・運用までつないだ構成を実現しています。

アピールポイント
認証、位置情報、天気、提案、検索の複数ドメインを連携しながら、提案根拠とユーザー行動を同一導線で扱える点が強みです。 提案モデルの改善や外部APIの差し替えにも追従しやすい構造を採用しており、 AI機能を継続的に成長させる前提で設計されています。
無料相談