サブスクリプション契約・支出をまとめて把握・見直しするためのモバイルアプリ(Expo + React Native + TypeScript)。
| 項目 | バージョン・備考 |
|---|---|
| Node.js | 22(CI と揃える) |
| パッケージマネージャ | npm(package-lock.json 使用) |
| Docker | ローカル Supabase 利用時に必要(Supabase CLI 前提) |
-
依存関係のインストール
npm install
-
環境変数(Supabase 接続)
cp .env.example .env
.envにEXPO_PUBLIC_SUPABASE_URLとEXPO_PUBLIC_SUPABASE_ANON_KEYを設定する。ローカル Supabase を使う場合は「ローカル Supabase」の出力値をそのまま利用できる。 -
アプリ起動
npx expo start
プッシュ前に lint / typecheck をかける場合など、.githooks/pre-push を有効にする。
./scripts/setup-hooks詳細は docs/Rule.md を参照。
-
Supabase CLI をインストールし、Docker を起動した状態でリポジトリ直下から:
supabase start
-
API URL と
anonkey は次で確認できる。supabase status
表示された API URL →
EXPO_PUBLIC_SUPABASE_URL、anon key →EXPO_PUBLIC_SUPABASE_ANON_KEYに設定する。 -
終了するときは
supabase stop。
詳細手順: docs/MIGRATIONS.md
Supabase の Table Editor 等でテーブルを作らない。 スキーマは supabase/migrations/ の SQL のみで管理する(原則・例外は docs/Rule.md「データベーススキーマ」)。
スキーマの一次情報は docs/DATABASE_DESIGN.md。SQL の正は supabase/migrations/ に置く。
# 新規マイグレーションファイルを追加(ファイル名は英語のスネークケース推奨)
supabase migration new add_example_table
# 編集後、ローカル DB に適用して検証
supabase db reset運用の補足は docs/TRD.md を参照。
為替のプロキシ・Webhook・サーバー起点の通知などで使う可能性がある。ソースは supabase/functions/ に置き、仕様は docs/API_DESIGN.md に書く。
supabase functions new my_function
supabase functions serve
# デプロイ: supabase functions deploy my_function詳細は Supabase Edge Functions を参照。
チーム全体で表記ゆれを抑えるため、フォーマッタとリンタを統一しています。
| ツール | 役割 | 設定ファイル |
|---|---|---|
| Prettier | コード整形(インデント・クォート・行幅など) | .prettierrc / .prettierignore |
| ESLint | 静的解析(未使用変数 / import / React Hooks 等) | eslint.config.js |
| EditorConfig | エディタ横断のインデント・改行・文字コード統一 | .editorconfig |
eslint-config-prettier |
ESLint と Prettier のルール衝突を回避 | eslint.config.js 内 |
eslint-plugin-import |
import 文の順序・重複検知 |
eslint.config.js 内 |
ワークスペースを開くと推奨拡張として案内されます(.vscode/extensions.json)。
- Prettier - Code formatter(
esbenp.prettier-vscode) - ESLint(
dbaeumer.vscode-eslint) - EditorConfig for VS Code(
EditorConfig.EditorConfig) - Expo Tools(
expo.vscode-expo-tools)
.vscode/settings.json で 保存時の Prettier 整形・ESLint 自動修正・改行 LF 統一 を有効化しています。エディタ標準の整形ではなく Prettier が走るようにしてください。
# Prettier で整形(書き換える)
npm run format
# Prettier の整形差分を検知のみ(CI / pre-push 向け)
npm run format:check
# ESLint
npm run lint # 解析のみ
npm run lint:fix # 自動修正
# 型チェック
npm run typecheck特定ファイルだけ整形したい場合は npx prettier --write <path> を直接使ってもよいです。
CI と同じコマンド。
npm run lint
npm run typecheck| 内容 | パス |
|---|---|
| チーム開発(ブランチ・コミット・PR) | docs/Rule.md |
| プロダクト要件 | docs/PRD.md |
| 技術・ローカル方針の詳細 | docs/TRD.md |
| 機能 F-01〜F-14 | docs/FEATURE_REQUIREMENTS.md |
| DB / API 設計 | docs/DATABASE_DESIGN.md / docs/API_DESIGN.md |
| DB マイグレーション手順 | docs/MIGRATIONS.md |
| アプリのディレクトリ・採用方針 | docs/ARCHITECTURE_GUIDE.md |
| Expo / TypeScript スタイル | docs/EXPO_TYPESCRIPT_CONVENTIONS.md |