I use Osmand Maps for Android, after investigating several offline mapping programs for Android.
The interface takes some getting used to; it's not the most intuitive so you have a learning curve. The maps are based on OpenStreetMap data, they are available for most places as far as I can see, and their quality is decent. They are not as accurate as Google maps. Example: I was in Barcelona last March and the software could find the street fine, but not exactly the house number. That's a a minor annoyance when you're driving and take a left turn where you need a right one.
It is free for up to 10 map downloads (maps change regularly, you decide when to update), otherwise $6.95.
Three caveats:
I have not had enough experience with its turn-by-turn directions with voice guidance to actually rate this. It seems to work.
As with any other GPS based navigation software, quality of directions depends on the quality of the received GPS signals and the speed with which you are moving. For a pedestrian in a city, expect temporarily unclear directions.
No satellite view
(Added) O yes, one big plus: I asks ony for the permissions it needs.