There are two apps I've used, but it's been awhile since I've used them and I know they've both gone through a number of updates and improvements. They're pretty cheap. B.iCycle is one and the other is Cyclemeter. At the time I used these they recorded all your data and saved your tracks on the map, but you couldn't download a preplanned course to navigate. I know you can do that now in Cyclemeter but am not sure about B.iCycle. Battery life can be an issue for longer rides and you need a data connection for them to depict maps as you ride.
I currently use a Garmin 705.