Google probably knows everything, give or take realistic travel time taking into account for traffic. As part of a larger project for 2018, I'm trying to move my service usage away from Google products. One of Google's most useful is their Maps product, and the richness of their dataset makes it hard to replace. By compartmentalising the problem and working it, it's easier to find various solutions.
When Apple first launched their Maps product, it was somewhere between woeful and laughable, but one has to start somewhere. Since 2011, it's grown, and now gives accurate directions, well integrated into the OS (one would hope), including public transit for metropolitan areas that matter to me. Most notably, it lacks cycling directions, but it does have good walking directions (and as part of compartmentalisation, I've broken this out as a specific need later). This presumes one is using iOS, which I am.
Whilst Google's cycling directions are acceptable, it makes poor decisions that don't take into account for road surface types. Once, it suggested that I cycle ~20km along a gravel road, when there was a perfectly good quiet tarmac road running near it in the same direction, I imagine because the gravel road showed less traffic.
For cycling directions, I like to use Garmin: they have popularity heat maps per sport type, and a range of useful PoIs, including potable water. For a long, specific ride, I will plan it out in advance, and load the GPX route onto my Edge 1030.
For a shorter route, I'll probably trust either the built-in Garmin routing, or use Komoot, which plans a good route, gives a time estimation, and tells one what substrate one is likely to encounter (road, bike path, dirt, caltrops, &c). Komoot has Android and iOS maps, and can be used as a stand-alone planner.
An advantage of both my Edge 1030 and my Fēnix 5x is that they have offline maps storage, and are capable of making routing decisions, with turn by turn directions, without an internet connection. The Fēnix is slow for a longer route, but it'll get there (eventually).
Extra-urban and hiking mapping and directions
Outside of a metropolitan area, mobile coverage is more likely to be less available. I'll use a mix of the maps on my watch, or Galileo, which allows for downloading of good-quality maps for offline usage. Galileo is available for both iOS and Android, but I don't think there's feature parity yet. There's also the issue I've experienced on Android, where without cellular coverage, the GPS positioning of the device is very poor, so much so that I may as well use a paper map and compass.
Komoot is also good in this category.
Things to avoid: Open Street Maps cycling directions
As used by Wahoo, these directions seem to be aimed at reducing the number of cyclists on the road. The mapping model seems to be 'draw a straight line on the map, match to the nearest roads, without taking anything into consideration'. The first time, it suggest I ride down a goat trail running along the side of a steep slope, before things got worse. The second time, it suggested riding through several closed car parks, then up and down a series of very steep hills. Whilst I like the hills, they weren't suitable for everyone I was riding with, and regardless of that, they were taxing.