<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>IOS on Anthony Snavely</title><link>https://anthonysnavely.com/technologies/ios/</link><description>Recent content in IOS on Anthony Snavely</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 06 Nov 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://anthonysnavely.com/technologies/ios/index.xml" rel="self" type="application/rss+xml"/><item><title>Genesis Billiards</title><link>https://anthonysnavely.com/showcase/genesis-billiards/</link><pubDate>Fri, 06 Nov 2026 00:00:00 +0000</pubDate><guid>https://anthonysnavely.com/showcase/genesis-billiards/</guid><description>&lt;p>A scoreboard app for Genesis Billiards, a pool hall in Loveland, Colorado. The phone sits on the rail and gets handed across the table all night, so the whole screen is the scoreboard: one half per player, a huge number on each, and a tap on a half to score.&lt;/p>
&lt;h2 id="at-the-table">At the table&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Tap to score.&lt;/strong> Tap your half for a point, or +10 for a run. A games tally sits on the seam for races; hold it to reset.&lt;/li>
&lt;li>&lt;strong>Presets&lt;/strong> for 9-Ball, Rotation, One Pocket and Straight Pool (14.1), or a custom race.&lt;/li>
&lt;li>&lt;strong>A match timer&lt;/strong> that counts down, counts up or runs as a shot clock. The alarm rings through the silent switch and still goes off with the phone locked.&lt;/li>
&lt;li>&lt;strong>Undo and redo&lt;/strong> for every score, and a match history.&lt;/li>
&lt;li>&lt;strong>No confirmation dialogs.&lt;/strong> Destructive actions are hold-to-confirm, and there&amp;rsquo;s no first-run tutorial, since whoever picks the phone up in rack three didn&amp;rsquo;t install it.&lt;/li>
&lt;/ul>
&lt;h2 id="under-the-hood">Under the hood&lt;/h2>
&lt;ul>
&lt;li>Every score is an event in a ledger and the match is a pure fold over it, so undo is moving a cursor back and a finished match can&amp;rsquo;t be accidentally un-won.&lt;/li>
&lt;li>The live match is saved to disk on every change. Reopen the app hours later and it picks up where you were, or asks whether to start over.&lt;/li>
&lt;li>The screen stays awake while a match is live and sleeps when it ends, so nobody drains their phone in the parking lot.&lt;/li>
&lt;li>Built on Windows; the iOS builds and App Store uploads run on Codemagic.&lt;/li>
&lt;/ul></description></item></channel></rss>