Без аккаунтов, без паролей: почему в моих приложениях нет экрана входа
Шесть приложений, ноль форм регистрации. Вот реальная причина полного отказа от аккаунтов — во что это обходится, что убирает и где проходит граница.
Granyn, Hydrame, Subly, Stocky, Mintly, OldSchool — шесть приложений, шесть разных задач, и ни одно из них никогда не показывало вам форму регистрации. Ни поля для email, ни правил для пароля, ни письма «подтвердите аккаунт», непрочитанным лежащего в папке спама. Вы открываете приложение — и оно работает.
Это не недосмотр. Это стандартная отправная точка для любого приложения, которое я начинаю делать, и мне приходится активно отговаривать самого себя, когда кажется, что какой-то функции нужен аккаунт.
Default, который никто не подвергает сомнению
Создание аккаунта стало первым экраном почти любого приложения, включая множество таких, у которых нет реальной причины его требовать. Трекеру продуктов в кладовой не нужно знать, кто вы, чтобы запомнить, что у вас закончились яйца. Приложению для бюджета не нужен ваш email, чтобы отнести покупку кофе к нужной категории. В какой-то момент «сначала зарегистрируйтесь» перестало быть осознанным решением и стало рефлексом разработчиков — скопировать шаблон, подключить авторизацию, выпустить релиз.
Цена этого default целиком ложится на пользователя, ещё до того, как он увидит хоть одну функцию: пароль, который нужно придумать, капчу, которую нужно решить, письмо, которое нужно подтвердить, иногда номер телефона для «верификации». Это реальное трение, оплаченное авансом при каждой установке — за нулевую ценность.
Что аккаунт на самом деле покупает — и кому
Будем честны насчёт этой сделки: аккаунт в основном выгоден разработчику, а не пользователю. Он даёт вам стабильный идентификатор, вокруг которого можно строить аналитику, рычаг для повторного вовлечения людей через email и способ обосновать подписку словами «ваши данные — в нашем облаке». Ничего из этого не является злом само по себе, но и бесплатным не является тоже.
Взамен вы платите: сервер, хранящий персональные данные, базу данных, которая теперь является целью для утечки, поток восстановления пароля, который нужно построить и поддерживать, и почту поддержки, заполняющуюся тикетами «я забыл пароль» и «удалите мой аккаунт». Для разработчика-одиночки это не мелочь — это целое второе приложение, работающее рядом с тем, ради которого люди на самом деле пришли.
Что local-first ставит вместо этого
Вместо аккаунта каждое приложение обращается с устройством как с аккаунтом. Данные живут в локальной базе SQLite через Room с самого первого запуска. Входить некуда, потому что на сервере нет ничего, что ждало бы, чтобы его востребовали.
Резервное копирование и восстановление всё ещё существуют — просто им не нужно имя пользователя, чтобы работать. На Android это означает экспорт/импорт через Storage Access Framework для переносимого файла, который контролируете вы, плюс Auto Backup for App Data как страховка, о которой вообще не нужно думать. Если телефон выйдет из строя, вы восстанавливаетесь из этого файла, а не из пароля, который вы якобы должны помнить полтора года спустя.
Granyn — самый наглядный пример. Это приложение для бюджета — категория, которой люди меньше всего готовы доверять вход, потому что аккаунт для бюджета подразумевает сервер, знающий ваш доход и привычки трат. Granyn никогда не спрашивает, потому что ему никогда не нужно знать, кто вы, — только то, что вы потратили.
OldSchool доказывает то же самое с другой стороны: это данные о приёме лекарств, одни из самых чувствительных персональных данных вообще. Правильный объём инфраструктуры для отслеживания того, приняли ли вы таблетку, — нулевой: ни сервера, ни входа, ни третьей стороны, которую можно было бы взломать.
Честный компромисс
Это не бесплатно. Отсутствие аккаунта означает отсутствие автоматической синхронизации между двумя телефонами. Если вы меняете устройство, вы экспортируете и импортируете данные вручную — один лишний, но осознанный шаг вместо невидимой фоновой синхронизации, корректную работу которой пришлось бы доверить серверу. Это также означает отсутствие момента «я потерял телефон, вхожу с нового — и всё возвращается». Файл резервной копии и есть аккаунт, и потерять его без резервной копии — значит потерять данные.
Я считаю, что для того, чем занимаются эти шесть приложений, такой компромисс того стоит. Ни одно из них не предполагает совместную работу — никому не нужно делиться инвентарём кладовой с незнакомцем или журналом потребления воды с командой. Если бы какой-то функции действительно требовалось, чтобы несколько человек видели одни и те же данные в реальном времени, именно тогда аккаунт начал бы оправдывать свою цену. Ни с одним из шести приложений я пока до этой точки не дошёл.
Где на самом деле проходит граница
Правило, которым я пользуюсь, простое: если функция может работать, не зная, кто вы, у неё нет права это спрашивать. Экран входа — это не настройка по умолчанию, а конкретный компромисс, который конкретная функция обязана оправдать в обмен на что-то, что пользователь может почувствовать: синхронизацию, совместный доступ или сервис, который действительно не может работать на устройстве. Без этого честный ответ на вопрос «почему нет регистрации» звучит так: строить её никогда не было веской причины.
// По теме
Ещё из журнала
Бюджет при нерегулярном доходе: система, не рассчитанная на стабильную зарплату
Большинство советов по бюджету исходят из того, что каждый месяц приходит одна и та же сумма. Вот система для фриланса, комиссионных или сезонного дохода, которая действительно работает.
Одно приложение — одна задача: почему я не делаю супер-приложение
Любое растущее приложение сталкивается с давлением добавлять функции и сливаться в одну платформу. Вот почему MFKAPPS остаётся набором из шести небольших приложений.
Настройка напоминаний о лекарствах для члена семьи: руководство для того, кто заботится
Практическое руководство о том, как помочь родителю или партнёру не сбиваться с приёма лекарств — что настроить, чего избегать и как узнавать о делах, не превращаясь в надзирателя.