Actually, it's an interesting question. I've done a little digging, and I think you may find openstreetmap apps best for you, and you can always contribute to the mapping to make it even better.
There are a bunch of mountain biking focused apps which may work for you - mountain bikers are particular about surface types too.
See
OSM Routing Apps
Just note they are not all just for iOS...