POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

No gires a la derecha: moniverso

De la ruta en bicicleta a una app de Garmin con Monkey C: aprendizaje, retos y resultados electorales

Publicado el 18/09/2025

No gires a la derecha: moniverso

Este artículo reúne mis ideas y aprendizajes al desarrollar una pequeña aplicación para ordenadores GPS de bicicleta Garmin y sirve de guía para quien quiera aprender Monkey C y crear apps para dispositivos Garmin. El punto de partida fue un viaje en bicicleta por Alemania desde la frontera con los Países Bajos hasta Polonia, pasando por ciudades hanseáticas, costas y zonas con gran apoyo a la AfD. Mientras pedaleábamos surgió la necesidad práctica de saber rápidamente qué resultados obtuvo la AfD en las elecciones locales sin sacar el móvil ni interrumpir el trayecto.

La solución obvia fue aprovechar los ordenadores GPS para bicicletas: dispositivos que permiten seguimiento de rutas, navegación y la instalación de widgets o aplicaciones. Aquí nació la idea de una app que indique en qué localidad estás y cuál fue el porcentaje de votos de la AfD.

Garmin utiliza Monkey C, un lenguaje propio inspirado en Java, C y Javascript y pensado para entornos de recursos muy limitados. Al principio me sorprendió que Garmin optara por su propio lenguaje, porque complica el crecimiento del ecosistema y hace menos atractiva la creación de apps, aunque tiene argumentos técnicos como consumo de batería y gestión de RAM. La documentación es escasa y la comunidad también, por lo que el desarrollo fue un ejercicio de experimentación entre documentación y trial and error.

Los principales retos técnicos fueron obtener la posición GPS, determinar a qué municipio corresponde esa posición y reducir los datos para que encajaran en la memoria limitada del dispositivo. Inicialmente pensé en cargar polígonos de cada municipio y aplicar ray casting para detectar si las coordenadas estaban dentro de un polígono, pero el archivo era inmenso y el rendimiento preocupante.

La alternativa práctica fue usar una lista de municipios con sus coordenadas y calcular la distancia al punto actual para identificar el municipio más cercano. Para simplificar las operaciones adopté una fórmula euclidiana aproximada sobre latitud y longitud con reducción de precisión en las coordenadas, lo cual resultó suficiente en la mayoría de los casos e hizo viable la ejecución en el simulador del SDK de Garmin usando GPX para pruebas.

La obtención de resultados electorales supuso otro trabajo de limpieza y cruce de datos. Las fuentes oficiales ofrecen resultados por wahlbezirk y no siempre coinciden con los nombres o subdivisiones de las bases de datos de municipios, por lo que fue necesario agrupar, normalizar nombres y corroborar el estado federado para evitar confusiones entre localidades homónimas. Generé finalmente una tabla con cityName, latitud, longitud, población y porcentaje AfD, reduje la precisión y empaqueté la información para que fuese lo más compacta posible y cabiera en memoria.

En Monkey C configuré el acceso GPS con posicionamiento continuo, gestioné eventos de actualización y usé un temporizador que cada pocos segundos compara la posición con la lista de municipios para mostrar al usuario la localidad y el porcentaje de voto. La optimización de memoria incluyó reducir el número de municipios cargados, combinar campos y transformar las coordenadas para ahorrar espacio. La app llegó a funcionar correctamente en el emulador, fue probada por un compañero en Alemania y finalmente aprobada en la tienda de Garmin.

Lecciones aprendidas: Monkey C es factible para proyectos simples pero exige disciplina con la gestión de memoria y mucho trabajo manual por la falta de librerías comunes. Herramientas como el SDK y el emulador son muy útiles, y cuando hay que procesar datos complejos es práctico complementar con scripts en Python para limpieza y preparación antes de empaquetar los datos para el dispositivo.

Si te interesa desarrollar soluciones similares o necesitas desarrollar una aplicación a medida para otro hardware o plataforma, en Q2BSTUDIO ofrecemos servicios de desarrollo de aplicaciones y software a medida adaptados a limitaciones de dispositivos, optimización de recursos y experiencia de usuario. Contamos con experiencia en inteligencia artificial y podemos ayudarte a incorporar modelos para enriquecer apps con información contextual en tiempo real, ver más sobre nuestra oferta de desarrollo de aplicaciones a medida y software multiplataforma.

Además, Q2BSTUDIO es especialista en soluciones de inteligencia artificial para empresas, agentes IA y proyectos de automatización que integran datos, modelos y experiencia para ofrecer valor operativo. Si buscas transformar datos electorales, geoespaciales o de sensores en información accionable podemos diseñar pipelines, modelos y visualizaciones con herramientas como Power BI dentro de servicios de inteligencia de negocio. Conoce nuestras capacidades en inteligencia artificial en la página de inteligencia artificial.

Ofrecemos también servicios de ciberseguridad y pentesting para garantizar que las aplicaciones y servicios cloud sean seguros, y despliegues y operaciones en servicios cloud aws y azure gestionados para escalabilidad y resiliencia. Frases clave en las que podemos ayudarte incluyen aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi.

Si te interesan proyectos donde la eficiencia, la seguridad y la inteligencia de datos marcan la diferencia, Q2BSTUDIO puede acompañarte desde la idea hasta el despliegue y la monitorización. El desarrollo de esta app me enseñó que resolver problemas reales requiere combinar ingeniería de datos, optimización en entornos limitados y una visión clara de producto, competencias que ponemos a disposición de nuestros clientes.

Resumen práctico: para crear apps en plataformas cerradas valora el tamaño de datos, la complejidad del algoritmo espacial y el ciclo de pruebas en emuladores. Si prefieres delegar el desarrollo o acelerar la creación de un producto con experiencia profesional en software a medida, inteligencia artificial y ciberseguridad, ponte en contacto con Q2BSTUDIO y trabajemos juntos en tu próximo proyecto.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio