Aplicación Mobile-First y Offline-First (PWA) para nadadores: registro de marcas, parciales (splits), Puntos FINA y evolución hacia tus objetivos con 100% privacidad local.
Split está pensada para usarse directamente desde el celular en el borde de la pileta o después de cada torneo. Te permite registrar tus tiempos totales y parciales intermedios en las 18 pruebas oficiales de natación, calcular al instante tus Puntos FINA (World Aquatics) y analizar en qué tramo de la carrera (0-15m, 15-25m, 25-35m, 35-50m o vueltas de 25m/50m) estás ganando o perdiendo centésimas.
Si recién abrís la aplicación por primera vez, seguí estos 4 pasos en menos de un minuto:
- Tocá el botón con tu nombre arriba a la derecha (o andá a Objetivos → Perfil FINA).
- Elegí tu Género Deportivo (Hombre o Mujer) y tu Pileta Habitual (
25mCorta o50mOlímpica). Esto ajusta automáticamente las tablas oficiales de World Aquatics para tus Puntos FINA. - Marcá con una estrella ⭐ tus Pruebas Favoritas (50m Mariposa ya viene preseleccionada por defecto) y tocá Guardar.
💡 ¿Querés chusmear los gráficos y tablas antes de cargar tus tiempos reales? En la pantalla de inicio (Dashboard) o en Objetivos → Datos podés tocar "Cargar datos de demostración" para explorar la app con marcas de ejemplo y luego limpiarlas con un clic desde "Borrar marcas y objetivos".
- Tocá Registrar en la barra inferior.
- Elegí la prueba (ej. 50m Mariposa) y escribí tu Tiempo Total (podés escribir
26.45,26,45o1:02.40). Verás calcularse en vivo tus Puntos FINA y si lograste un nuevo récord personal (PB). - Elegí si fue en 🏆 Carrera / Torneo o en 🏊 Entrenamiento, y si el tiempo fue Electrónico o Manual.
- (Opcional) Cargá los Parciales Acumulados (en
50m: tu paso a los15m,25m,35my50m; en distancias mayores: cada25m,50mo100m). La app calcula sola cuánto tardaste en cada tramo y te permite anotar brazadas y ondas subacuáticas. - Elegí tu Sensación en el agua (1 a 5), agregá cualquier nota técnica y tocá Registrar Marca.
- Andá a la pestaña Objetivos.
- Elegí la prueba, el tamaño de pileta (
25mo50m) y el Tiempo Meta al que apuntás. - La app te mostrará cuántas centésimas o segundos te faltan desde tu PB de Carrera y desde tu PB de Entrenamiento, además de cuántos Puntos FINA equivale esa meta.
- Andá a la pestaña Evolución.
- Mirá la Curva de Tiempo Total a lo largo de la temporada (con tu objetivo marcado como línea meta) o cambiá a Tramos Parciales para comparar en barras tu
PB de Carreravs. tuPB de Entrenamientovs. tuObjetivo.
- 🏊 Catálogo Completo (18 Pruebas Oficiales):
- Mariposa, Espalda y Pecho:
50m,100m,200m. - Libre (Crol):
50m,100m,200m,400m,800m,1500m. - Combinado Individual (Medley):
100m(exclusivo pileta de25m),200m,400m.
- Mariposa, Espalda y Pecho:
- ⏱️ Grilla Inteligente de Parciales (Splits) y Métricas:
- En pruebas de
50m: cortes específicos de velocidad en15m,25m,35my50m(desglosando salida/subacuático0-15m, nado15-25m, viraje/paso25-35my cierre35-50m). - En
100my200m: cortes cada25mo50m+ paso opcional por15m. - En
400m,800my1500m: cortes cada50mo100m. - Registro opcional de conteo de brazadas (Stroke Count) y ondas subacuáticas por tramo.
- En pruebas de
- 🏆 Separación de
PB de CarrerayPB de Entrenamiento:- Distingue tu PB Oficial de Carrera (el más importante y prioritario para rankings y objetivos) de tu PB de Entrenamiento, excluyendo automáticamente relevos lanzados (2° a 4° relevo de posta) para no distorsionar tus récords de largada estática.
- 🌍 Motor Offline de Puntos FINA (World Aquatics):
- Tablas embebidas de Tiempos Base oficiales para pileta corta (
25mSCM) y larga (50mLCM) en ramas Hombre y Mujer, y ranking personal de pruebas para comparar qué estilo/distancia es tu punto más alto.
- Tablas embebidas de Tiempos Base oficiales para pileta corta (
- 🔒 100% Privada, Offline y Portátil:
- Funciona sin internet en cualquier natatorio. Tus datos se guardan en tu propio dispositivo (
IndexedDB) y podés exportarlos/importarlos en JSON o CSV (Excel / Google Sheets).
- Funciona sin internet en cualquier natatorio. Tus datos se guardan en tu propio dispositivo (
El cálculo implementado sigue la fórmula oficial de World Aquatics:
-
$T$ : Tiempo del nadador en segundos. -
$B$ : Tiempo Base oficial vigente de World Aquatics para esa prueba, género (Hombre / Mujer) y tamaño de pileta (25mo50m).
- 👉 Guía de Instalación Mobile en iPhone / Android y Respaldos (
docs/INSTALACION_MOBILE.md) - 👉 Manual de Usuario Paso a Paso (
docs/GUIA_DE_USO.md) - 👉 Glosario de Dominio de Natación (
docs/glosario.md) - 👉 Decisiones de Arquitectura (
docs/decisiones/)
- Frontend: React 18 + TypeScript + Vite 6
- Estilos: Tailwind CSS 3 + Lucide React
- Persistencia Local: Dexie.js (IndexedDB)
- Gráficos: Recharts
- PWA: Vite Plugin PWA
- Calidad y Testing: ESLint + Vitest
npm install # Instalar dependencias
npm run dev # Iniciar servidor de desarrollo en http://localhost:5173
npm run lint # Ejecutar análisis estático con ESLint
npm test # Ejecutar pruebas unitarias de motores de cálculo con Vitest
npm run build # Compilar TypeScript y empaquetar versión de producción PWA- Cada push o merge sobre
devymasterejecuta automáticamentenpm ci,npm run lint,npm testynpm run builden GitHub Actions (.github/workflows/deploy.yml). - Al fusionar hacia
master, el workflow despliega la PWA en GitHub Pages (https://split.hasselpunk.com) y publica automáticamente el Tag y Release SemVer correspondiente a la versión depackage.json.