Keeping Score is an iOS SwiftUI app for tracking scores and game state across multiple game modes.
Right now the app includes:
- Simple Scoring
- Skull King scoring
- Tournament management
- Monopoly cash and property tracking
- Swift
- SwiftUI
- Xcode
The main app code lives under KeepingScore.
Key folders:
KeepingScore/Root: app entry, root views, and assetsKeepingScore/Models: shared game modelsKeepingScore/Views/Landing: landing and navigation UIKeepingScore/Views/SimpleScoring: generic score trackerKeepingScore/Views/SkullKingScoring: Skull King flow and logicKeepingScore/Views/Tournaments: tournament setup, bracket, participants, and match detailsKeepingScore/Views/Monopoly: Monopoly setup, scoreboard, players, properties, and game logic
The app starts in KeepingScoreApp.swift.
It creates and injects the main shared state objects:
GameManagerTournamentStoreMonopolyGameManager
The landing screen is LandingPageView.swift, which routes users into each game mode.
- Basic score tracking
- Lightweight scoreboard flow
- Player setup
- Round score entry
- Leaderboard flow
- Tournament setup
- Participant management
- Match detail flow
- Bracket browsing by round
- Player setup with tokens and starting cash
- Cash adds, deductions, and transfers
- Property ownership tracking
- Monopoly, house, hotel, and mortgage rules
- House and hotel bank counters
- Bankruptcy tracking and bankruptcy order
- Automatic end-of-game detection
- Final leaderboard summary with winner and stats
- The project uses SwiftUI environment objects heavily for shared game state.
- Monopoly state is managed in
MonopolyGameManager. - Tournament state is managed in
TournamentStore. - There is legacy tournament code in some branches that may duplicate file names. If you hit a build error like
Multiple commands produce ... TournamentBracketView.stringsdata, check for duplicateTournamentBracketView.swiftfiles in different folders.
- Open
Keeping Score.xcodeprojin Xcode. - Select the
Keeping Scorescheme. - Choose an iOS simulator or device.
- Build and run.
Test targets are included:
- Remove outdated duplicate tournament prototype files if they still exist in older branches.
- Continue consolidating view naming and folder structure across branches.
- Add more automated tests around game-specific business logic, especially Monopoly rules and tournament flows.