👟
<DAY2>走らないとお金が請求されるアプリ、Apple Developer Programへの申請やsupabaseとstripeへの接続
あまり勝算があるわけではないが、iosの審査を通してみたいのと、俺も走りたいのでこれを作る。
イメージこんなことを考えている。
- ユーザーに今月いくらを預けるかを聞き、実際にお金を振り込む予約をする。
- iPhoneかApple watchで、healthkitを通じてユーザーの走行距離計測
- 強制的に走らざるを得ないので、日本人の運動習慣の貢献に寄与する。
- ユーザーが元々設定した距離に満たない場合、ユーザーがあらかじめ設定したお金が運営に出金される。
ちなみに、僕は個人開発2回目だが基本vibe coderです!普段はコードをたまーにかくデータアナリストみたいなことしてます(ほぼ営業)
今日のまとめ
- Apple Developer Program、反映まで最大2日かかるらしく遅い。
- 認証が通らないためあまり検証周りが進められない。
- とはいえいい感じに進めた、友人にこの土日にテストをしてもらいたいが流石に間に合わんかな
2026-01-23 開発日報
実施内容
1. Apple Developer Program 登録
- $99 支払い完了
- Xcode への反映待ち(最大48時間)
- Sign in with Apple は反映後に実装予定
2. 月末バッチ処理(Edge Functions)
-
process-expired-challengesを作成・デプロイ- 28日経過したチャレンジを判定
- 目標達成 → オーソリをキャンセル(返金)
- 目標未達 → キャプチャ実行(課金)
-
update-progressを作成・デプロイ- 進捗(ランニング分数)を更新
3. GitHub Actions 設定
-
.github/workflows/process-challenges.ymlを作成 - 毎日0時(UTC)に
process-expired-challengesを実行 - Secrets 設定は GitHub push 後に行う
4. HealthKit 連携
-
Info.plistにNSHealthShareUsageDescriptionを追加 -
ActivityMinuteSourceプロトコルにrequestAuthorization()を追加 -
ChallengeViewで起動時に HealthKit 認可をリクエスト -
実機テスト成功 🎉
- HealthKit 認可ダイアログが表示された
- ワークアウトデータの読み取り許可を取得
5. UI 改善
- 残り日数の表示を追加
- 2日以上: 「残り X 日」
- 1日〜2日: 「残り 1日とX時間」
- 1日未満: 「残り hh:mm」
- コミット金額表示の修正
- 決済完了後にシートを閉じるタイミングを修正
6. コード修正
-
ChallengeモデルにstripePaymentIntentIdを追加 -
Challengeモデルに残り時間計算プロパティを追加 -
SupabaseChallengeStoreで開発用ユーザーIDを使用するよう変更
ブロッカー
Developer Program 反映待ち
- Sign in with Apple が使えない
- RLS で認証が必要なため、DB保存のテストができない
一時的な回避策(未実施)
- Supabase RLS を緩和すれば認証なしでもテスト可能
次回やること
-
Developer Program 反映確認
- Xcode → Settings → Accounts で確認
- Team が追加されていれば OK
-
Sign in with Apple 実装
- Supabase Auth との連携
- Apple ID → Supabase ユーザー作成
-
DB保存のテスト
- チャレンジ作成 → Supabase に保存確認
-
リリース準備
- GitHub push & Secrets 設定
- アプリアイコン作成
- プライバシーポリシー作成
コミット履歴
feat: add countdown UI and commitment money- その他、Edge Functions デプロイ等
動作確認済み
| 機能 | シミュレータ | 実機 |
|---|---|---|
| Stripe 決済 | ✅ | ✅ |
| HealthKit 認可 | - | ✅ |
| UI 表示 | ✅ | ✅ |
| DB 保存 | ❌ RLS | ❌ RLS |
Discussion