TrainingRecorder — открытое приложение для часов на Wear OS. Оно пишет тренировку на самих часах, показывает её данные на экране во время занятия и — если гонку судит наша система хронометража — добавляет туда же обстановку по гонке. Приложение бесплатное, без рекламы и без собственной учётной записи.

Экран тренировки на часах: девять полей сразу

Логика приложения

Разделение простое: часы пишут, телефон настраивает.

Чтобы записать тренировку, не нужно ни телефона, ни интернета — часы справляются сами. Раз в секунду они сохраняют точку трека: координаты, высоту, пульс, скорость, каденс, мощность и пройденное расстояние, — и всё это же показывают на экране. Всё, что касается настройки — какие поля на каком экране, какие датчики, куда выгружать, номер гонки — делается на телефоне и уезжает на часы сразу, даже если тренировка уже идёт.

После финиша тренировка уходит в Strava и Garmin Connect. Если связи нет, она дожидается её и уходит позже.

Экраны и поля

Редактор экрана на телефоне

Для каждого вида спорта собирается своя раскладка: до десяти экранов, на каждом до десяти полей. Показателей много — от привычных пульса и каденса до нормализованной мощности, SWOLF в бассейне и времени до заката, — но смысл не в их количестве, а в том, что вы собираете экран под себя и он одинаково выглядит на всех тренировках этого вида.

Виды спорта сгруппированы по разделам (велосипед, бег, плавание, лыжи), и раскладка наследуется от раздела: настроили один раз для велосипеда — она действует для всех велосипедных видов, пока вы не переопределите её для конкретного.

Гоночная статистика прямо на часах

Выбор поля на телефоне, снизу вкладка Race

Это то же самое, что наши приложения для Garmin и Amazfit, только встроенное в приложение записи: во время гонки, которую судит наша система, на экране часов видно ваше место и отрывы.

Настраивается на телефоне, на вкладке Race: адрес сайта (по умолчанию наш), номер соревнования из адреса страницы гонки и ваш стартовый номер. Там же выбирается, как часто обновлять данные — от 10 секунд до часа, по умолчанию раз в минуту.

Пятнадцать гоночных показателей: место в абсолюте и в своей группе, отрывы до соперника впереди, от соперника сзади и до лидера — отдельно по абсолюту и по группе, — динамика каждого из этих отрывов и пройденные круги. Любой из них ставится в ячейку экрана рядом с пульсом и скоростью.

Это единственная часть приложения, которой нужен интернет: часы обращаются к открытому API сайта по адресу вида /api/v1/live-stats/<номер гонки>/<стартовый номер>. Связь подойдёт любая — Wi-Fi на самих часах или через телефон рядом. Ключей и авторизации там нет. Опрос идёт только во время записи тренировки: между гонками статистика никому не нужна, а запрос по сети — это расход батареи. Если запрос не прошёл, на экране остаются прошлые значения, а не пустые прочерки.

Датчики

Экран поиска датчиков на часах

Приложение подключается по Bluetooth к нагрудным пульсометрам, датчикам скорости и каденса и измерителям мощности. Датчик, который умеет несколько вещей сразу — например, ремень, отдающий и пульс, и беговой каденс, — подключается по всем своим возможностям, а не по одной.

Когда внешний датчик подключён, показания встроенного оптического датчика для этого поля не используются: два источника, которые расходятся между собой, хуже одного.

Высота берётся с барометра, если он есть в часах, а точка отсчёта — со спутников, и раз в час она уточняется: погода меняет давление, и без этого набор высоты уезжает.

Выгрузка и приватность

Подключение Strava и Garmin Connect

Тренировки уходят в Strava и Garmin Connect. Своих ключей к сервисам в приложении нет — вы заводите собственное API-приложение в Strava, это занимает пару минут. Пароль от Garmin остаётся на телефоне и на часы не передаётся: часы работают по токену.

Рекламы, аналитики и учётной записи «в самом приложении» нет вовсе.

Что нужно

  • Часы с Wear OS 3 или новее (Android 11).
  • Телефон с Android 8 или новее — для настройки и выгрузки; на самой тренировке он не нужен.
  • Интернет — только для гоночной статистики: Wi-Fi на часах или телефон рядом.
  • Интерфейс переведён на 15 языков, включая русский и казахский. Единицы — метрические или имперские, на выбор.

Где взять и куда писать об ошибках

Приложение открытое, под лицензией Apache 2.0. В Google Play его пока нет: APK-файлы для часов и для телефона лежат в разделе релизов на GitHub.

Чего в приложении нет и не будет в ближайшее время: электронные трансмиссии (Di2, AXS, LTwoo) не поддерживаются. В Bluetooth нет стандартного сервиса для передач — велокомпьютеры читают их по ANT+, а такого радио в часах на Wear OS нет.