【個人開発ストーリー】サボったらAIが煽ってくる筋トレアプリ「FitLoop」を6日で作ってApp Storeに出した全記録

note / 4/22/2026

💬 OpinionSignals & Early TrendsTools & Practical Usage

Key Points

  • 個人開発者が筋トレアプリ「FitLoop」を6日で制作し、App Storeに公開するまでの制作過程を時系列で共有している
  • 「サボったらAIが煽ってくる」という体験設計を軸に、行動継続を促す仕組みをアプリに組み込んだ点が主眼
  • 開発を短期間で完走させるための工夫(アイデア→実装→公開の進め方)が記録として整理されている
  • AI活用の文脈で、ユーザー行動を変えるプロンプト/対話/通知設計がプロダクト価値に直結することが示唆される
  • 個人開発の再現性を高める意図で「全記録」として公開しており、開発者コミュニティの学習材料になっている
見出し画像

【個人開発ストーリー】サボったらAIが煽ってくる筋トレアプリ「FitLoop」を6日で作ってApp Storeに出した全記録

48
やすだ.dev@毎日投稿

📖 読了目安:約12分 | 📅 2026年4月20日 | 🎯 「筋トレ始めたいけど、メニュー考えるのが面倒で3日でやめた」── その課題を、AIと一緒に6日間で解決した個人開発の全記録


🎯 この記事でわかること

筋トレアプリを探したことがありますか?

世の中には Strong、Hevy、Fitbod、Nike Training など山ほどあります。でも、初心者の私が一番困ったのは──


「そもそも、何をどの順番で、週何回やればいいの?」


既存のアプリは 「自分でメニューを組む前提」 で作られている。でも、メニューを組むには 筋トレの知識が必要 。それを調べるのが面倒で3日でやめる、というのが私のパターンでした。



だから作りました。


  • 🎯 4問答えるだけで AIが1週間のメニューを自動生成

  • 🎯 今日やることが ToDo 形式 で並ぶから、迷わない

  • 🎯 サボると段階的に煽ってくる 通知(Duolingo方式)

  • 🎯 ストリーク+進捗リング で継続を可視化

  • 🎯 純黒 × ネオンライム の Dark Gym Brutalist デザイン


アプリの名前は 「FitLoop」 。2026年4月20日、App Store で正式公開されました。

開発期間は実質6日間。 仕様書作成から App Store 審査通過まで。


この記事で書くこと:

  • 🚀 FitLoop とは何か、何ができるか

  • 💡 なぜ作ったか(既存アプリへの不満)

  • ⚙️ 技術スタック(SwiftUI + Gemini API + RevenueCat)

  • 🎨 Dark Gym Brutalist という世界観への振り切り

  • 📅 6日間の開発タイムライン(時系列)

  • ❌ 審査リジェクト3点 → 修正 → 合格の全記録

  • 💰 月100万円を目指す戦略(サブスク設計)

  • 🎁 プロモコード `FITLAUNCH` で Pro 機能が 1ヶ月無料


先に結論を言うと:

「個人開発は、世界観まで作りきれば、6日でも世界と戦える」

これを証明したのが今回の開発でした。


📖 目次



1. FitLoop とは──4問で AI コーチがつくる週間メニュー



🏋️ 30秒でわかる FitLoop

結論:AIコーチ「FitCoach」があなた専用の週間メニューを作り、毎週結果に合わせて最適化するアプリ。


コアフロー:

  • 📝 4問オンボーディング :経験 / 目標 / 週何日 / 利用環境

  • 🤖 AIが1週間のメニューを自動生成 (曜日ごと、種目・重量・回数・インターバルまで)

  • 今日のメニューを ToDo 表示 、ワンタップで完了記録

  • 📊 セットごとに重量・回数・RPE(主観強度)を記録

  • 🔥 ストリーク(連続日数)+進捗リング でモチベ維持

  • 💬 FitCoach が毎日コメント (「昨日のスクワット、RPE9だったので来週は維持でOK」など)



📱 画面構成

