For Android, I really like SwiftKey, and have been using it for years. Its predictions are very accurate and it (un)learns very quickly.<p>But since the last updates (maybe when they added emojis? I'm not sure) it has become laggy and unresponsive, sometimes I end typing a phrase and have to wait several seconds while I see the text painfully appearing one letter at a time in the screen. Also there is a period of 1-2 seconds after I send a message when I can't press any key, as it will be ignored. I don't use Flow.<p>However, it has something that I can't find in any other keyboard: two simultaneous languages. Every keyboard allows to select several languages and change between them, but in SwiftKey they work at the same time and you can use both seamlessly, and for me that's irreplaceable.