Kume: a real-time cycling app that works with no signal

Kume was built with one clear goal: riding the Camino del Cid, 553 km over 7 stages, as a group and without getting lost. Today it's used for training and group rides. It's my own product, designed and built end to end for iOS and Android, with a website to follow the group live.

My role
My own product: design and full development
Platforms
iOS, Android and web
Stack
React Native, Expo, TypeScript, Supabase, Mapbox
Tested on
Camino del Cid, 553 km
Map navigation in El Burgo de Osma, on the Camino del Cid
Map navigation with live data
Stage profile and prediction based on training data
Stage profile and prediction
Training plan and readiness for the Camino del Cid
Training plan and readiness

The challenge

Real-time GPS tracking in the background, with the battery drain and patchy coverage of a route through inland Spain, while showing the group where every rider is. And, before setting off, knowing whether the training you've done is enough for each stage.

What I built

Built for riding

Stage collections in KumeChoosing the data shown while riding

Each rider chooses which data to see and how big, with different setups for the flat, the climbs and the final stretch. Everything is designed to be read at a glance, with the phone on the handlebars.

Technical decisions

Event-driven positions

With the screen off, Android froze timers and the group lost sight of a rider for minutes. Now every GPS sample publishes the position, with a heartbeat every 30 s to tell stopped from disconnected.

The database is the source of truth

If the system suspends the app, the in-memory distance counter falls behind. At the end of the ride, the distance is rebuilt from the points stored on the phone.

Battery and hysteresis

The app lowers the GPS rate on its own when the battery drops below 50, 30 and 15%, and only switches screens on a climb if the gradient holds for 15 seconds, so a bump in the road doesn't make it flicker.

Got an idea for a mobile app?

info@adriasoft.es