← ко всем постам
TripTrack · 4 мин ru

😄 Вчера добил замечания Apple по текстам геолокации и отправил билд на повторное ревью. Очень…

День 23/30

😄 Вчера добил замечания Apple по текстам геолокации и отправил билд на повторное ревью. Очень хочется, чтобы 0.1.0 наконец увидела свет

А сегодня утром поймал другую историю — уже про сам трекинг.

Поехал по городу, где у нас глушат GPS и «белые списки» (вечером стабильно включаются и работают до утра). Включил запись, ушёл в навигатор, доехал. Открываю трек — и на поворотах он будто срезает углы прямыми линиями, как будто я телепортировался. 😮

Сначала подумал: ну всё, я накосячил. Потом вспомнил, что в Яндекс.Картах (навигаторе) было переодически тоже самое, моя точка GPS постоянно плавала в определенных местах, просто он агрессивнее «достраивает» картинку и додумывает где вы можете быть в данный момент. То есть это не «TripTrack сломан», это реальность: когда сигнала нет, у нас честная математика — нет точки, нечего записать. Когда сигнал возвращается, получается рывок — и визуально это выглядит как срез.

Сейчас приложение на 100% завязано на GPS. Пропал сигнал — точки нет. Вернулся — тянем прямую к новой точке. Вот тебе и «телепортации».

💻 Решения:

🔧 Первого уровняKalman-фильтр: классика из навигации, сглаживает шум и умеет на короткое окно предсказывать позицию по инерции последнего вектора, когда данные пропали.

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

Поэтому фильтр работает на чистом GPS: скорость, курс, точность. Если сигнал пропал — держим предсказание до примерно 10 секунд. Этого обычно хватает, чтобы пережить короткие провалы и не превратить поворот в «лесенку из прыжков».

😊 Второго уровня — пост-обработка после остановки поездки: проходим по точкам, находим дыры и аккуратно заполняем их плавными кривыми. Для длинных отвалов (тоннель, минутное глушение) иначе всё равно не вытянуть — после 10 секунд без GPS телефонные датчики в фоне не спасают, они начинают врать.

И отдельно — UX, который я давно хотел закрыть нормально. Помните первый Reject: ревьюер тапнул «старт», а у меня был long press 0,4 секунды — для него это выглядело как сломанная кнопка. Убрали long press, сделали обычный тап — прошли. Но обычный тап всё равно лично у меня, если свернуть приложение на экране Records, начитает поездку.

В Threads подсказали вчера: теперь вместо кнопки — горизонтальный slide to start: тянешь ползунок до конца, запись стартует. Как старый slide to unlock. Случайно в кармане не включишь, для Apple это очевидный жест, глазам всем понятно.

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

Сегодня технический пост, ожидаем ревью.

Подумываю на счет создания YouTube канала на английском, раз РУ сегмент заходит только лишь текстом. Подумаю. Посмотрим. Хотелось бы, чтобы TripTrack увидел мир, попробовал, потрекал.

С вами интересно общаться именно в формате текстов, глубоко и осмысленно, в РУ-сегменте моя родная, комфортная гавань, а там хочется попробовать, потестить, поиграться. Ну короче вы поняли 🎣

OneZee TripTrack — день 23/30