Eigenes Produkt — Sportlerinnen, Sportler und Vereine

Courtovo — der Spielstand am Handgelenk

Auf einer Uhr wird mitten im Ballwechsel bedient, mit einer Hand, ohne hinzusehen. Courtovo zählt zehn Sportarten nach ihren eigenen Regeln und funktioniert dauerhaft offline.

Zur Website →

Die Aufgabe

Eine Uhr wird mitten im Spiel bedient: mit einer Hand, ohne hinzusehen, in der Sonne, oft mit nassen Fingern. Dazu kommt die Regelseite — zehn Sportarten sind zehn Regelwerke, die sich in fast allem widersprechen, und eine falsch gezählte Tiebreak-Rotation ist schlimmer als Papier.

Die Lösung

Eine reine Regel-Engine in Kotlin Multiplatform, ohne Android, ohne Ein-/Ausgabe und ohne Uhrzeit darin. Dadurch lässt sie sich erschöpfend gegen die Regelwerke testen, ohne je eine Uhr zu starten — Speicher, Sensoren und Synchronisation liegen außerhalb.

Das Ergebnis

Zehn Sportarten gezählt, dreizehn weitere gemessen, 24 Sprachen, zehn Erscheinungsbilder — und alles davon funktioniert ohne Konto und ohne Netz.

Tennis-Spielstand auf der Uhr: 15:30 im laufenden Game, 6:4 in Games, 1:0 in Sätzen; der Punkt zeigt, wer aufschlägt.
Ein Blick genügt — Punkte, Games, Sätze und der Aufschlag.
Spielstand 0:0, Games 5:0, darunter zwei Pfeile: Nach dem fünften Game zeigt die Uhr den Seitenwechsel an, den die Tennisregeln hier verlangen.
Die Regeln wissen, wann die Seiten gewechselt werden.
Derselbe Spielstand im hellen Farbthema „Daylight“: dunkle Ziffern auf hellem Grund, für Plätze in der Sonne.
Derselbe Spielstand im dunklen Farbthema „Deepwater“: helle Ziffern auf tiefblauem Grund.
Zwei der zehn Farbthemen.
Die Auswertung eines Tennismatchs am Telefon: 6:2 gegen Márta, Statistik zu Punkten und Aufschlag, die gemessene Herzfrequenz mit Verlaufskurve und darunter jeder Punkt einzeln.
Am Telefon — was die Uhr während des Matches gemessen hat.

Der Entwurf, der bei einer Uhr über alles entscheidet, ist nicht die Oberfläche, sondern die Grenze um die Regeln. In Courtovo ist scoring-core ein reines Kotlin-Multiplatform-Modul: kein Android darin, keine Ein- und Ausgabe, keine Uhrzeit. Was ein Punkt mit einem Spielstand macht, ist damit eine Funktion, die erschöpfend geprüft werden kann, ohne je ein Gerät einzuschalten.

Das zahlt sich dort aus, wo Regelwerke unangenehm werden. Aufschlag- und Rückschlagreihenfolgen im Doppel, Seitenwechsel, der Coman-Tiebreak, No-Ad, Fast4, Champions-Tiebreak — jede dieser Regeln ist einzeln harmlos und in Kombination die Stelle, an der ein Zähler falsch liegt. Dieselbe Engine zielt auch auf JavaScript, sodass die Website gegen genau die Vektoren prüft, gegen die die Uhr läuft.

Alles Übrige ist bewusst außen: der Spielverlauf in handgeschriebenem SQL über den mitgelieferten SQLite-Treiber, die Messung über Health Services, und die Verbindung zu einem Verein als eigenes Modul. Diese Verbindung ist optional — abgemeldet fehlt nichts, denn Zählen, Verlauf und Messung sind der ganze Gegenstand und hängen an keinem Server.

Referenzen

Vergleichbare Arbeiten aus denselben Leistungsbereichen.

Alle Referenzen →