Разработчик создал офлайн-приложение для планирования походов, охватывающее 48 регионов. Сервис использует Expo SDK 57, TypeScript и MapLibre для работы с картами. Все данные, включая тропы и высоты, хранятся локально в формате PMTiles и базе данных SQLite, что позволяет приложению функционировать в авиарежиме.

Тесты показали, что прокладка маршрута на смартфоне работает в 90 раз медленнее, чем на ноутбуке, из-за особенностей интерпретации кода в движке Hermes. Решением стал перенос построения графа на сервер: приложение скачивает уже готовые двоичные файлы. Это увеличило размер файлов, но устранило задержки при поиске пути.

Для оптимизации отрисовки карты частоту обновления маркера местоположения ограничили до 400 мс, а фильтрацию объектов настроили через Tippecanoe. Это позволило исключить отрисовку лишних данных на неподходящих зумах. В результате время дорисовки карты после взаимодействия сократилось с 5979 мс до 387 мс.

Объем данных для 48 регионов удалось сократить с 31,9 ГБ до 26,5 ГБ за счет снижения зума тайлов высот и оптимизации границ районов. Стоимость хранения такого объема данных на сервере составляет 55 RUB в месяц. Эти меры позволили сбалансировать вес приложения и скорость его работы.

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