I use an app called VTree (Virginia Tech Tree Identification). It works on an iPhone, not sure about Android. You supply your location and can then download onto your phone a database of woody plants found in your locale. For each tree, the DB contains descriptions and pictures of the leaf, flower, fruit, twig, bark and form of the tree, along with a map showing where that tree can be found in North America.
Unlike some of the other apps mentioned, you can't take a photo of a leaf, say, and have it make a guess as to the species. You do need some idea of what kind of tree you're looking at. But you can limit the results found by searching for all or part of a species name (such as oak, cherry, hickory, etc.), so if you want to distinguish between two different types of hickory, for example, this can be a big help.
Another app you can use is iNaturalist. That app does allow you to take a picture and have it make an attempt to identify the species. As with PlantSnap, it does an ok job on automatic identification but there are times it's way off. iNaturalist allows you to post your "observation" (aka photo), then other users can see that and can chime in to identify the plant (or insect, bird, mammal, etc). I have found that such suggestions by other users are invariably correct. (But I do try not to be the guy that continually relies on others to do the work of researching what it might be.)