Sé programar, pero no sabía nada de este reloj: una app GPS en ~7 conversaciones con una IA
Hoy tengo un reloj en la muñeca que hace exactamente lo que quería: graba mis rutas en la moto y en la montaña, me deja marcar puntos importantes con el botón físico sin sacarme los guantes, y me entrega cada ruta como archivo GPX para revivirla en el mapa. Aclaración desde el arranque, porque acá todo el mundo es developer: sí sé programar. Llevo años escribiendo código en otras plataformas. Lo que NO tenía era la menor idea de este dominio: el SDK de Zepp OS, los caprichos del firmware, los límites físicos de un wearable. Y eso cambió todo el tipo de conversación que tuve con la IA. El problema nunca fue el lenguaje Cuando quise una app propia para mi Amazfit T-Rex 3 (grabar rutas, marcar puntos, exportar GPX), miré el camino clásico: SDK, JavaScript con módulos raros, emulador, certificados, QRs de developer. Nada de eso es difícil para alguien que programa — es largo y desconocido. Medí el costo real: semanas de leer documentación en chino para una app que quizás use yo solo. Así que invertí el flujo. En vez de primero estudiar la plataforma y después construir, fui directo al ciclo: Describir el comportamiento que quería que está app hiciera. El agente escribe el código y me da un QR para instalar. Probar en el reloj de verdad: en la calle, con la muñeca, con guantes. Volver con lo que pasó de verdad. El reloj en la muñeca era el único test de integración que importaba. Mi experiencia de programar no me ahorró las vueltas — me hizo aprovecharlas: saber qué preguntar, leer el código que llegaba con ojo crítico y reportar bugs con precisión en vez de con Capturas y "no funciona". Los ~7 turnos, tal como fueron Turno 1 — "Quiero grabar rutas GPS con mi reloj." Nació la app: GPS en vivo, grabadora y un detalle que yo no sabía que podía pedir: intervalos de guardado. Cada 10 segundos, 30, 1 minuto o 5. Con intervalos largos el GPS se "duerme" entre muestras y la batería estira a días, no horas. Turno 2 — "Los botones físicos del reloj no hacen nada dentro de la app." Existía una API para interceptarlos y no la conocía. Ahora con el botón de la derecha marco un waypoint mientras manejo (sin tocar la pantalla), con otros dos cambio el intervalo, y para salir mientras graba pide confirmación para no perder la ruta de un toque accidental. Turno 3 — "La app abre en una pantalla llena de datos que no miro nunca." Era la pantalla de diagnóstico de cuando depurábamos. Ahora la app abre directo en la grabadora: un toque y está grabando. Turno 4 — "No me acuerdo qué hace cada botón." Copiamos un patrón de los relojes de aventura tipo Garmin: cada botón físico tiene un rótulo chico en el borde de la pantalla, justo a la altura del botón. MARCAR, INT -, INT +, SALIR. El del botón principal cambia solo: dice INICIAR parado y MARCAR grabando. Turno 5 — "Cuando pido salir, el diálogo con el check verde no responde al toque." Bug del propio firmware: el sistema dibuja el diálogo pero los botones nunca llegan a la app. Ni mis años de experiencia ni la IA lo vimos venir: se descubrió probando. Solución: un diálogo hecho dentro de la app con los mismos widgets que sí funcionan. Turno 6 — "Quiero ver las rutas anteriores como lista, deslizando." Ahora las rutas se ven como en las apps nativas del reloj: tarjetas que se deslizan y se frenan centradas, cada una con fecha, puntos y distancia. Tocás una y se abre el mapa chico de la ruta, con exportar y borrar. Turno 7 — "¿Qué sentido tiene el botón ORIGEN que pusimos al principio?" La mejor pregunta de todas, y una donde saber programar ayudó al revés: a dudar. La respuesta honesta era que ninguno (una alarma de "te alejaste 100 metros" vibra en el primer minuto de cualquier ruta y después no dice nada más). Borrar features también es mejorar. En su lugar, la pantalla muestra INICIO 850 m — cuánto hay de vuelta al punto donde empecé — y SAT 9, la calidad de la señal. Lo que descubrí del reloj (y no estaba en ningún tutorial que yo fuera a leer) El reloj no quiere que le hagas ciertas cosas, y saberlo temprano ahorra semanas: Las apps normales no pueden usar el GPS en segundo plano; si la pantalla se apaga, el sistema congela la app. Por eso, mientras graba, la app mantiene la pantalla encendida con trucos específicos de la plataforma. El brillo de pantalla no se puede fijar por software en este firmware: se fija a mano en ajustes. El reloj no tiene internet: para exportar, la ruta pasa por la app del teléfono y sale como enlace con el GPX. Este es, para mí, el verdadero valor del ciclo: cada límite de plataforma fue un turno de conversación, no una semana de foros. El resultado Una app (le pusimos TrailHacker) que: Graba rutas con modo ahorro de batería (días de grabación con intervalos largos) Marca waypoints con el botón físico, sin mirar la pantalla Exporta cada ruta como GPX vía QR para abrir en gpx.studio, Google My Maps o Strava Se maneja completa con los 4 botones físicos, con rótulos en pantalla Tiene lista deslizable de rutas, confirmaciones donde importa y diagnóstico de señal cuando el GPS no engancha Funciona en mi reloj. Eso es lo que cuenta. Lo que me llevo de esta experiencia Lo que sabía no se volvió inútil — cambió de rol. Sirvió para acotar pedidos, pensar casos raros ("¿y si borro la ruta mientras graba?"), revisar el código que llegaba y describir fallas con precisión. Programé menos y dirigí más: mi rol se pareció más al de tech lead y QA de muñeca que al de autor de cada línea. El cuello de botella era el dominio, no el lenguaje. Años de programar no me decían que este firmware congela la app al apagarse la pantalla. La IA amortiguó exactamente esa parte: comprimió "aprender un SDK niche" en conversaciones con mi reloj puesto. Preguntar "¿esto para qué sirve?" vale oro. La app mejoró más borrando una función que agregando tres. 7 turnos no fueron 7 milagros. Fueron 7 idas y vueltas con cosas que no funcionaron, textos que no entraban en pantalla y un firmware con caprichos. Justo ahí, en la vuelta extra, brilla el ciclo: le pasás el síntoma de la muñeca y te devuelve la siguiente versión. El software como debería ser Y acá está, creo, la puerta a algo más grande. Casi todo el software que existe se construye al revés: alguien adivina qué necesitan miles de usuarios, y los features se negocián con métricas. Este camino es el opuesto: una sola persona que sabe exactamente qué problema tiene y cómo lo quiere resuelto, con las herramientas para hacérselo. La métrica también cambia. No es "¿lo van a usar mil personas?" ni "¿escala?". Es: ¿me funciona a mí? Si la respuesta es sí, el software ya cumplió su trabajo. Que le sirva a otro, que esté pulido, que se publique — todo eso es añadidura. La app de mi reloj no compite con nada ni con nadie: compite con la versión de ayer de sí misma y con mis ganas de usarla. Creo que vamos a ver muchísimo software así: pequeño, rarísimo, perfectamente ajustado a una persona. El que te sigue a vos y no al mercado. ¿Esto es programar? Es programar con un traductor de dominio al lado. La próxima vez que un SDK raro te frene una idea, probá el camino corto: describir, instalar, probar. Y sobre todo, preguntale a tu propia app qué parte no tiene sentido. ¿Vos qué le pedirías a tu reloj?
This is a summary aggregated from Dev.to. Read the complete article on the original site:
Read full article at Dev.to