主要5画面:

  • 🏠 Home ── 今日のメニュー ToDo、ストリーク、FitCoach コメント

  • 💪 Exercise Detail ── 各種目のセット記録、RPEスライダー

  • 📋 Track ── 過去の記録、達成率

  • 📈 Week ── 週次の総挙上重量、部位別グラフ

  • ⚙️ Menu ── 設定、プロモコード入力、プラン管理



🤖 FitCoach という人格

単なる機能ではなく、「名前と人格を持ったキャラクター」として前面に出しました。


発言例:

  • 💬 「タロウさん、先週より胸のボリュームが12%上がってます!いい調子です」

  • 💬 「脚トレ最近逃げてません?来週は脚の日を優先しましょう」

  • 💬 「2週間ぶりですね!おかえりなさい。軽めからリスタートしましょう」

  • 💬 「やる気0の日に5分だけやったの、最高の判断です」


狙い:筋トレ版 Duolingo 戦略。

「このアプリじゃないと続かない」という依存性を、キャラクターへの親しみで作りにいく設計です。


2. なぜ作ったか──既存アプリへの3つの不満


🔴 不満①:メニューを自分で組む前提

Strong や Hevy は優秀ですが、「何をするか」は自分で決める必要がある。

初心者の私は、まず「週何日、何をどの順番でやればいいか」を ChatGPT に聞いて、それをコピペしてアプリに入力していました。 その時点で続かない予感がプンプンしてた。


🔴 不満②:記録 UI が複雑 or ダサい

機能豊富だけど、画面がごちゃついてる。 ジムで汗だくの手で操作する前提では作られていない。

もしくは、シンプルだけど デザインが2015年で止まってる ようなアプリも多かった。


🔴 不満③:サボっても誰も何も言わない

Duolingo と比較するとよくわかります。 言語学習アプリは「3日サボると煽ってくる」。だから続く。

筋トレアプリは 「今日もやらなかったですね」と言ってこない 。継続は完全に自己責任。これじゃ意志の弱い人間は挫折する。


💡 だから FitLoop

この3つを全部ひっくり返すことにしました:

  • AI にメニュー丸投げ (自分で考えなくていい)

  • ジムで片手で使える UI (Dark Gym Brutalist で振り切る)

  • サボると殴ってくるコーチ (Duolingo 方式の段階的煽り通知)


3. 技術スタック──外部依存を最小化した構成



⚙️ 採用技術

コンセプト:「個人開発で運用可能、サーバーレス、端末内完結」


  • 🎨 UI :SwiftUI(iOS 17+)

  • 💾 データ :SwiftData(ローカル完結、サーバーレス)

  • 🤖 AI :Google Gemini API(`gemini-3-flash-preview`)

  • 💰 課金 :RevenueCat + StoreKit 2

  • ⚖️ 体重連携 :HealthKit(読み取りのみ)

  • 📱 ウィジェット :WidgetKit(Lock Screen + Home Screen)

  • 🔔 通知 :UserNotifications(ローカル通知のみ)

  • 🏗️ プロジェクト管理 :XcodeGen(`project.yml` → `.xcodeproj` 自動生成)

  • 🖼️ 画像生成 :Gemini 3 Pro Image(アイコン + ストアスクショ)


🎯 設計判断のポイント

① 外部 SPM は RevenueCat のみ

課金ライブラリ以外は iOS 標準で完結。依存が増えるほど、将来のメンテコストが上がるため。


② アカウント不要、データは端末内

「インストールしたらすぐ使える」を最優先。ログイン画面すらない。プライバシーも最強(個人情報を持たない)。


③ AI は Gemini Flash を選択

  • 🟢 GPT-4o より 圧倒的に安い

  • 🟢 レスポンスが 速い (ユーザーの待ち時間が短い)

  • 🟢 週に1〜2回だけ叩くので、 コストは月数円


4. Dark Gym Brutalist──世界観で勝ちにいく



🎨 MVP 完成後、全 UI をゼロから作り直した

