Día de competición
Check-in, arbitraje, puntuación y transmisión en vivo para eventos Fitofan
Cinco apps que operan un torneo en el lugar: check-in y arbitraje en un equipo de escritorio, consolas de juez en teléfonos y tabletas, un puente al hardware de puntuación, cámaras de teléfono que transmiten con un marcador en vivo y repetición multicámara.
- Rol
- Lead Engineer: Flutter, iOS y Android nativos, escritorio
- Periodo
- 2024 – 2026


Contexto
Los torneos ocurren en pabellones deportivos con Wi-Fi poco fiable, hardware prestado y sin tiempo para la configuración. El ecosistema Fitofan necesitaba su propio software de recinto, y construí cada parte desde cero.
El reto
Mantener el check-in, el arbitraje y la transmisión en marcha cuando se cae internet, permitir que cualquier teléfono o tableta se una escaneando un código QR y devolver los resultados a la plataforma y a sistemas de puntuación de terceros.
Construido en todas las capas
- Fitofan Core, Flutter de escritorio para macOS, Windows y Chromebook: check-in con pagos e impresión de credenciales QR, arbitraje para judo y MMA, sorteos y cuadros, un segundo proceso para la pantalla de TV
- Fitofan Touch, Flutter para teléfonos y tabletas: una consola de juez con 10 reglamentos, desde taekwondo WT e ITF y kárate WKF hasta gimnasia y breaking, con hápticos y un modelo de entrada consciente de la conectividad
- Fitofan Connect, Flutter de escritorio: una base de datos de resultados en SQLite y una API HTTP local que hace de puente con sistemas electrónicos de puntuación de terceros
- LiveOn, nativo en Swift y Kotlin: transmisión configurada por QR a Amazon IVS con un mezclador de tres capas de cámara, logotipo y marcador en vivo superpuesto
- VR, Electron: hasta cuatro cámaras de teléfono, USB o RTSP sobre WebRTC, repetición instantánea y corte de clips con ffmpeg, retransmisión a YouTube, licencias offline, compilaciones firmadas y notarizadas para macOS, Windows y Linux
Puntos de ingeniería
- Offline-first: una cola de salida persistente se vacía hacia la plataforma cuando vuelve la conexión
- Un protocolo LAN escrito a mano: descubrimiento por broadcast UDP, sesiones TCP con reconexión, un enlace loopback a la ventana de TV
- Superposiciones del marcador renderizadas de forma nativa y compuestas en el flujo de video una vez por segundo
- Un feed de puntuación en vivo sobre Socket.IO controla la superposición en iOS y la detección automática de los límites de cada combate en la app de repetición
Qué hace posible
Un organizador llega con portátiles y teléfonos y gestiona el registro, el arbitraje, la puntuación y la transmisión desde un único ecosistema, con o sin conexión.