3

Делаю интервальный таймер для Android: что изменилось за две версии

Серия Вайб-кодинг

Всех приветствую. Это моя вторая статья про небольшой Android-проект - интервальный таймер для тренировок. Первая статья получилась сумбурной, скомканной, неструктурированной и с кучей воды. Не взлетела.

В этот раз попробую без длинного захода про изобретение велосипеда и работу с ИИ. Сразу сделаю упор на результат - то, что уже получилось.

Скриншоты текущей версии 0.3.0

Кратко напомню, что приложение, которое я вайбкодю в качестве небольшой самостоятельной практики - интервальный таймер для табаты, HIIT, круговых тренировок, растяжки, разминки и любых пользовательских интервалов. Приложение бесплатное, без навязчивой всплывающей рекламы, баннеров и урезанных функций. Для тех, кому интересно потрогать приложение в живую - ссылка на рустор в конце статьи.

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

С тех пор вышли еще две версии - 0.2.0 и 0.3.0. Как и было в планах, в версии 0.2.0 появилась поддержка нагрудных пульсометров. Также в приложении появился метроном, отдых между кругами, импорт и экспорт тренировок.

Что было в первой версии

В 0.1.1 приложение закрывало только базовый сценарий интервального таймера:

  • настройка подготовки, работы, отдыха и количества повторов;

  • тренировки из нескольких разных интервалов;

  • собственные названия интервалов, чтобы на экране было понятно, какое упражнение идет сейчас;

  • сохранение сложных тренировок для последующего быстрого запуска;

  • запись коротких голосовых подсказок прямо внутри приложения, которые можно назначать как сигнал начала интервала вместо стандартного звука.

Например, можно было собрать тренировку вроде:

  • отжимания - 40 секунд работы, 20 секунд отдыха;

  • приседания - 50 секунд работы, 30 секунд отдыха;

  • планка - 60 секунд работы, 30 секунд отдыха.

Что добавилось в 0.2.0

В предыдущей статье я писал, что следующим крупным шагом хочу сделать поддержку нагрудных пульсометров. Как и планировал, в версии 0.2.0 такая поддержка появилась.

Приложение работает с нагрудными BLE-датчиками, которые передают пульс через стандартный Bluetooth Heart Rate Service. Например, XOSS X2, Polar H10, Garmin HRM-Dual, Wahoo TICKR и похожие устройства.

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

Пример:

  • работа - 45 секунд;

  • отдых - 20 секунд;

  • восстановление - до 120 BPM.

Если через 20 секунд пульс все еще выше 120, таймер продолжит отдых. Когда пульс опустится до нужного значения, начнется следующий рабочий интервал. Отдых по пульсу можно принудительно прервать и перейти к следующему интервалу.

Доработана настройка самой тренировки: кроме кнопок + и - с шагом 5 секунд, добавлен точный выбор значений через колесо прокрутки. Это гораздо удобнее, когда нужно выбрать длинный интервал - 50, 60, 90 секунд и более. Кнопки + и - при этом остались для быстрых правок.

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

Была улучшена работа таймера в фоне и после блокировки экрана. Телефон можно заблокировать или свернуть приложение - в первой версии я упустил этот момент. Таймер в том числе будет показывать активную тренировку через уведомление.

Что добавилось в 0.3.0

Основное изменение версии 0.3.0 - метроном для рабочей фазы. В карточке интервала можно задать темп в BPM, выбрать звук метронома и включить визуальный импульс на экране таймера. Это может быть полезно для упражнений, где требуется соблюдать темп, например: приседания, жимы, тяги с небольшим весом, махи гирей, упражнения с собственным весом, круговые комплексы и т.д.

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

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

Добавилась возможность импорта и экспорта сохраненных тренировок.

Повторы цикла переименованы в Круги для лучшего отражения смысла. Между кругами можно задать отдельный отдых, в том числе отдых до восстановления пульса.

Из мелких правок - карточки стали компактнее, дополнительные настройки переехали в блок Больше параметров.

Что приложение умеет сейчас

Если собрать все вместе, сейчас в приложении есть:

  • быстрый старт простой интервальной тренировки: подготовка, работа, отдых и круги;

  • возможность создать несколько разных интервалов в одной тренировке с возможностью переименования и отображения названия на экране в процессе работы;

  • голосовые подсказки, которые можно записать прямо в приложении и установить как сигнал начала интервала вместо стандартных звуков;

  • сохранение тренировок для последующего быстрого запуска, импорт и экспорт;

  • поддержка Bluetooth-пульсометров - наблюдение за пульсом во время тренировки, отдых до восстановления до заданного пульса;

  • метроном для рабочей фазы - возможность задавать нужный темп для работы;

  • работа таймера в фоне и после блокировки экрана.

Планы на будущее

История тренировок: автоматическое сохранение завершенных тренировок, календарь активности, список по датам и подробности занятия.

Развитие метронома: вместо одного варианта с BPM в планах добавить выбор - задать темп исходя из количества ударов в минуту или указать количество повторений за рабочий интервал, а приложение само рассчитает BPM.

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

Краткая ремарка про работу с ИИ

Проект я делаю при активной помощи Codex/ChatGPT. Но это далеко не про "сделай приложение за один промпт".

Обычно работа выглядит так: я формулирую идею или проблему, прошу анализ и план, правлю этот план, потом отправляю агента реализовывать конкретный кусок. После этого агент собирает APK, ставит его на телефон и я уже проверяю. Но бывают и варианты, когда агент сам тестирует приложение на телефоне.

ИИ существенно упрощает работу с рутиной. Он пишет/правит код, помогает с миграциями базы, помогает с текстами для справок и документации, ищет и разбирает ошибки, собирает APK, ставит приложение на телефон. В моем случае, даже нужные скриншоты для релиза, сам делает через ADB. Мне только приходится надевать пульсометр и поднимать пульс, чтобы на скриншотах были соответствующие значения)

Для повторяющихся действий я обычно завожу отдельные скрипты. Например: для сборки APK, установки на телефон, подготовки скриншотов и релизных файлов. Это существенно снижает риск мелких ошибок при этих действиях, в отличие от варианта, когда агент по команде каждый раз продумывает план и реализует запрос.

Буду рад советам

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

Особенно интересны реальные тренировочные сценарии: какие варианты тренировок уже можно делать с ним, а какие нельзя и что для этого не хватает?

Все советы и полезные идеи - обязательно изучу. Если они покажутся мне интересными для внедрения - запланирую их реализацию в следующих версиях.

Ссылка на приложение в RuStore: Интервальный таймер

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества