I've been using and loving MessageEase [1] for several years now. There's a learning curve, but as much typing as I end up doing on my phone, the investment was well worth it. It's also hugely customizeable and makes coding much easier on a phone--not that I make a habit of that.
[1] https://www.exideas.com/ME/index.php