Перейти к содержимому
Все записи

Одно приложение — одна задача: почему я не делаю супер-приложение

Любое растущее приложение сталкивается с давлением добавлять функции и сливаться в одну платформу. Вот почему MFKAPPS остаётся набором из шести небольших приложений.

MFKAPPS 4 мин чтения

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

Давление объединиться реально, но оно не про пользователя

Супер-приложения появляются не потому, что кто-то сел и спроектировал лучший возможный опыт для отслеживания потребления воды и списка покупок в одном месте. Они появляются, потому что объединение выгодно бизнесу, а не человеку с телефоном в руке. Одна установка вместо шести. Один логин, вокруг которого можно строить профиль. Одна иконка вместо шести, борющихся за место на главном экране. Любая метрика роста улучшается, когда всё живёт под одной крышей.

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

Во что объединённое приложение реально обходится пользователю

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

Есть и более тонкая цена. Смешение доменов смешивает данные. Приложению для напоминаний, которое заодно ведёт бюджет, приходится решать, что вообще значит «уведомление» для двух не связанных друг с другом задач, и ответом обычно становится экран настроек с сорока переключателями, которые никто не читает. Каждая неиспользуемая функция всё равно там, всё ещё загружена, всё ещё разрешение, которое приложение запросило, а вы дали не до конца осознанно.

Во что это обходится тому, кто это строит

Эту часть обычно упускают, когда оценивают супер-приложения со стороны, но это как раз та половина, в которой я реально живу. Я один человек. То, что Granyn отслеживает ваши траты, а Hydrame напоминает пить воду, никак друг с другом не связано — разные модели данных, разная частота уведомлений, разные крайние случаи, разные люди, использующие их по разным причинам в разное время дня. Скрутить их в одну кодовую базу не экономит усилия — умножает их. Релиз напоминания о гидратации теперь приходится тестировать ещё и против экрана бюджета, потому что они делят один бинарник. Падение в одной функции роняет в отчётах магазина всё приложение целиком, размывая сигнал для обеих. Онбординг вынужден объяснять две не связанные друг с другом вещи человеку, пришедшему за одной.

Маленькие, раздельные приложения означают, что баг в одном имеет радиус поражения ровно в одно приложение. Решение по дизайну, о котором я жалею, стоит мне одного переписывания, а не миграции по шести не связанным друг с другом наборам функций, прикрученным к общей оболочке. И, что важнее всего: я могу сказать «нет» запросу на функцию для Granyn, не превращая это в спор о том, относится ли она «к приложению» — потому что Granyn это только одно.

Тест, которым я реально пользуюсь

Прежде чем что-то добавить, я задаю простой вопрос: сможет ли незнакомый человек, воспользовавшись приложением один раз, объяснить, что оно делает, глядя только на иконку и название? Если ответ начинает нуждаться в «ну, ещё оно—», значит, эта функция принадлежит другому приложению — или вообще никакому. Именно поэтому OldSchool делает только напоминания о лекарствах, Stocky только отслеживает, что есть на вашей кухне, а Mintly — только таймер концентрации и ничего больше. Не потому что мне не хватает идей, что ещё они могли бы делать, а потому что каждое «ещё оно» — это маленький налог на то единственное, в чём приложение действительно было хорошо.

Где делиться действительно оправданно

Ничто из этого не значит, что приложения строятся изолированно друг от друга. Они делят общий язык дизайна, так что переключение между ними не ощущается как заучивание софта заново. Они делят одну и ту же локально-ориентированную архитектуру без аккаунтов, так что история про приватность одинакова везде. Они делят внутренние библиотеки для таких вещей, как планирование уведомлений и резервное копирование/экспорт, потому что это сантехника, а не функция, между которой выбирает пользователь. Чего они не делят — это единой базы данных, единого сценария онбординга или единой причины открыть приложение. Эта грань — общая инфраструктура, разное назначение — и есть вся стратегия.

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

// По теме

Ещё из журнала