A Multiplayer Trivia Party Game for tvOS 17+
QuickBurstTV is an interactive, fast-paced trivia game designed for the Apple TV platform.
Players take turns answering questions, earn points for correct answers, and battle for the top spot on the scoreboard — all from the comfort of the TV screen.
Built using SwiftUI, tvOS 17, and Apple's Focus Engine, the app delivers smooth navigation using the Apple TV Remote or the tvOS Simulator keyboard.
- Add multiple players in the lobby
- Player names stored for the session
- Automatic turn-based answering system
- Scoreboard at the end showing winners
- Built-in sample question set
- Randomized question ordering
- Correct answer highlighting after each round
- Focusable buttons for remote navigation
- Custom focus sections for smooth movement
- Controller and keyboard navigation supported
- Optimized for living-room usage
- Gradient backgrounds
- Large readable TV typography
- Animated and interactive buttons
- Rounded card-style components
QuickBurstTV/
│
├── ContentView.swift # All screens: Lobby, Question, Scoreboard
├── GameViewModel.swift # Game logic, state management
├── Models.swift # Data models: Question, Player, GamePhase
└── QuickBurstTVApp.swift # App entry point-
SwiftUI (tvOS)
Fully declarative UI designed for Apple TV screens. -
Focus Engine Integration
.focusable(true)and.focusSection()used for precise navigation. -
MVVM Architecture
GameViewModelmanages all logic and game state- Views are fully reactive via
@EnvironmentObject
-
Randomized Question Flow
Ensures replayability with shuffled question order.
- ↑ ↓ ← → — Move focus
- Enter / Return — Select
- Backspace — Go back (when applicable)
- Fn + ← — Home screen
- Touch surface / D-Pad for navigation
- Select button to choose answers/items
- Xcode 15 or later
- tvOS 17 SDK
- Apple TV 4K (optional)
- Clone or download the project
- Open
QuickBurstTV.xcodeprojin Xcode - Set the run target to Apple TV 4K (tvOS 17+)
- Build & run
- Use arrow keys or the on-screen remote to play
Open Models.swift → find:
static let sampleQuestions: [Question] = [
Question(...),
Question(...)
]
// Add your new question like:
Question(
id: UUID(),
text: "Your question here...",
options: ["A", "B", "C", "D"],
correctIndex: 1
)These improvements can expand your Part B marks:
- iPhone as controller (MultipeerConnectivity)
- Timers & power-ups
- Animations and sound effects
- More question packs (JSON loading)
- Profile pictures or icons for players
- Game center achievements
Kisura W. S. P
BSc (Hons) in Information Technology Specializing in Interactive Media — SE4041 Mobile Application Development & Design (2025)
This project is intended for academic and portfolio use.