👟

<DAY1> 走らないとお金が取られるアプリを作成するぜ

に公開

やったこと

  • アイデア考えた
  • アイデアをgptと友人に投げた
  • 軽くアーキテクチャ考えてここまで作らせた。
  • テンション上げるためにアイコン生成した

あまり勝算があるわけではないが、iosの審査を通してみたいのと、俺も走りたいのでこれを作る。
イメージこんなことを考えている。

  1. ユーザーが登録する
  2. 今月いくらを預けるかを聞かれる。
  3. healthkitで走行距離計測
  4. 強制的に走らざるを得ないので、日本人の運動習慣の貢献に寄与する。
  5. ユーザーが設定した距離に満たない場合、ユーザーのお金が出金される。

ちなみにだが僕は個人開発2回目だが基本vibe coderです!普段はコードをたまーにかくデータアナリストみたいなことしてます(ほぼ営業)

仕様

今月、走れなかったら
いくら失ってもいいですか?

※ 目標を達成した場合、請求は発生しません

[ ¥500 ] [ ¥1,000 ] [ ¥3,000 ]
↑おすすめ
[ カスタム入力 ]

ルール

  • 最低:¥500
  • デフォルト選択:¥1,000
  • 上限:¥10,000

2026/01/23 作業ログ

完了タスク

1. iOS プロジェクト骨格作成

DDD アーキテクチャに基づくディレクトリ構造を作成:

ios/RunForPay/
├── App/
│   ├── RunForPayApp.swift      # アプリエントリポイント
│   ├── AppContainer.swift      # DI コンテナ
│   └── ContentView.swift       # ルートビュー
├── UI/
│   ├── LoginView.swift         # Sign in with Apple
│   ├── ChallengeView.swift     # 進捗表示
│   ├── DepositSelectView.swift # 金額選択
│   └── ChallengeViewModel.swift
├── Domain/
│   ├── Challenge.swift         # エンティティ
│   ├── Minutes.swift           # Value Object
│   ├── DepositAmount.swift     # Value Object
│   └── Ports.swift             # Protocol群
├── UseCases/
│   ├── GetMonthlyRunningMinutes.swift
│   └── AuthorizeDeposit.swift
├── Infra/
│   ├── Measurement/
│   │   └── HealthKitMinuteSource.swift
│   ├── Payments/
│   │   └── StripeAuthorizer.swift
│   └── Persistence/
│       └── InMemoryChallengeStore.swift
└── Shared/
    └── DateUtils.swift

2. Xcode プロジェクト設定

  • RunForPay.xcodeproj を作成
  • Info.plist - HealthKit 許可メッセージ設定
  • RunForPay.entitlements - HealthKit / Sign in with Apple 権限

3. 全16ファイルのスケルトン実装

  • Domain 層: Challenge, Minutes, DepositAmount, Ports
  • UseCase 層: GetMonthlyRunningMinutes, AuthorizeDeposit
  • UI 層: LoginView, ChallengeView, DepositSelectView, ChallengeViewModel
  • Infra 層: HealthKitMinuteSource, StripeAuthorizer, InMemoryChallengeStore
  • Shared: DateUtils

ブロッカー

  • Xcode インストール不可: macOS 15.6 以降が必要
  • macOS アップデートが必要

次回やること

  1. macOS アップデート
  2. Xcode インストール
  3. Xcode でプロジェクトを開いて Team ID 設定
  4. Stripe SDK / Supabase SDK を SPM で追加
  5. ビルド確認

Discussion