Tech stack: - Swift/SwiftUI, iOS 18+ - Built in Xcode - SwiftData with CloudKit integration for local-first persistence with iCloud sync - No backend servers — data lives in the user's iCloud private database - No analytics SDKs, no network requests beyond iCloud sync
What it does: - Two input modes: a calculator-style view for punching in scores fast during gameplay, and a table view for a spreadsheet-like look at every round. Game history with analytics (win/loss ratios, averages, per-player trends), a dice roller supporting everything from a single d6 to custom multi-dice pools with saved presets, and a game timer for turn tracking or overall session duration.
Architecture decisions: - SwiftData over Core Data. I wanted to bet on the modern framework - Local-first was non-negotiable. No accounts, no sign-up, no server-side anything. iCloud handles sync transparently - Biggest technical challenge was making SwiftData + CloudKit sync reliable across devices without conflict issues
Privacy/monetization: - No ads, no tracking, no data collection - Free to download, optional IAP for advanced features - No account required
App Store: https://apps.apple.com/us/app/roundskeeper/id6754217431
Would love technical feedback or feature requests. What would you want from a scorekeeper app?