DoggyGoの技術スタック概要

DoggyGoの技術スタック概要

現在DoggyGoのiOSベータ版(TestFlight版)開発がいったん一区切りして、App Store Connectで審査中です! 自分メモとしてDoggyGoの技術スタック概要を書きます。

全体構成(ざっくり)

DoggyGoは、いわゆる フルBaaS構成 を採用しています。
自前サーバーは持たず、個人開発でも運用できる範囲に絞っています。
またMacもってないのでWindows機だけで開発しています。

  • フロントエンド:Expo(React Native)
    • 地図・位置情報:expo-location
  • バックエンド / BaaS:Firebase
  • 開発環境:Windows11 WSL2、VScode、Codex
  • ビルド環境:EAS(Expo Application Services)でのクラウドビルド

UX検証に集中するため、運用コストと実装速度を最優先にしています。

フロントエンド:Expo(React Native)

フロントエンドには Expo(React Native) を採用しています。

選定理由は以下です。

  • iOS / Android を同一コードベースで管理できる(TestFlightはiOSのみ実施)
  • セットアップが速く、検証までのリードタイムが短い
  • 個人開発でも保守しやすい (はず)
  • TestFlight配布までの導線が比較的シンプル

PoCフェーズにおいては、
「あとから作り直せる」よりも
「すぐ試せる」ことを優先しました。

一方で、

  • 位置情報やバックグラウンド処理
  • ビルド環境差分

など、Expo特有の詰まりどころも多く、
「Expo=楽」という単純な話ではないことも実感しています。

バックエンド:Firebase(Auth / Firestore / Storage)

バックエンドには Firebase をフル活用しています。

主に利用しているのは以下です。

  • Authentication
    • メール/パスワードでユーザー管理
    • 認証メールやパスワード再設定メール
  • Firestore
    • スポット情報
    • チェックイン情報
    • 犬プロフィール
    • バッジ情報
    • など
  • Storage
    • いまはプロフィール画像のみ

DoggyGoでは、
フォロー・フレンド・DM といった
関係性を強く固定する機能はあえて持たせていません。

そのため、Firebaseの
「必要十分な認証」と「柔軟なデータ構造」は
思想的にも相性が良いと感じています。

TestFlight:完成版ではなく、検証の場

DoggyGoにとって TestFlight は
完成版を配るための場所ではありません。

  • どの機能が使われるのか
  • どんなニーズがあるのか
  • そもそも「また使いたい」と思えるのか

を確かめるための実験環境です。

そのため、

  • UIはまだ荒い
  • 機能は最小限
  • バグが出る前提

で公開しています。(言い訳?

技術スタックも、
将来のスケールより 「いま得たい学び」 を優先しています。

おわりに

DoggyGoは、最初から
大きなプラットフォームを作ろうとしていません。

まずは、

  • 本当に価値があるのか
  • 犬と飼い主の行動は変わるのか

を確かめることが最優先だと思っています。

次回予告

次回は、
Expo / Firebase / TestFlight申請時 で実際に詰まったポイント
を記載したいですが、いつになるやら、、。