POINTCOUNTER
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.
Tres pantallas y ni una de más



Cuatro cosas que no caben en un móvil
Un reloj no es un móvil pequeño: está en la muñeca, se mira de reojo y se toca con la mano sudada. Estas cuatro salen de ahí.
El marcador, también en el bolsillo

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 cuenta, el móvil recuerda
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.
Un color por jugador, y que se distinga
La app se apoya en el color para decir quién es quién. Eso funciona muy bien… hasta que no funciona.
Descárgala y juega
Gratis y de código abierto. Sin anuncios, sin cuenta y sin que salga un solo dato del reloj ni del teléfono.
Para el reloj
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 →Para el móvil
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.
Un módulo abajo, dos apps encima
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.
Por qué se lee de un vistazo
El reglamento es la parte difícil
Las trampas que me comí
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.
Cada versión está donde está por algo
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.
Lo que todavía no está
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, deshacer saltando a un punto anterior se refleja 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.
Del historial se puede sacar, pero todavía no meter. Exporta a CSV y a JSON; volver a importar ese JSON está pendiente. El formato se escribió pensando en ello y la ida y vuelta ya tiene test, así que falta sobre todo la pantalla.
El widget está hecho y probado, pero no colocado en una pantalla de inicio de verdad. El selector de widgets del lanzador no se deja automatizar, así que lo que puedo afirmar es que se registra, se dibuja y lee el mismo canal que la app —que sí está probado punto a punto—.