Я выпустил анти-шагомер, который ругает за активность

Stoned считает шаги как моральный ущерб, награждает за покой и раз в день просит доказать, что ты жив, но не слишком активен. Внутри шутки - настоящее Android-приложение с датчиками, локальными пушами, ачивками и публикацией в RuStore.

Я выпустил анти-шагомер, который ругает за активность

Откуда это взялось

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

В какой-то момент я подумал: а что, если сделать ровно наоборот?

Не закрывать кольца активности, а беречь их от шагов. Не поздравлять с 10 000 шагов, а вежливо уточнять: «Кому ты что доказываешь?» Не выдавать дофамин за очередную пробежку, а награждать за способность не вставать без крайней необходимости.

Так появился Stoned.

Название здесь скорее про stone - камень, неподвижность, а не то что вы подумали. А ещё это пародия на wellness-интонацию, где любой бытовой процесс можно упаковать как премиальный lifestyle-продукт.

Это не медицинский трекер, не приложение про ЗОЖ и не попытка переубедить кого-то ходить меньше. Это сатира на язык современной продуктивности. Но мне было важно, чтобы шутка работала не только на одном экране, а как полноценный продукт.

Как выглядит anti-wellness

У Stoned четыре вкладки.

Покой. Главный экран: шаги, таймер неподвижности, ленивый стрик и «сэкономленные от суеты» калории. Чем больше шагов, тем сильнее кольцо покоя уходит в тревожный красный.

Чек-ап. В случайное время с утра до вечера приложение открывает 10-минутное окно проверки. Нажимаешь большую кнопку «Я живой, но мне лень», а приложение смотрит на акселерометр и гироскоп. Если рука дрогнула, стрик сгорает. Потому что амбиции, очевидно, давят на нервную систему.

Коллекция. Девятнадцать анти-достижений. Например, «Первичная кристаллизация» за час без движения, «Ночной невроз» за активность между двумя и четырьмя ночи, «Тремор достигатора» за провал чек-апа и «Ошибка округления» за ровно один шаг за сутки.

Профиль. Stoned ID, которым можно поделиться как сторис. Внутри есть фейковая «Pro-лень» за 99 рублей. Пользователь проходит несколько угрожающе-коммерческих диалогов, а в финале узнает, что с него списали 0 рублей и остатки совести.

Я выпустил анти-шагомер, который ругает за активность

Почему это не просто мем-генератор

Сначала Stoned мог быть просто смешной картинкой: кольцо покоя, пара токсичных фраз и кнопка «Я живой, но мне лень».

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

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

Потому что одно дело - придумать шутку про анти-шагомер. Другое - сделать так, чтобы она не разваливалась после первого запуска.

Stoned должен был:

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

И вот тут шутка внезапно стала дисциплинирующей.

Чем абсурднее идея, тем аккуратнее должна быть реализация. Если приложение ругает пользователя за 5000 шагов, оно не может само путаться в порогах. Если просит доказать, что ты жив, оно должно помнить, когда открылось окно проверки. Если выдаёт ачивку за неподвижность, она должна появиться не потому, что где-то сломался счётчик.

Иначе пользователь перестает смеяться и начинает дебажить шутку.

Что оказалось сложнее, чем казалось

Самое смешное: приложение про лень заставило меня довольно много двигаться.

Пришлось тестировать сборки, проверять поведение на Android, разбираться с уведомлениями, смотреть, как приложение ведет себя после перезапуска, и отдельно ловить баги, которые не видны в браузерном предпросмотре.

В разработке быстро выяснилось несколько вещей.

Во-первых, мобильное приложение нельзя проверять только в режиме «у меня на компьютере красиво». В веб-превью всё может выглядеть дорого: мягкие карточки, стекло, тени, голографический Stoned ID. А на реальном телефоне внезапно появляются белые прямоугольники, съезжает нижняя навигация или системные кнопки перекрывают интерфейс.

Во-вторых, датчики - это не магия. Если приложение считает шаги, оно должно быть готово к тому, что на одном устройстве всё работает, а на другом данные приходят иначе или не приходят вообще. Для медицинского трекера это была бы большая проблема. Для сатирического анти-шагомера - повод сделать несколько уровней защиты и честно помнить, что это не прибор, а продуктовая шутка.

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

Под капотом у Stoned React Native, Expo, TypeScript, локальное состояние, датчики, уведомления и немного Android-специфики. Но технически это не столько история про стек, сколько про то, как мемная идея превращается в продукт с настоящими пользовательскими сценариями.

Я выпустил анти-шагомер, который ругает за активность

Модерация RuStore и реальность устройств

Отдельный квест - публикация в RuStore.

Первая попытка не прошла из-за скриншотов. Вторая - из-за верстки на другом Android-устройстве: системные кнопки перекрывали нижнюю навигацию. На моем Nothing Phone (1) с жестовой навигацией этот баг почти не проявлялся, поэтому я его просто не видел.

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

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

В какой-то момент приложение, которое должно было защищать пользователя от лишней активности, заставило меня бегать между сборками, скриншотами, модерацией и тестами.

Кажется, Stoned начал воспитывать автора раньше, чем пользователей.

Почему мне это интересно

Я не думаю, что миру срочно нужен ещё один трекер активности. Их и так достаточно.

Но мне кажется интересной сама категория маленьких digital-продуктов, которые находятся где-то между пользой, шуткой и экспериментом. Они не обязаны сразу становиться бизнесом. Иногда достаточно, чтобы продукт был законченным артефактом: его можно открыть, потрогать, обсудить, отправить другу и сказать: «Смотри, кто-то реально это сделал».

Stoned для меня именно такой проект.

Снаружи - приложение, которое награждает за неподвижность.

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

Мне нравится, когда шутка не заканчивается на уровне «ха-ха, прикольно». Когда она дожимается до работающей вещи.

Потому что в этот момент она перестаёт быть просто идеей и становится маленьким объектом реальности.

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

Возможно, кому-то нужен ещё один трекер привычек. А кому-то нужно открыть приложение, увидеть «Диван верит в тебя. Не подведи инвестора» и почувствовать, что сегодня можно не улучшать себя хотя бы пять минут.

Я выпустил анти-шагомер, который ругает за активность

Что дальше

Если проекту станет тесно в формате шутки, хочется добавить:

  • историю активности по дням, чтобы находить самый ленивый день недели;
  • больше скрытых ачивок;
  • тактильный отклик для чек-апа;
  • английскую версию;
  • лидерборд лени, если появится причина делать сервер и сдвигать с места offline-first архитектуру.

Пока Stoned просто вышел в RuStore. И, пожалуй, это уже неплохой результат для приложения, главная метрика которого — отсутствие лишнего героизма.

Stoned уже опубликован в RuStore. Если у вас Android и есть желание проверить, насколько уверенно вы умеете не спасать мир, ссылка будет ждать в первом комменте.