A SwiftUI iOS app for tracking and timing dice-rolling game rounds across multiple teams.
Dice Timer helps coordinate multiplayer dice games by precisely tracking when each team completes their rolls. Perfect for competitive dice games where timing matters!
- Multi-Team Support: Add unlimited teams with custom names and player counts
- Precise Timing: 10ms precision timer to accurately track game rounds
- Round Tracking: Record when each team rolls their first and last dice
- Statistics: View detailed performance metrics including:
- Average completion times per team
- Average time per player
- Round-by-round comparisons
- Standard deviation calculations
- Fastest round identification
- Multiple Reset Options:
- Reset current round only
- Reset all rounds (keep teams)
- Reset everything (clear all data)
- Progress Monitoring: Visual progress indicator showing teams completed vs total
- Auto-Complete Detection: Timer automatically stops when all teams finish
- iOS 17.0+
- Xcode 15.0+
- Swift 5.9+
- Clone the repository:
git clone https://github.com/abraxasw/Dice-Game.git
cd "Dice Game"- Open the project in Xcode:
open "Dice Game.xcodeproj"- Build and run the project (⌘+R)
- Add Teams: Tap the '+' button to add teams with names and player counts
- Start Timer: Press the green play button to begin timing
- Record Times:
- Tap the blue '1' button when a team rolls their first dice
- Tap the green checkmark when they roll their last dice
- View Results: Check team statistics and round comparisons
- Next Round: When ready, advance to the next round
- Reset: Choose from three reset options via the reset button
Dice Game/
├── Models/
│ ├── Team.swift # Team data model with round tracking
│ └── GameTimer.swift # Timer logic and state management
├── Views/
│ ├── AddTeamView.swift # Add new team interface
│ └── ResultsView.swift # Statistics and results display
├── ContentView.swift # Main game interface
└── Dice_GameApp.swift # App entry point
- SwiftUI: Declarative UI framework
- MVVM Pattern: Models manage data, Views display UI
- Combine: Reactive timer updates via
@Publishedproperties - State Management:
@StateObject,@State, and@Bindingfor data flow
See CLAUDE.md for detailed architecture documentation.
Build and test commands:
# Build from command line
xcodebuild -project "Dice Game.xcodeproj" -scheme "Dice Game" -configuration Debug build
# Run tests
xcodebuild test -project "Dice Game.xcodeproj" -scheme "Dice Game" -destination 'platform=iOS Simulator,name=iPhone 15'This project is available for personal and educational use.
Andrew Tam
This is a personal project, but suggestions and feedback are welcome via issues.