Профиль и цели: как PULSE стал больше, чем чек-ин
Добавили в PULSE полноценный профиль с аватаром и панель целей — сравнение Energy Index по месяцам, а не просто ежедневная галочка.
Ежедневный чек-ин — это ядро PULSE, но одно только ядро не превращает трекер в продукт, которым хочется пользоваться регулярно. Голый email вместо имени и аватара, отсутствие ответа на вопрос “а что вообще получилось за месяц” — из этих мелочей и складывается ощущение, что приложение делает ровно одну вещь и больше ничего. Такие пробелы редко называют багами — формально всё работает, чек-ин сохраняется, данные не теряются. Но именно они определяют, вернётся ли человек в приложение на второй месяц или тихо перестанет открывать его через две недели. Решили закрыть оба пробела разом: профиль пользователя и панель целей.
Профиль — не просто аватар
Первая часть — то, что превращает аккаунт из строки email в личность. Добавили поля имени, псевдонима, возраста, города и аватара в схему пользователя, эндпоинт для редактирования профиля и отдельный эндпоинт для загрузки изображения — с проверкой типа файла и ограничением размера до 5 мегабайт, чтобы случайно загруженное фото в оригинальном разрешении с телефона не легло мёртвым грузом на диск. На месте голого email в карточке аккаунта теперь аватар и имя, а редактирование вынесено в отдельную модалку, а не размазано по интерфейсу.
Цель — не разовая настройка, а панель сравнения
Вторая часть решает другую проблему. Ежедневный чек-ин без контекста быстро превращается в рутинное действие без ощутимого смысла — поставил галочку, забыл. Панель “Цель” даёт этот контекст: сравнение показателя Energy Index по месяцам, а не только текущее значение здесь и сейчас. Идея простая — привычка держится дольше, когда видно, что она на что-то влияет, а не существует сама по себе. Разница между “у меня есть цифра за сегодня” и “я вижу, что этот месяц был лучше прошлого” — ровно та разница, которая превращает ежедневную рутину в осмысленное отслеживание прогресса, а не в галочку ради галочки.
Почему это тестировали не только автоматически
Шесть новых тестов покрывают эту функциональность, и все они проходят — но для продукта, где реальный пользователь загружает реальный файл со своего реального телефона, одних юнит-тестов недостаточно: они проверяют, что код ведёт себя правильно на контролируемых входных данных, а не что реальный HTTP-запрос с настоящим файлом изображения пройдёт весь путь от загрузки до отображения без сюрпризов. Отдельно перезапустили веб-сервис и прогнали живой сценарий целиком через настоящие HTTP-запросы: регистрация нового аккаунта, обновление профиля через PATCH, загрузка аватара, и — что важнее всего — проверка, что этот аватар потом реально отдаётся статикой обратно, а не просто сохраняется где-то на диске и остаётся недоступным. Разница между “тест прошёл” и “человек открыл приложение и увидел свою фотографию” может быть неочевидной с точки зрения кода и очень заметной с точки зрения пользователя — поэтому эта проверка была не формальностью, а необходимым шагом перед тем, как считать задачу закрытой.
Что дальше
Финальная приёмка — визуальная проверка на реальном устройстве, а не по логам и не по автотестам. Это осознанный порядок: код может быть полностью корректен технически и всё равно выглядеть не так, как задумано, на конкретном экране конкретного телефона — единственный способ это поймать - посмотреть самому. Автотесты отвечают на вопрос “работает ли логика”, живой curl-сценарий — на вопрос “отвечает ли сервер правильно на реальный запрос”, а визуальная проверка — на вопрос, который не сводится ни к одному из первых двух: выглядит ли результат так, как задумано, для живого человека с реальным экраном в руках.
Это не первое расширение PULSE за последнее время — раньше мы добавили напоминания в Telegram с входом по одноразовой ссылке, чтобы про чек-ин вообще не забывали. Профиль и цели решают следующий шаг того же вопроса: как сделать так, чтобы про привычку не только не забывали, но и видели в ней смысл. Если тоже ведёте несколько проектов и трудно удерживать регулярность — PULSE теперь показывает не только “сделал сегодня”, но и “что из этого получилось за месяц”.
Рассылка новых статей
Выберите, куда присылать новые статьи и разборы — без спама, только новые материалы.
Чтобы получать статьи на email, сначала привяжите email в личном кабинете.
Чтобы получать статьи в Telegram, войдите через Telegram-кнопку на странице входа.
Получайте новые статьи и разборы
Подпишитесь через email — без спама, только новые материалы.