I'm using Spyglass nav app, it supports different maps, depending on my current needs: google maps, apple maps, open street map and open cycle map. It saves an opened map in a cache so you can use it later when offline. Pretty accurate if properly calibrated