Day 1 に MVP を作り終えて Simulator で動かした時、正直こう思いました:


「これじゃバズらない」


機能は揃ってた。AI生成も動いた。でも、 iOS デフォルトの UI で作ったので、どこにでもある「普通のアプリ」に見えた。

ここで決断。 「世界観を決めて、全画面をゼロから刷新する」


🌑 コンセプト:「ジムで汗だくの手で握って使うアプリ」


デザインルール:

  • 純黒 #0A0A0A ── 背景は真っ黒

  • 🟢 ネオンライム #C8FF00 ── アクセントは1色のみ

  • 角丸ゼロ ── すべて矩形

  • 🔢 SF Mono でデータ表示 ── 重量・回数は等幅フォントで整然と

  • 🚫 標準 TabView 廃止 ── 独自フローティングタブバー実装



✨ 結果

Twitter / X で見せた時の最初の反応:

「めっちゃ最高」

自画自賛じゃなくて、第三者から出た言葉です。これで確信しました。 世界観を作り込むのは、個人開発の勝ち筋 だと。


5. 6日間のタイムライン──仕様書から公開まで



📅 Day 1(4/14):MVP 完成 → 全 UI 刷新 → 審査提出

午前中:

  • 📝 67KB の仕様書を Claude Code に読み込ませる

  • 🏗️ XcodeGen でプロジェクト生成

  • 💾 Models 5ファイル、Services 3ファイル、全 View スタブを一気に作成

  • 🤖 Gemini API 連携 → Simulator で AI メニュー生成成功を確認

  • 🎯 Home / ExerciseDetail / Weekly / Settings の全画面実装完了

  • MVP 完成


午後:

  • 🎨 UI を Dark Gym Brutalist に全面刷新

  • 💰 RevenueCat 統合、Paywall 作成

  • 🔥 ストリーク、進捗グラフ実装

  • 🖼️ AppIcon を Gemini で生成

  • 📸 App Store スクショ12枚(iPhone + iPad、Gemini で合成)

  • ⚙️ App Store Connect でメタデータ・価格設定

  • 🚀 審査提出


📅 Day 2(4/15):審査リジェクト → 対応

  • ❌ 審査リジェクト(3点指摘、詳細は次章)

  • 🏦 Paid Apps Agreement 締結

  • 💳 銀行口座登録 + W-8BEN 提出

  • 🔧 指摘された問題をすべて修正

  • 📤 修正ビルドを再提出


📅 Day 3-5(4/16-18):審査待ち期間の機能追加

審査を待つ間に、追加機能を実装。

  • 📱 シェアカード(SNS拡散用)

  • 📅 ウィジェット(Lock Screen + Home Screen)

  • ⚖️ HealthKit 体重連携

  • 🔔 Duolingo 風サボり通知(5段階エスカレーション)

  • 🎉 セグメント通知(ストリーク節目 + 週次PR)

  • 🎁 プロモコード統合


📅 Day 6(4/20):審査通過 → 公開

  • 審査通過

  • 🌍 App Store で公開



💡 種明かし

「6日間」と書きましたが、実質的なコーディング作業は2〜3日。

残りは 審査待ち + Apple 側の各種設定 (税務書類、銀行口座登録など)で消費された時間です。


「個人開発の時間の過半は、Apple との書類戦争」

これは個人開発者あるあるだと思います。


6. 審査リジェクト→合格の全記録



❌ リジェクト理由3点

初回審査、見事にリジェクトされました。 でもこれは個人開発者には あるある です。


指摘内容:

  • 🔴 ① IAP(アプリ内課金)が提出されていなかった

    • サブスクプロダクトは App Store Connect に登録したが、ビルドに紐付いていなかった

  • 🔴 ② 購入フローが動かなかった

    • 原因: Paid Apps Agreement(有料アプリ契約)が未締結 。これが締結されていないと IAP そのものが機能しない

  • 🔴 ③ Paywall に利用規約 / プライバシーポリシーのリンクがなかった

    • Apple ガイドライン 3.1.2:サブスクリプション画面には 必須 のリンク


