目的・役割
豆知識(tip.quiz)に付随する3〜4択問題を解く画面。正解で連続日数(streak)+1、コインも獲得可能。
UI 構成
| 要素 | 種類 | 説明 |
| 問題文 | Text | tip.quiz.question |
| 選択肢ボタン | Button×4 | tip.quiz.choices |
| 結果表示 | Overlay | 正解 / 不正解の演出 |
| 正答率表示 | Text | 「N% 正解」 |
| 連続正解日数 | Text | 「連続N日」 |
| 獲得コイン | Text | 「+1 コイン」(正解時) |
状態
| 状態 | 表示内容 |
| 未回答 | 選択肢のみ |
| 正解 | 正解演出 + 統計表示 |
| 不正解 | 正解を提示 + 解説 |
| 当日回答済み | 「本日は回答済み」表示 |
遷移
| 操作 | 遷移先 |
| 選択肢タップ | 結果表示(同画面) |
| 閉じる | HomeView(sheetを閉じる) |
使用するデータモデル
TipQuiz {
let question: String
let choices: [String]
let correct: Int // index
}
QuizService {
func recordAnswer(tipId: String, correct: Bool)
func getStreak() -> Int
func hasAnsweredToday() -> Bool
}
実装メモ
- QuizService.hasAnsweredToday() で1日1回制限
- 正解時 streak +1 + コイン獲得(CoinService 連携)
- 不正解時 streak リセット
関連
変更履歴
| バージョン | 日付 | 変更内容 |
| 1.0 | 2026-05-09 | 初版作成 |