Интерфейс приложения Mock Location

Работающая копия приложения прямо в браузере: нажимайте кнопки, тащите карту, открывайте списки. Номера на полях объясняют, за что отвечает каждый элемент, а разбор текстом — ниже.

9:41
Мои локации
3 сохранено
📍
🏪
📍
Авторизация

Войдите, чтобы синхронизировать избранное и историю

mocklocation.ru
© OpenStreetMap
Карта
Карта интерфейса

Все состояния приложения на одной странице

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

Экран карты: всё управление поверх карты

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

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

Кнопка подмены
Короткое нажатие включает и выключает фиктивную геолокацию. Отдельной кнопки «запустить» на карте нет: точка ставится прямо касанием по карте, а эта кнопка отвечает только за то, включена подмена или нет.
Поиск
Открывает панель со строкой поиска и сохранёнными местами поверх карты. Карта под ней размывается, но остаётся видна.
Голосовой ввод
Диктовка адреса вместо набора: приложение распознаёт речь офлайн и ищет названную точку.
Масштаб
Плюс и минус. Удержание повторяет шаг, пока держите палец, — на длинных приближениях это заметно быстрее серии нажатий.
Текущее местоположение
При выключенной подмене возвращает камеру к реальной точке и заново её перепроверяет. При включённой — та же кнопка ведёт камеру к подменённой точке: следить за реальным положением в этом режиме нечего.
Аккаунт
Панель входа. Аккаунт общий с сайтом, и именно он связывает списки на телефоне с личным кабинетом.
Подсказка сверху
Требования к настройкам до первого запуска, адрес и координаты выбранной точки — после. Она же кнопка: нажатие ведёт в нужный раздел системных настроек.
Точки на карте
Синий кружок — реальное положение по данным системы. Зелёная булавка — точка, которую видят остальные приложения, когда подмена включена.

Поиск, избранное и история

Панель поиска устроена как один список с двумя вкладками. «Все» — это история: каждая точка, на которую вы когда-либо переносили подмену, попадает туда автоматически. «Избранные» — то, что вы отметили сердечком вручную. Строка поиска ищет одновременно по адресам через геокодер и по уже сохранённым записям, поэтому знакомое место находится по своему названию, а не по адресу.

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

Названия и иконки правятся на месте. Удержание строки превращает её в поле ввода — адрес из геокодера редко читается как название места, и переименование здесь нужно чаще, чем кажется. Удержание квадрата с иконкой открывает сетку из 15 эмодзи: самокат, машина, дом, магазин — чтобы курьерские точки отличались от домашних одним взглядом. Кнопка «Очистить» удаляет весь список сразу, но тут же превращается в «Вернуть» — окно отмены живёт, пока открыт экран.

Подробности про лимиты списков на бесплатном тарифе — в разделе «Места, поиск и история».

Аккаунт и синхронизация

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

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

Что именно даёт подписка, описано на странице тарифов, а вопросы про устройства и синхронизацию собраны в разделе «Аккаунт и синхронизация».

Скрытые режимы: что живёт на удержании

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

Удержать кнопку подмены
Режим блокировки: касания по карте и кнопкам перестают срабатывать, живой остаётся одна красная кнопка. Смысл — «телефон лежит в кармане, а точка едет со мной». Выход — тем же удержанием; короткое нажатие в этом режиме намеренно не делает ничего.
Удержать кнопку местоположения
Карта разворачивается по направлению движения. При включённой подмене жест не работает: камера в этом режиме принадлежит выбранной точке.
Удержать плюс или минус
Масштаб меняется шагами, пока палец на кнопке.
Удержать строку списка
Переименование записи прямо в строке, без отдельного диалога.
Удержать иконку записи
Сетка из 15 иконок для этой записи.
Удержать подсказку с требованиями
Скрывает пункт, который не удаётся закрыть настройками, — например, когда прошивка не показывает нужный переключатель.

Что дальше

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

Если прошивка выгружает приложение из памяти и подмена слетает сама, смотрите разборы под конкретные оболочки: Xiaomi (MIUI и HyperOS), Samsung Galaxy и Huawei без сервисов Google.