What I Did Today
What I did
- Came up with the idea
- Threw the idea to GPT and some friends
- Roughly designed the architecture and had it built up to this point
- Generated an app icon to get myself hyped
There’s no strong guarantee this will work, but I want to try getting an iOS app through App Review—and honestly, I want to run more myself—so I’m building this.
The Idea
- Users sign up
- They are asked how much money they’re willing to put at stake for the month
- Running distance is tracked via HealthKit
- Because money is on the line, users are forced to run
- This (hopefully) contributes to improving exercise habits in Japan
- If the user fails to reach their self-set goal, their money is charged
Context
This is my second time doing solo development, and I’m basically a vibe coder.
I occasionally write code, but my day job is closer to a data analyst (mostly sales, though).
Spec
If you don’t run this month,
how much money are you okay with losing?
※ No charge will occur if you achieve your goal.
[ ¥500 ] [ ¥1,000 ] [ ¥3,000 ]
↑ Recommended
[ Custom input ]
Rules
- Minimum: ¥500
- Default: ¥1,000
- Maximum: ¥10,000
2026/01/23 — Work Log
✅ Completed Tasks
1. Created iOS project skeleton
Built a directory structure based on DDD architecture:
ios/RunForPay/
├── App/
│ ├── RunForPayApp.swift # App entry point
│ ├── AppContainer.swift # DI container
│ └── ContentView.swift # Root view
├── UI/
│ ├── LoginView.swift # Sign in with Apple
│ ├── ChallengeView.swift # Progress display
│ ├── DepositSelectView.swift # Deposit selection
│ └── ChallengeViewModel.swift
├── Domain/
│ ├── Challenge.swift # Entity
│ ├── Minutes.swift # Value Object
│ ├── DepositAmount.swift # Value Object
│ └── Ports.swift # Protocols
├── UseCases/
│ ├── GetMonthlyRunningMinutes.swift
│ └── AuthorizeDeposit.swift
├── Infra/
│ ├── Measurement/
│ │ └── HealthKitMinuteSource.swift
│ ├── Payments/
│ │ └── StripeAuthorizer.swift
│ └── Persistence/
│ └── InMemoryChallengeStore.swift
└── Shared/
└── DateUtils.swift
- Xcode project setup Created RunForPay.xcodeproj
Configured HealthKit permission messages in Info.plist
Set HealthKit / Sign in with Apple entitlements in RunForPay.entitlements
- Skeleton implementation (16 files) Domain
Challenge, Minutes, DepositAmount, Ports
UseCases
GetMonthlyRunningMinutes, AuthorizeDeposit
UI
LoginView, ChallengeView, DepositSelectView, ChallengeViewModel
Infra
HealthKitMinuteSource, StripeAuthorizer, InMemoryChallengeStore
Shared
DateUtils
🚧 Blockers
Cannot install Xcode: macOS 15.6 or later is required
Need to update macOS
▶️ Next Steps
Update macOS
Install Xcode
Open project in Xcode and set Team ID
Add Stripe SDK / Supabase SDK via Swift Package Manager
Confirm build
Top comments (0)