The developer created an offline hiking map application for mobile devices, supporting 48 regions. The app uses Expo SDK 57, TypeScript, and MapLibre for rendering. To ensure functionality without internet access, the system uses PMTiles for map data and a local SQLite database for storage.
Performance testing revealed that route planning on a smartphone was 90 times slower than on a laptop due to the lack of JIT compilation in the Hermes engine. To address this, the developer moved the graph processing to the server, delivering pre-built binary files to the app. This increased file sizes slightly but significantly reduced wait times for users.
The developer optimized map rendering by adjusting the refresh rate of the location marker to 400 ms and moving icon rotation logic to point properties. Additionally, data filtering was improved using Tippecanoe to remove unnecessary objects at specific zoom levels. These changes reduced the drawing time of the map after user interaction from 5979 ms to 387 ms.
Storage requirements were optimized by reducing the zoom level for elevation tiles and trimming map boundaries. The total size of the offline map set for 48 regions dropped from 31.9 GB to 26.5 GB. The cost for hosting this data is now 55 RUB per month.
For point-of-interest lookups, the developer opted to store a separate small file containing object data rather than querying the map layers directly. This approach ensures fast offline access to information about peaks, springs, and other landmarks without complex architectural overhead.






