SK SERGEY KOLEDADIGITAL BOUTIQUE

Цифровой разбор · 59

Mini App помнит выбор: что можно хранить на телефоне, а что должно жить на сервере

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

Сергей КоледаDigital BoutiqueВыпуск серии · сентябрь 2026Опубликовано
Вера переносит фиолетовую прозрачную карточку выбора к арке серверной записи, красная закрытая ячейка остаётся вне маршрута
От проблемы – к решению Память о выборе не должна притворяться записью сервиса.
Содержание

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

Короткий ответ

На телефоне оставляйте только обратимый и не секретный контекст, который помогает продолжить действие. Запись, право на действие и актуальный статус должны жить на сервере. А пароль, ключ, платёжные и восстановительные данные не должны попадать в обычную память приложения вовсе.

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

Память о выборе не равна правде о сервисе

Человек выбрал марку автомобиля, размер, дату, адрес или вариант услуги. Приложение запомнило этот шаг и при следующем открытии показало его снова. Для посетителя это удобно: не надо повторять путь с нуля. Но в этот же момент возникает опасная подмена. Экран начинает выглядеть так, будто всё выбранное по-прежнему доступно, закреплено и разрешено.

На самом деле один и тот же экран может хранить три совершенно разные вещи. Фильтр «показать шины для этой машины» только помогает смотреть каталог. Запись на 17:00 уже касается работы команды. А право отменить заказ или войти в личный раздел вообще нельзя выводить из того, что на телефоне осталась старая карточка.

Я бы начинал не с вопроса «где технически хранить», а с более простого: что случится, если телефон потеряли, открыли с другого устройства или условие изменилось за ночь? Если ответ звучит «ничего страшного, человек просто увидит прежний контекст», это кандидат для локальной памяти. Если сервис обязан узнать, продолжить или запретить действие, одному телефону доверять уже нельзя.

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

Лина кладёт лаймовую прозрачную карточку фильтра в небольшую нишу на модели телефона
Локальный контекстТелефон помнит путь, который можно безопасно собрать заново.

На телефоне оставляйте контекст, который не жалко перепроверить

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

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

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

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

Ян проводит циановую прозрачную карточку записи через серверную арку к посетительнице
Серверная записьСервис отвечает только за то, что может проверить и продолжить.

На сервере живёт то, что сервис обязан продолжить

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

Здесь важна не любовь к серверу как к волшебному шкафу. Важна ответственность. Если администратор видит запись, если человек ждёт ответ по ней, если другой телефон должен показать тот же результат, перед нами уже не просто удобный интерфейсный след. Нужна серверная запись с понятным владельцем, состоянием и правилами изменения.

Внутри Mini App человек может открыть приложение из разных мест и вернуться не тем же маршрутом. Поэтому серверная проверка должна заново устанавливать, кто пришёл и имеет ли он право видеть или менять эту запись. Данные, которые пришли в экран при запуске, сами по себе не становятся достаточным основанием для такого решения. Их сначала проверяют на стороне сервиса.

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

Карл снимает красную прозрачную ячейку с ключом с модели телефона и убирает её в закрытый контейнер
Красная корзинаУдобно сохранить не значит безопасно оставить.

В обычной памяти телефона не место секретам и чужому праву

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

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

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

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

Глеб раскладывает пять карточек маршрута в три прозрачные корзины хранения
Один маршрутПять полей спорят с архитектурой быстрее, чем список функций.

Разложите один маршрут по трём корзинам до разработки

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

Напротив каждого поля ответьте на четыре вопроса. Можно ли безболезненно потерять его вместе с телефоном? Должен ли его увидеть сотрудник или другой телефон? Даёт ли оно право совершить действие? Может ли оно измениться без участия человека? Первое поле обычно уходит в локальную корзину. Второе и третье требуют серверной записи. Четвёртое часто означает: локальная копия допустима только как контекст, а перед действием нужен новый серверный ответ.

Раскрытая рабочая книга с заполненной картой пяти полей Mini App, распределённых между локальным контекстом, серверной записью и запрещённым обычным хранением

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

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

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

Сначала срок жизни состояния, потом место хранения

Mini App не становится лучше от того, что умеет помнить больше. Хороший результат появляется, когда человек быстро узнаёт свой контекст, а сервис не делает вид, что прошлый экран равен актуальному обязательству. Телефон продолжает путь. Сервер хранит и подтверждает то, за что сервис отвечает. Секреты не прячут в обычную память ради удобства.

Исключение простое: если Mini App вообще не создаёт запись, не даёт доступа и не меняет условий, отдельная серверная модель может оказаться избыточной. Но как только выбор превращается в заказ, бронь, личное право или действие команды, вопрос уже не про красивое сохранение. Он про источник истины.

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

Частые вопросы о памяти Mini App

Нужно ли отправлять на сервер каждый фильтр?

Нет. Если фильтр нужен только для удобства текущего выбора и его потеря не меняет право, цену, наличие или работу команды, он может остаться локальным. Сервер нужен, когда этот выбор должен стать общим и подтверждённым состоянием.

Можно ли показать человеку старую цену или свободное время?

Можно показать их как прошлый контекст, но не как действующее условие. Перед записью, оплатой или подтверждением сервис должен проверить актуальное значение и честно показать, если оно изменилось.

Зачем сервер, если приложение открывают только внутри Telegram?

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

Защищённое хранилище телефона решает всё?

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

Когда достаточно вообще ничего не сохранять?

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

Проверено 14 сентября 2026

Источники и полезные продолжения

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

Лина разводит лаймовый маршрут к пиктограммам человека, письма и сообщения
Если разбор пригодился

Поделитесь этим разбором с тем, кому он сейчас пригодится.

Откроем системное меню или скопируем ссылку. Аккаунт, форма и комментарий не нужны.

Три корзины за двадцать минут

Возьмите один маршрут

Не «личный кабинет», а выбор, запись или заказ, который человек должен продолжить позже.

Выпишите пять полей

Отметьте для каждого: потеря устройства, другой телефон, право на действие и возможность изменения.

Назовите хозяина

Контекст можно оставить локально. Запись получает сервер. Секрет не попадает в обычную память.

Дальше по задаче

От вывода – к проверяемому примеру и разговору