I always used used a slide-out hardware keyboard with my first two phones. The screens were simply too small for a usable on-screen keyboard. The first phone I had without a hardware keyboard was the Galaxy Note II. That's because the Samsung keyboard was far superior to a hardware keyboard and I have found nothing yet to equal it.
My new phone is a Nexus 6P for which unfortunately the Samsung keyboard is unavailable. The Google keyboard was its default. The Google keyboard is simply horrible:
* no number row - you must long press one of the keys on the top row to get a digit
* no long press of symbols - you must switch to a symbol layout to get any symbols beyond .,?!
* very imprecise, i.e., it isn't clear where one key ends and the next begins - there are no clear boundaries and trying to type an "s" might easily give you an "x", "a", or "d".
I installed the SwiftKey keyboard after reading that it does support a number row. In many ways it is better than the Samsung keyboard. Some posters have mentioned that it supports a "%" as a long-press key above the "q" key when you have the number row turned on. But it seems also to have problems. I had to turn off the auto-correct and auto-capitalize to maintain my sanity. I don't understand how anyone can use these features. Some people have reported that it lags (i.e., character doesn't appear in text being typed for seconds after it is pressed) on long documents. I haven't seen this problem yet, but if I do it is uninstall for Swiftkey. Others have said that it is a battery hog. I haven't noticed this problem yet either, but if I do, this will also be uninstall for Swiftkey. I wonder if auto-correct and auto-capitalize might be responsible for these problems. I have found the predictive text getting better and better as I use it. The one thing I still prefer about the Samsung keyboard is its precision - when I touched the "m" key, I got an "m" and not a ".", space, or carriage return.
This article is a great resource. If I do find that I have to uninstall SwiftKey (I hope not!), I will return here for suggestions of what to replace it with.