DEV Community

RunnerY
RunnerY

Posted on

<Day4>Run or Pay? App building. Done Apple Developer Program & inside TestFlight

What I’m Building

  • Users set an amount of money they agree to pay if they fail to run at least 60 minutes within a week, and authorize the payment in advance.
  • Running time is measured via HealthKit using an iPhone or Apple Watch.
  • Because money is on the line, users are effectively forced to run, helping build consistent exercise habits.
  • If the user fails to reach the target, the pre-authorized payment is captured by the service. If the target is achieved, the payment is automatically canceled.

If you try the beta version, I'll send you TestFlight invitation code! Please comment!

The app icon is ready:

What I’ve Done So Far

  • Finally completed account registration
  • Implemented Sign in with Apple
  • Since the app was designed around Apple ID login from the start, I can now test all features properly on a real device
  • Added logic to measure running time via HealthKit

Concern #1: Payments in Production

  • Payments are the most anxiety-inducing part when thinking about real-world usage.
  • So far, I’ve been doing a lot of vibe coding, but payment-related logic needs proper test coverage.
  • Main concerns:
    • Whether the cron job that checks user status and determines challenge completion works reliably
    • Whether payment cancellations are handled correctly
  • I’m also unsure whether Japanese users will feel comfortable making payments via Stripe, which isn’t very familiar in Japan.

Concern #2: Measurement via External Apps

The app relies on workouts recorded by external apps, so all of the following need to work correctly:

  • Apple Watch workouts
  • iPhone Fitness app workouts (latest iOS)
  • Nike Training / Nike Run Club workouts
  • Strava workouts

All of these need to be tested — ideally by real users.

For the MVP, I decided to skip in-app workout tracking, since the implementation and running costs don’t justify it at this stage.


Status

  • Apple Developer Program: ✅ Approved
  • TestFlight: ✅ Internal testing successfully distributed
  • App State: Ready for TestFlight distribution

Progress Since 2025-01-25

✅ Sign in with Apple

  • Enabled Sign in with Apple in Xcode Capabilities
  • Integrated with Supabase Auth
  • Successfully tested on a real device

✅ Shortened Challenge Duration

  • Reduced from 28 days → 7 days
  • Easier to test and lowers user drop-off risk

✅ HealthKit Background Delivery

  • Implemented automatic DB sync when a workout ends
  • Progress updates even when the app is killed
  • Uses enableBackgroundDelivery in HealthKitBackgroundService.swift
  • Users don’t need to open the app for progress to be reflected

✅ TestFlight Distribution

  • Xcode Cloud setup completed
  • Build successfully uploaded to App Store Connect
  • Created internal test group “friend”
  • Build 1.0 (7) is available for testing

✅ App Store Connect Setup

  • Added NSCameraUsageDescription (required by Stripe SDK)
  • Export compliance completed (no encryption)
  • Test information fully filled in

Next Steps

  • [ ] Test the TestFlight build on my own iPhone
  • [ ] Apply for external testing (Apple review)
  • [ ] Distribute via public TestFlight link to friends

Top comments (0)