I've been using a few apps lately on my phone and here are my thoughts:
For showing current info (speed, distance, cadence etc):
IpBike. Almost shows too much info on the screen but can be changed somewhat. Can connect to Ant and Bluetooth speed/cadence sensors and not use GPS.
The other recommendations here I have not fully tried but they look good too.I do not know of any app which allows complete customization of the screen though.
For following a pre-defined route - eg GPX file:
Paid app - Ride with GPS. Auto loads from PC to the phone.
Free app - Osmand. Use Google Drive to get file on phone and open in Osmand. Has turn by turn directions and lots of customizing available. Maps are usable offline too.
To find a route while riding (eg route to the nearest bike store)
Komoot -Auto re-directs if you take a wrong turn and you can change settings to be more aggressive (ie more hills) or easier riding. Voice is clear and works well. Better than google maps IMHO but it works OK too.