Перейти к содержимому
Источник

Про то, как я вайбкодил приложение для тренировок

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

Задача: Я хочу, чтобы приложение заменяло мне тренера в сценариях домашней зарядки. Этот тренер стоял бы рядом, отсчитывал бы повторения, говорил когда отдыхать, и когда переключаться к следующему упражнению. Терпеть не могу считать сам. Там, где упражнения на количество — это несложно, но там, где тебе нужно в статике находиться продолжительное время — это боль. Ты начинаешь считать быстрее/медленнее в зависимости от настроения, не понимаешь где конец, нет чувства удовлетворённости от выполненного упражнения и всё такое. Мозг пытается тебя обмануть, чтобы ты поменьше работал.

А ещё, раз уж я хочу сделать "плеер" для тренировок, почему бы не попробовать их структуру формализовать и дать возможность генерить тренировки по конкретному запросу. Типа "шея болит", "хочу разминку на 10 минут для айтишного образа жизни", или "прогулка по парку". Тренировка — это набор упражнений. Упражнение — это набор подходов. Подход — это набор повторений. Между подходами отдых. Каждое повторение делится на фазы — движение до пика, задержка и движение в обратную сторону. У всего есть тайминги.

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

Сначала пара часов до вылизанной дизайн-системы. Потом несколько часов на функциональность и допиливание хотелок, придуманных в процессе. И ещё столько же в сумме на багофиксы и адаптивность вёрстки. И это по-прежнему самая болезненная часть. Адаптивность просто "и так сойдёт" в большинстве кейсов, и то только потому, что я эти кейсы проверил.

Я специально в этот раз не пользовался никакими модными флоу, не писал никаких спек, скиллов (только фронтенд-дизайн на старте) и длинных промптов. Писал всё опусом 4.6, периодически просил кодекса 5.3 поревьювить. Пара вечеров — приложение готово и задеплоено. А я всё ещё не знаю ни тайпскрипта, ни реакта, с трудом представляю в чём разница между bun и vite, и как деплоить это всё тоже не знаю. Хотя, конечно, я на опыте примерно понимаю как пишется софт. Я понимал, что мне нужно сначала фундамент для дизайна сделать, для тестов, и время от времени возвращаться к анализу архитектуры.

Сгенерить себе приложение — значительно проще, чем было даже несколько месяцев назад. А год назад ту же самую идею я до конца довести не смог. И что самое интересное, чаще всего с программерским опытом сгенерить своё — значительно проще, чем искать существующее и идти на его компромиссы.

Фронтендеры из подписчиков, к вам вопрос: насколько там всё плохо по коду? Что бы вы делали вообще не так? Реально интересно, чтобы в будущих проектах процесс подкрутить.

Код вот тут — https://github.com/pavelkorolevxyz/exercaise Приложение вот тут — https://exercaise.pavelkorolev.xyz/