# Limitations

## Google Directions API

A limitation to our auto-routing algorithm is that we can only rely on the data Google collects for its Directions API, therefore the route would most likely be along roads or any path that Google deems safe.\
\
Footpaths or running tracks may not appear in our route generation. This depends on whether Google has the data on such paths.\
Routes leading into restricted areas (like any army camps) or into closed-off pathways might appear. This is dependant on how up-to-date Google is with its pathfinding algorithm.&#x20;

## Background Location Tracking for iOS devices

This is a limitation by the Expo Client for iOS devices specifically (see [here](https://forums.expo.io/t/background-location-not-working/23433/3)).&#x20;

The only way to allow background location tracking on iOS devices with projects created using Expo is to build a standalone application that is deployable to the Apple App Store. However, that requires a paid Apple Developer Account.&#x20;

This limitation does not exist on Android devices as Expo is able to build and publish an APK for us.&#x20;

We have tested the background location tracking to be working on an iOS simulator, Android Studio emulator, and a physical Android device.

Therefore, if you want to test the tracking on a physical iOS device, you will have to leave your device unlocked. (apologies…)

## Running Logs

Initially, we planned to have all of the user's running records to be displayed. However, we realized that as the user goes on more runs, the total count of runs would accumulate and eventually reach a considerably large number.&#x20;

This would greatly affect the performance of the app as queries to firebase would become slow due to the sheer amount of past runs to retrieve from the real-time database. In order to counter this, we decided to limit the amount of data that we are querying from firebase to 100. We also considered that having 100 past runs is a comfortable amount for the user's reference.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://run-mania.gitbook.io/run-mania/limitations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
