← Projects

Dart Tracker

Local-first darts scorer for X01 and Count Up, with checkout hints and player stats.

Dart Tracker is a darts scorer for iPhone. It plays X01 (101 up to 1001, with double in, double out and first-to-N legs) and Count Up, for any number of local players in a throwing order you can reorder.

You score a turn in one of two ways: tap where each dart landed on an SVG dartboard, or pick each dart on a keypad. The X01 rules live in a pure module, separate from the screens, and handle bust detection, undo across turns and checkout suggestions for the remaining score. A flying-dart animation, sound effects and haptic ticks while aiming make it feel closer to the real board.

How a turn is scored Each dart comes from a tap on the board or the keypad. The game session checks it against pure X01 rules and writes finished turns to SQLite on the device.

Parts: Dartboard (tap · SVG), Keypad (pick each dart), Game session (turn flow · undo), X01 rules (busts · checkouts), SQLite (Drizzle · on device), History + stats (per match · all-time).

  • Dartboard to Game session
  • Keypad to Game session
  • Game session to X01 rules (dart)
  • Game session to SQLite (turn)
  • SQLite to History + stats

Everything is stored on the device with Drizzle on expo-sqlite: game history, a summary for each match and all-time stats per player. There’s no account and no network connection.

X01 scoring on a dartboard
Game shot celebration
Match stats
Number-pad scoring
Player rankings
Game history