Been using BikeMateGPS for my iPhone. Usually go around ~30 miles and it doesn't kill the battery. I like the UI on it too, saves all your rides you want it to. Not sure about the speed accuracy but I've used it driving and it was pretty much on with my spedometer.