![]() |
Thoughts on a tracking app for iPhone
Now and then a forum question is posted about iPhone tracking apps for bike touring. You know the deal: You want an online map to be updated with your location so friends and family back home can follow your progress.
For this type of thing I wrote an app called TrackMyTour. The app lets you update an online map as described above, but you must do it actively. In other words, you must manually add points whenever you want to highlight a location. This works well and keeps battery consumption at a minimum since the app isn't constantly monitoring your location. However, some people would like to do their tracking in a passive way (i.e., without manually entering anything). Most passive trackers I've seen double as a cycle computer that monitors your speed, altitude, location, calories, and bunch of other things. They work in the background, but also consume a lot of battery since the app is constantly monitoring your location. This is great for short trips but impractical for bike touring. In iOS 4.0 Apple introduced a feature for tracking "significant location changes" with the promise of consuming less power at the cost of accuracy. As far as I understand, this feature does not use satellite GPS and only generates updates whenever the phone switches from one cell tower to another (which is something your phone is doing anyway). For this reason it allows tracking with very little battery consumption. It also promises updates every ~500m, which is reasonable for touring. Where am I going with this? I'm wondering if a tracking app that takes advantage of this feature would interest the bike touring community. Or does anyone know if such a tracking application already exists? The app would likely upload your movements (at a configureable frequency) to a server, where friends and family can follow along, or you can embed the data into your blog or website. Anyway, if you have any thoughts or comments I'd like to hear it. Thanks. |
There is this site that does a great job with a number of ultra races. http://www.trackleaders.com/
|
From your description it sounds like the downside to your solution would be that it requires access to cell towers. I find that when I'm in rural areas, cell coverage can be a little spotty. In fact, if I notice that I'm getting poor coverage, or have reason to believe that I will, I've been known to power down my phone to save the battery power that gets wasted searching for a signal.
My solution to map tracking has been to use my iPad to track my route, but I don't share it passively. In fact, I turn off any cellular data, wifi, and bluetooth to conserve battery and rely entirely on the GPS chip. This turns out to be pretty easy on the battery. It can sit in my pannier all day tracking my route (using MotionX GPS) and still have plenty of juice to spare at the end of the day. Unfortunately, I don't think this can be replicated with an iPhone. I think the iPhone has only one setting with disables cellular and GPS at once (maybe I'm wrong about that, so someone should correct me). On my phone, the biggest battery drain when I'm not actively using it seems to come from trying to find a signal where there is none, so while your idea sounds great for good coverage areas, it seems like there'd need to be a way to fall back on GPS for those other times. And as for multi-function, route-tracking, cyclo-computer apps, I know that the location tracking is a battery drain, but in my experience, the biggest drain for any app is using the display. It might be worthwhile to do some battery tests using GPS tracking, but in a power-saving mode that keeps the screen off and maybe pings the GPS satellites at set intervals instead of constantly. It's hard to judge since the iPad battery is already longer lasting, but I find that GPS alone doesn't use that much power if all you want to do is save the location. |
You and I have talked about this before. Why can't you add a feature that wakes up every so often, say every 10 minutes, does a GPS check, stores it for download later, and then goes back to sleep. If the every 10 minutes is too often, then the user can make it longer.
|
Originally Posted by Rob_E
(Post 14919925)
From your description it sounds like the downside to your solution would be that it requires access to cell towers. I find that when I'm in rural areas, cell coverage can be a little spotty. In fact, if I notice that I'm getting poor coverage, or have reason to believe that I will, I've been known to power down my phone to save the battery power that gets wasted searching for a signal.
Originally Posted by Rob_E
(Post 14919925)
My solution to map tracking has been to use my iPad to track my route, but I don't share it passively. In fact, I turn off any cellular data, wifi, and bluetooth to conserve battery and rely entirely on the GPS chip. This turns out to be pretty easy on the battery. It can sit in my pannier all day tracking my route (using MotionX GPS) and still have plenty of juice to spare at the end of the day.
Unfortunately, I don't think this can be replicated with an iPhone. I think the iPhone has only one setting with disables cellular and GPS at once (maybe I'm wrong about that, so someone should correct me). On my phone, the biggest battery drain when I'm not actively using it seems to come from trying to find a signal where there is none, so while your idea sounds great for good coverage areas, it seems like there'd need to be a way to fall back on GPS for those other times.
Originally Posted by Rob_E
(Post 14919925)
And as for multi-function, route-tracking, cyclo-computer apps, I know that the location tracking is a battery drain, but in my experience, the biggest drain for any app is using the display. It might be worthwhile to do some battery tests using GPS tracking, but in a power-saving mode that keeps the screen off and maybe pings the GPS satellites at set intervals instead of constantly. It's hard to judge since the iPad battery is already longer lasting, but I find that GPS alone doesn't use that much power if all you want to do is save the location.
Thanks for your response! |
Originally Posted by chrisch
(Post 14920144)
I think the same could be done with the iPhone since it's possible to disable data, wifi, and bluetooth. How accurate does MotionX record your track? Is it configurable?
You're probably correct that you could disable most of the data protocols on an iPhone to save battery life. I would like to see battery use tests that compared the cell tower method with GPS, though. Especially in areas with weak or no signal. I guess, because we're talking iPhone, there's no real way around that (except maybe pulling the sim card), so either you have access to cell towers and can use that data, or you don't have access, and you can power down. I just find that full time GPS use seems to draw less power than searching for cell signals in a dead zone. So in a situation where both are available, cell tower data may consume less batteries, but in poor coverage, using GPS only might save battery life if you could get the phone to stop constantly looking for a signal. That's where the iPad works well for me: when I turn off cellular data, I turn off all communication or attempted communication with cell towers. Power lost from GPS usage then remains fairly small. An app that made the same thing possible on the iPhone would be welcome. An app that did the opposite, favouring cell coverage over GPS, could also be nice, but would probably see less use for me since every trip seems to take me out of coverage zones at least for a little while. What would really be nice is if there was a way to disable the cell chip on the fly, and an app could use cell data when available, but then turn the chip off for 15 to 30 minutes or so when no cell towers are found and switch on the GPS in that situation. But as far as I know, the cellular chip is either active, or the phone is in "airplane mode" which also disables the GPS. |
Hi Ray,
The standard location services in iOS (like in the Maps app) uses a lot more power than this low-power & less-accurate mode I described. According to their documentation: Use the significant-change location service instead of the standard location service whenever possible. The significant-change location service provides significant power savings while still allowing you to leave location services running. This is highly recommended for apps that need to track changes in the user’s location but do not need the higher precision offered by the standard location services.
Originally Posted by raybo
(Post 14920073)
You and I have talked about this before. Why can't you add a feature that wakes up every so often, say every 10 minutes, does a GPS check, stores it for download later, and then goes back to sleep. If the every 10 minutes is too often, then the user can make it longer.
|
When you say it uses "a lot more power" are we talking running the battery down in an hour, a few hours, by the end of the day?
Given how I choose to tour, I usually have access to power once a day (at night, on most occasions). If the higher power option meant I'd be out of power at the end of every day, then I wouldn't care. If it runs the phone down in a hour, then I'm not interested. By the way, when I am riding through remote areas, I do what those above said, which is to turn off the cellphone as searching for signal also runs down the battery (as does leaving the Wi-Fi setting on). So, if your less power option requires keeping the cellphone on, I'm not so sure it is the "lower power" answer. Why not offer both? |
Originally Posted by raybo
(Post 14920711)
Why not offer both?
|
Originally Posted by raybo
(Post 14920073)
You and I have talked about this before. Why can't you add a feature that wakes up every so often, say every 10 minutes, does a GPS check, stores it for download later, and then goes back to sleep. If the every 10 minutes is too often, then the user can make it longer.
chrisch: you may want to consider using the new "geofencing" APIs on CLLocationManager. Specifically: startMonitoringForRegion:desiredAccuracy: or startMonitoringForRegion:. The idea would be to setup a geofence around the user's current location with a radius of, say, 5 miles. When the user goes outside that radius your app delegate gets a notification (via locationManager:didExitRegion:) and you could then record their new position and setup a new geofence around their present position. Using this technique would allow you to "drop pins" at regular intervals along their route. You could make the size of the geofence configurable: on a local ride you might want pins every mile or two while on a cross-country trip you could get by with 10- or 20-mile intervals. |
Originally Posted by sstorkel
(Post 14922016)
chrisch: you may want to consider using the new "geofencing" APIs on CLLocationManager. Specifically: startMonitoringForRegion:desiredAccuracy: or startMonitoringForRegion:. The idea would be to setup a geofence around the user's current location with a radius of, say, 5 miles. When the user goes outside that radius your app delegate gets a notification (via locationManager:didExitRegion:) and you could then record their new position and setup a new geofence around their present position.
|
Originally Posted by Rob_E
(Post 14923272)
Wouldn't that be just as battery intensive? In order for the phone react to a change in location, it has to constantly monitor your location. I seem to remember battery longevity issues reported with people using geofencing on Apple's reminders app, but maybe I'm remembering that wrong.
I would hope that geofencing is reasonably efficient, though I'd certainly want to test it to make sure before I released an app. I'm sure the Smart Guys at Apple would have thought of all the same power-saving optimizations I've thought of in the last 5 minutes: piggyback geofencing on significant position changes if they're available, if significant position changes aren't reliable use location/speed/heading to determine how often to check GPS, etc. If there's a geofence around New York City, for example, and the device is currently in Los Angeles traveling at 10mph and headed south then you don't need to check GPS very often to see if you've hit the geofence. This sort of optimization doesn't work if you have lots of overlapping geofences near your current position, which is where something like the Reminders app could run into trouble. |
Thought I might pitch in with my experience about the iPhone and battery usage on a tour.
I used Track My Tour on my Trans America ride earlier this year, it was great but remembering to save my waypoint each time I stopped was a bit of a pain, but I got used to it by the time I made it to Kansas. I used my iPhone as my primary GPS, phone, camera (but not my basic cyclocomputer to tell me current speed) and I had my iPhone in a bag on my top tube. The GPS app I used was iSmoothRun and had it going in the background every metre of the trip and I'd upload the ride details to Runkeeper everytime I had WiFi. When I stopped to take a photo, have a drink or find a bit of shade I'd try to remember to add my waypoint, but I often found that I did forget and I'd stop again just to add the waypoint in the app. I found I could recharge the iPhone battery every night somewhere and in the entire tour I found that my battery dropped below 50% only on a few occasions, once when I did a 10hr 124 mile day from Rawlins, WY to Lander, WY but not too often. My rides averaged about 6-8hrs per day in the saddle. I did have a Morphie Juice Pack Plus on my phone, never needed to use it, but was happy that it was there. It would be a great addition to the app to add automatic waypoints, stored locally on the phone and then uploaded when back in cell or WiFi coverage. If someone is touring with an iPhone then battery is a consideration, personally I found that additional items like the juice pack don't weigh much compared to adding other devices to do the job. Having said all that, mine was a tour across the usa with easy access to charge my phone, if it was a more isolated tour, would I have done it differently, yes, would I still use the iPhone with battery backup, probably yes and I'd also add a solar battery charger. |
Originally Posted by sstorkel
(Post 14922016)
Apple's APIs pretty much make this impossible... They don't want to allow random code to run periodically in the background for fear that some misbehaving app will drain the battery and the user won't be able to figure out which one it is. In addition, this method would require firing up the GPS chip in full-power mode to obtain a position fix. Not as power-intensive as running the chip continuously, but it does use more juice than alternate methods.
chrisch: you may want to consider using the new "geofencing" APIs on CLLocationManager. Specifically: startMonitoringForRegion:desiredAccuracy: or startMonitoringForRegion:. The idea would be to setup a geofence around the user's current location with a radius of, say, 5 miles. When the user goes outside that radius your app delegate gets a notification (via locationManager:didExitRegion:) and you could then record their new position and setup a new geofence around their present position. Using this technique would allow you to "drop pins" at regular intervals along their route. You could make the size of the geofence configurable: on a local ride you might want pins every mile or two while on a cross-country trip you could get by with 10- or 20-mile intervals. The geofencing approach might be an idea, but I wonder how much location polling the OS must do to accurately detect such position changes. I guess it's something that just needs to be tested. I also appreciate that the iPhone will consume power when detecing a cell tower signal, which may make the significant update approach I originally described useless. This would also have to be tested, but isn't something I can test where I live. Perhaps a hybrid approach is required: Use the significant updates approach when available, but also have a "drop pin" button that uses the standard Location Services (i.e., satellite) to add a point. |
| All times are GMT -6. The time now is 07:23 AM. |
Copyright © 2026 MH Sub I, LLC dba Internet Brands. All rights reserved. Use of this site indicates your consent to the Terms of Use.