TrainingRecorder is an open-source app for Wear OS watches. It records the workout on the watch itself, shows you its numbers on the screen while you train, and - when the race is timed by our system - puts the state of that race on the same screen. The app is free, with no ads and no account of its own.
How the app is arranged
The split is simple: the watch records, the phone configures.
Recording needs neither the phone nor a connection - the watch manages on its own. Once a second it saves a track point: position, altitude, heart rate, speed, cadence, power and distance covered - and shows all of it on the screen as you go. Everything to do with setting up — which fields on which screen, which sensors, where to upload, which race — happens on the phone and reaches the watch immediately, even mid-workout.
When you finish, the workout goes to Strava and Garmin Connect. If there is no signal it waits and goes later.
Screens and fields
Each sport gets its own layout: up to ten screens, up to ten fields on each. There are plenty of metrics — from the usual heart rate and cadence to normalised power, pool SWOLF and the time of sunset — but the point is not how many there are. The point is that you build the screen you want and it looks the same on every workout of that sport.
Sports are grouped into sections (cycling, running, swimming, skiing) and a layout is inherited from its section: set it once for cycling and it applies to every cycling activity until you override it for one of them.
Live race stats on the watch
This is the same thing our Garmin and Amazfit apps do, built into the recorder: during a race timed by our system, your place and the gaps around you are on the watch screen.
You set it up on the phone, on the Race tab: the site address (ours by default), the competition id from the race page URL, and your bib number. The same screen chooses how often to refresh — from 10 seconds to an hour, once a minute by default.
Fifteen race metrics: your place overall and within your group; the gap to the rider ahead, to the rider behind and to the leader — separately for the overall and the group standings; how each of those gaps is changing; and laps completed. Any of them goes into a screen slot next to heart rate and speed.
This is the one part of the app that needs a connection: the watch reads the site's open API at
/api/v1/live-stats/<competition>/<bib>. Any connection will do - Wi-Fi on
the watch itself, or the phone in your pocket. There are no keys and no authorisation. Polling runs
only while a workout is being recorded - standings mean nothing between races, and a network request
costs battery. A request that fails leaves the previous values on screen rather than blanking
them.
Sensors
The app connects over Bluetooth to chest heart-rate straps, speed and cadence sensors and power meters. A sensor that does several things at once — a strap reporting both heart rate and running cadence, say — is connected for all of them, not just one.
While an external sensor is connected, the built-in optical sensor is not used for that field: two sources that disagree are worse than one.
Altitude comes from the barometer where the watch has one, with the reference taken from the satellites and refined once an hour: weather moves the pressure, and without that the total ascent drifts.
Uploads and privacy
Workouts go to Strava and Garmin Connect. The app carries no service keys of its own — you create your own API application in Strava, which takes a couple of minutes. Your Garmin password stays on the phone and is never sent to the watch: the watch works from a token.
There are no ads, no analytics and no account inside the app at all.
What you need
- A watch with Wear OS 3 or newer (Android 11).
- A phone with Android 8 or newer - for setting up and uploading; not during the workout itself.
- A connection, for the race stats only: Wi-Fi on the watch, or the phone nearby.
- The interface is translated into 15 languages. Units are metric or imperial, your choice.
Where to get it, and where to report a bug
The app is open source under the Apache 2.0 licence. It is not in Google Play yet: the APK files for the watch and for the phone are in the releases section on GitHub.
- Repository: https://github.com/dchernykh1984/WearOSTrainingRecorder
- Releases (the APKs live here): https://github.com/dchernykh1984/WearOSTrainingRecorder/releases
- Bugs and requests: GitHub issues
One thing it does not do and will not soon: electronic groupsets (Di2, AXS, LTwoo) are not supported. Bluetooth has no standard service for gears — bike computers read them over ANT+, and a Wear OS watch has no such radio.
Комментарии (0)
Комментариев пока нет. Будьте первым!
Войти чтобы оставить комментарий.