Roam.ai brings even more flexibility and battery saving to your location based app

Every app user has experienced the frustration of high battery drain while using apps with location components. Once a user checks their settings and discovers your app is the culprit, two things are likely to happen: location permissions will be turned off or the app will be deleted altogether.

As a developer, you want to be able to integrate location components into your app to personalize the experience and gain valuable insights that can help improve your product without losing your user’s trust in the process. Traditionally, increasing battery efficiency of location-based apps meant fewer location updates and, importantly, less accurate location data.

Roam.ai brings you a flexible solution that never compromises the accuracy of location updates. Using three adaptive tracking modes as well as time or distance internal tracking, choose the right balance between battery consumption and frequency of location updates to suit your specific use case.

Adaptive location tracking modes

We have developed three adaptive tracking modes with varying frequencies of updates and levels of battery drain:

Method Name Distance Frequency Battery Drain
Active Tracking High Frequency; 25m~250m High Battery Drain; 6%~12%
Balanced Tracking Medium Frequency; 50m~500m Medium Battery Drain; 3%~9%
Passive Tracking Low Frequency; 100m~1000m Near 0% Battery Drain; 0%~1%

Roam.ai utilises a dynamic approach based on the frequency of updates and the speed a user is traveling. The faster a user is moving, the fewer location updates are required to track the path of the user and fewer updates are sent to the server, saving significant battery.

Distance interval tracking

If your app requires more conventional or consistent methods of location tracking, you can choose to get location updates at specific preset distance intervals.

Type Unit Unit Range
Distance Interval Meters 1m ~ 2500m

Time internal tracking

If you need to track your users at specific times, you can choose to implement tracking at your chosen time interval. The further apart the intervals, the lower the battery drain.  

Type Unit Unit Range
Time Interval Seconds 10s ~ 10800s

Note: Time Interval is now only available on Android. iOS will launch soon.

Which location tracking mode is right for my app?

The tracking mode we recommend you use will depend on your specific use case.

The Active mode is perfect for use cases that require real-time accurate tracking as ride-hailing services and fitness apps. With high-frequency of updates and 10-meter precision accuracy, ensure your users are always informed about the exact location of their driver.

The Balanced mode is suitable for use cases that require less frequent location updates such as on-demand services. This mode efficiently and accurately connects suppliers with consumers for food delivery, grocery delivery services and logistics.

The Passive mode is suitable for use cases that do not require real-time location tracking such as consumer and social apps. For example, use cases where you need to send relevant location-based push notifications such as retailers and restaurants.

You can also use time or distance interval tracking to create a solution that fits your specific use case. If you choose more frequent location updates, your users' battery will drain faster.

Example location tracking mode

Below you’ll find an example of a custom tracking mode if your use case needs fitness level location tracking. In this use case, the user will be able to accurately track their running, cycling or walking path accurately with frequent location updates, even when the app is running in the background.

//Update location based on distance between locations.
GeoSparkTrackingMode trackingMode = new GeoSparkTrackingMode.Builder("DISTANCE IN METERS", "STATIONARY DURATION IN SECONDS")
                        .setDesiredAccuracy(GeoSparkTrackingMode.DesiredAccuracy.HIGH)
                        .build();
                        
//Update location based on time interval.
GeoSparkTrackingMode trackingMode = new GeoSparkTrackingMode.Builder("TIME INTERVAL IN SECONDS")
                        .setDesiredAccuracy(GeoSparkTrackingMode.DesiredAccuracy.HIGH)
                        .build();

Read our iOS and Android documentation to configure tracking modes into your app. Or contact us here and we’ll be happy to help you find the best solution for your needs.

Get started with Roam.ai for free

If you’re interested in creating battery-efficient location apps with uncompromised accuracy, get in contact with a member of our team or get started for free.