🔧 対応

すべてを1日(Day 2、4/15)で解決:

  • 🏦 Paid Apps Agreement 締結

  • 💳 銀行口座登録 + W-8BEN(米国税務書類)提出

  • 🔗 IAP メタデータをビルドに正しく紐付け

  • 📄 Paywall に利用規約 + プライバシーポリシーのリンクを追加

  • 📤 修正ビルド再提出


📝 審査官への返信は英語で

理由:英語の方が対応が早い傾向にある (体感)。


返信テンプレ:

Thank you for the detailed feedback.

We have addressed all three issues:
1. IAP products are now properly attached to the build.
2. Paid Apps Agreement has been signed and activated.
3. Terms of Use and Privacy Policy links are now visible in the Paywall.

Please find the updated build in TestFlight.

💡 個人開発者へのアドバイス

  • 初回リジェクトは普通 。凹まない

  • 指摘は「全部」潰す 。一部だけ直して再提出すると再リジェクトする

  • 英語で返信する と対応が早い

  • Paid Apps Agreement は最初に締結しておく (後で詰まる)


7. 月100万を目指す戦略



💰 サブスク設計

料金体系:

  • 📱 月額 :¥980

  • 📅 年額 :¥5,800(月換算 ¥483、約50%オフ)

  • 🎁 初回7日間無料トライアル


📊 月100万円に必要な数字

単純計算:

  • 有料ユーザー 約1,100人 (月額の場合)

  • または 年額ユーザー200人 × 月次換算 で到達


これは「不可能な数字ではない」と考えています。

日本の筋トレ人口は約1,000万人、スマホアクティブユーザーは約1億人。 0.0011% のシェアで月100万


🎯 3層戦略

Tier 1:課金基盤(今ここ)

  • ✅ RevenueCat で安定した課金

  • ✅ Paywall の導線最適化

  • ✅ トライアル → 有料の転換率計測


Tier 2:バイラル(今後実装)

  • 📱 シェアカード (実装済、拡散施策これから)

  • 🎁 紹介コードプログラム (実装予定)

  • 📲 App Clip(ジムQR) (実装予定)


Tier 3:継続率(今後実装)

  • Apple Watch 対応 (ジムで片手操作)

  • 🏋️ FitCoach 口調カスタマイズ (励まし型 / スパルタ型 / 友達型)

  • 📊 詳細な分析ダッシュボード


📅 マイルストーン公開

Note で月次報告します。

  • 🗓️ 1ヶ月後 :ダウンロード数、有料転換率、MRR を公開

  • 🗓️ 3ヶ月後 :Tier 2 施策の結果報告

  • 🗓️ 6ヶ月後 :月100万到達判定


失敗しても公開する。それが個人開発のコンテンツ戦略だと思っています。


8. まとめ+プロモコード配布


📝 この記事の核心

6日間で学んだこと:

  • 仕様書を先に書く と、実装が爆速になる(Claude Code と相性最高)

  • 世界観まで振り切る と、同じ機能でも全く別の価値に化ける

  • リジェクトは怖くない 。指摘を全部潰して返信するだけ

  • 個人開発の時間の半分は Apple との書類戦争

  • AI ペアプログラミングは本当に強い (これは別記事で書きます)


🎁 プロモコード配布

最後まで読んでくれたあなたへ、お礼です。


プロモコード: `FITLAUNCH`

  • 🎁 FitLoop Pro が 1ヶ月無料

  • 📱 使い方:アプリ内 MENU タブPROMO CODE「REDEEM PROMO CODE」 → コード入力


🔗 リンク


💬 お願い

使ってみた感想を、Xで教えてもらえると泣いて喜びます。

  • 🐦 X@yasuda_dev

  • 📝 Note :この記事のコメント欄


この記事が役に立ったら「スキ」をお願いします!

筋トレアプリの個人開発、その後の成果報告、乞うご期待。

ダウンロード
copy

いいなと思ったら応援しよう!

チップで応援する
48