Saját termék — sportolók és egyesületek

Courtovo — az eredmény a csuklón

Egy órát labdamenet közben kezelnek, fél kézzel, odanézés nélkül. A Courtovo tíz sportágat számol a saját szabályai szerint, és tartósan offline működik.

Az oldal megtekintése →

A feladat

Egy órát játék közben kezelnek: fél kézzel, odanézés nélkül, tűző napon, gyakran nedves ujjal. Ehhez jön a szabályoldal — tíz sportág tíz szabálykönyvet jelent, amelyek szinte mindenben ellentmondanak egymásnak, és egy rosszul számolt tiebreak-rotáció rosszabb a papírnál.

A megoldás

Tiszta szabálymotor Kotlin Multiplatformban, Android, ki- és bemenet és óra nélkül. Ettől kimerítően tesztelhető a szabálykönyvek ellen anélkül, hogy bármikor órát kellene indítani — a tárolás, az érzékelők és a szinkronizáció kívül maradnak.

Az eredmény

Tíz sportág számolva, további tizenhárom mérve, 24 nyelv, tíz megjelenés — és mindez fiók és hálózat nélkül működik.

Teniszeredmény az órán: az aktuális játékban 15:30, játékokban 6:4, szettekben 1:0; a pont jelzi, ki adogat.
Egy pillantás elég — pontok, játékok, szettek és az adogató.
0:0 az állás, 5:0 a játékokban, alatta két nyíl: az ötödik játék után az óra jelzi az oldalcserét, amelyet a tenisz szabályai ezen a ponton előírnak.
A szabályok tudják, mikor kell oldalt cserélni.
Ugyanez az állás a világos „Daylight” színtémában: sötét számok világos alapon, napos pályákhoz.
Ugyanez az állás a sötét „Deepwater” színtémában: világos számok mélykék alapon.
A tíz színtéma közül kettő.
Egy teniszmeccs kiértékelése a telefonon: 6:2 Márta ellen, statisztika a pontokról és az adogatásról, a mért pulzus görbével, alatta minden pont külön.
A telefonon — amit az óra a meccs alatt mért.

Egy óránál nem a felület dönt el mindent, hanem az a határ, amit a szabályok köré húzunk. A Courtovóban a scoring-core tiszta Kotlin Multiplatform modul: nincs benne Android, nincs be- és kimenet, nincs óra. Hogy egy pont mit csinál az állással, így olyan függvény, amely kimerítően ellenőrizhető anélkül, hogy bármikor be kellene kapcsolni egy eszközt.

Ez ott térül meg, ahol a szabálykönyvek kellemetlenné válnak. Adogatási és fogadási sorrend párosban, térfélcsere, a Coman-tiebreak, a no-ad, a Fast4, a Champions-tiebreak — mindegyik önmagában ártalmatlan, együtt viszont pont ott téved a számláló. Ugyanez a motor JavaScriptre is fordul, így a weboldal ugyanazokra a vektorokra ellenőriz, amelyeken az óra fut.

Minden más szándékosan kívül van: a mérkőzésnapló kézzel írt SQL-ben a mellékelt SQLite-illesztőn, a mérés a Health Servicesen keresztül, az egyesülethez kapcsolódás pedig külön modulként. Ez a kapcsolat opcionális — kijelentkezve semmi nem hiányzik, mert a számolás, az előzmény és a mérés maga a tárgy, és nem függ szervertől.

Referenciák

Hasonló munkák ugyanezekből a szolgáltatási területekből.

Összes referencia →