目的・役割
ランキング作成者が設定したクイズに答えて、全問正解した人だけが投票画面に進めるゲート機能。
「分かってる人だけ投票できる」ことで投票の質を保証する設計思想。
UI 構成
| 要素 | 種類 | 説明 |
| 進捗バー | ProgressView | 「3問中 N 問正解」 |
| 質問テキスト | Text | Quiz.question |
| 選択肢ボタン | Button×複数 | 正解 + ダミー選択肢 |
| ヒントボタン | Button | Quiz.answerHint があれば表示 |
状態
| 状態 | 表示内容 |
| 進行中 | 現在の問題 + 進捗 |
| 正解 | 「正解!」表示 → 次問題 |
| 不正解 | 「もう一度挑戦してください」 → 1問目に戻る |
| 全問正解 | 投票画面へ自動遷移 |
遷移
| 操作 | 遷移先 |
| 全問正解 | VoteView または ThreePointVoteView |
| 不正解 | 同画面(リセット) |
| キャンセル | RankingDetailView |
使用するデータモデル
Quiz {
let id: UUID
let rankingId: UUID
let question: String
let correctAnswer: String
let answerHint: String?
let displayOrder: Int // 出題順
}
実装メモ
- Quiz.displayOrder 順に出題
- 不正解時は最初からやり直し(部分通過なし)
- ダミー選択肢の生成方法(v1.0は固定 or correctAnswerシャッフル)
- 不正解時の penalty(待機時間)導入は v1.1検討
関連
変更履歴
| バージョン | 日付 | 変更内容 |
| 1.0 | 2026-05-09 | 初版作成 |