Un marcador de pádel y tenis que vive en la muñeca.
Tocas la mitad izquierda o la derecha de la pantalla. Él lleva los puntos, los juegos, los sets, el tie-break, el punto de oro y recuerda quién saca. Y lo replica en el móvil mientras juegas.
▶ Lo que se ve en el reloj es una grabación real, sin montaje: 23 segundos de partido entero.




El reloj publica cada punto por la Wearable Data Layer API. Como el dato queda guardado en el canal, abrir el móvil a mitad de partido enseña el marcador al instante, sin esperar al punto siguiente.
El reloj tiene una pantalla de 45 milímetros y una batería que cuidar. El teléfono tiene teclado, espacio y memoria larga. Cada uno hace lo que se le da bien.
Gratis y de código abierto. Sin anuncios, sin cuenta y sin que salga un solo dato del reloj ni del teléfono.
WEAR OS 3+ · ANDROID 11 (API 30)
El marcador. Es la app principal: la que tocas mientras juegas, y la que lleva la cuenta.
Descargar APK →ANDROID 8+ (API 26)
La companion. Replica el marcador en vivo, guarda el historial y comparte el resultado como imagen.
Descargar APK →
En el móvil basta con abrir el archivo y aceptar instalar de orígenes desconocidos.
En el reloj no hay atajo: Wear OS no permite instalar un APK descargándolo desde
el propio reloj, hay que activar la depuración ADB y mandarlo desde un ordenador con
adb install. Los pasos, uno a uno, están en el
README.
Toda la puntuación vive en un módulo de Kotlin puro, sin una sola dependencia de Android. El reloj y el móvil se apoyan en él sin copiar una línea.
Reglas, estado inmutable, historial y la foto del marcador que viaja. Kotlin JVM, sin Android: por eso los 33 tests corren en CI sin necesitar el SDK.
Pinta el estado y reenvía los toques. No calcula puntuación: cuando cambia una regla, no hay nada que tocar aquí.
No calcula ni un punto del reglamento: recibe el marcador y las estadísticas ya resueltas. Lo que sí hace es recordar, que es justo lo que el reloj no puede.
Ninguna de estas sale en el «hola mundo» de Wear OS. Todas costaron un rato de más, y están aquí por si le ahorran la tarde a alguien.
No es la combinación más nueva, es la que encaja con la única plataforma que tengo instalada. Subir cualquiera de estas piezas obliga a mover las demás.
El compileSdk máximo que soporta es 37, que es justo la plataforma instalada.
El mínimo que exige AGP 9.3.0. Por debajo ni arranca.
Va incorporado en AGP 9, así que no se aplica el plugin de Kotlin Android por separado.
Material 3 Expressive: es de donde salen EdgeButton y ScreenScaffold.
Emitido desde el JDK 25 de Android Studio, porque no hay un JDK 17 en la máquina.
El workflow corre únicamente los tests de core-scoring: es Kotlin puro y no necesita el SDK de Android, que no siempre está en el runner.
No sobrevive a que el sistema mate el proceso. El partido vive en memoria: si Android decide reclamar la app a mitad de set, se pierde. Persistirlo con SavedStateHandle es la siguiente mejora natural y la que más falta hace.
La sincronización funciona, pero solo está probada con dos emuladores. Comprobado de punta a punta: el marcador viaja punto a punto, los avisos llegan ya traducidos, abrir el móvil a mitad de partido enseña el marcador al instante, y al terminar el teléfono pasa a «sin partido». En un reloj y un teléfono de verdad todavía no lo he probado, así que no lo doy por hecho.
Si el reloj muere a mitad de partido, el móvil se queda con el último marcador. No llega a mandar el aviso de «sin partido». La marca de tiempo ya viaja en cada envío, así que bastaría con darlo por caducado pasado un rato.