目的・役割
初回起動時に目標・経験・頻度を入力して、テンプレートやリマインダーを最適化するためのウィザード。
最後に Paywall でサブスク提示。
11ステップの構成
- Welcome — アプリの紹介
- Goal — 目標選択(筋肥大 / 減量 / 健康 / 筋力)
- Experience — 経験レベル(初級 / 中級 / 上級)
- Frequency — 週間頻度(2 / 3 / 4 / 5+ days)
- Loading — 解析中演出
- Result — 解析結果表示
- Prediction — 達成予測
- Features — アプリの主要機能紹介
- Commit — 「始める」コミット
- Notification — 通知許可リクエスト
- Paywall — サブスク提示
UI 構成
| 要素 | 種類 | 説明 |
| TabView (Page Style) | SwiftUI | 11ページの順次遷移 |
| プログレスバー | ProgressView | ステップ進行表示 |
| 「次へ」ボタン | Button | 各ステップで前進 |
| 「スキップ」 | Button | Paywall までスキップ可 |
遷移
| 操作 | 遷移先 |
| 11ステップ完了 | ContentView (MainTabView) |
| 各ステップ → 次へ | 次のステップ |
使用するデータモデル
// UserDefaults @AppStorage で永続化
@AppStorage("userGoal") var goal: String
@AppStorage("userExperience") var experience: String
@AppStorage("userFrequency") var frequency: String
@AppStorage("onboardingCompleted") var completed: Bool
実装メモ
- 完了時に
insertDefaultTemplates() で目標・経験別の初期テンプレ挿入
- 通知ステップで UNUserNotificationCenter 許可リクエスト
- Paywall ステップでスキップ可(強制購入なし)
変更履歴
| バージョン | 日付 | 変更内容 |
|---|
| 1.0 | 2026-05-09 | 初版作成 |