I've been using an Android phone (Samsung Galaxy S4) for months, since I let my iPhone 4S go. Overall the experience is "meh" but there's one feature that stands out and makes me want to stick with Android: Swype.
Of course Swype is not a feature of Android, but Android is alone among the major mobile operating systems to allow developers to write software replacement keyboards, of which Swype is one. As you'll see in the screen shots below, some of these programs have really interesting innovations.
And I'm only an English speaker. Surely in other languages there are unique opportunities to add value with replacement keyboards.
I won't attempt here to evaluate or compare them, as I have only spent real time with Swype. Some of the other Android replacement keyboards are:
Apple has said many times in the past that they don't allow such programs for security reasons. At one level I understand the concerns about security. Apple has kept their ecosystem safe for users in no small part by rigorously controlling what apps are for sale in the App Store. Microsoft is attempting to replicate that model.
So if it were necessary to hack into the kernel or otherwise compromise the OS in order to change the keyboard software it would be reasonable to block it. But I don't think that's necessary.
Android defines interfaces for software to follow in order to write these programs. If I read it right, this is the documentation for the keyboard implementation class and this is an article generally on defining input methods in software.
Is there something inherently insecure in letting programs implement such interfaces? There's no reason why such software needs to be particularly privileged, but perhaps, in order to allow a program to implement a system keyboard one needs to give it the ability, if buggy, to make the system unusable. That's just a guess.
I asked Microsoft why they don't allow such programs, either on Windows Phone or Windows 8. A Microsoft spokesperson made this statement:
Input is core and fundamental to the experience of using a phone, tablet or PC, and we’ve invested significant resources in the consistent, high-quality user experience of Windows Phone and Windows 8. On Windows Phone 8, our Word Flow keyboard is among the things that make Windows Phone great for text input of all kinds; whether it’s text messaging, email, or writing a Word document. With Windows 8, we set a very high bar for the quality of the experience and effectiveness of input with the Windows 8 touch keyboard.
I can certainly understand their concerns about the consistent UI. It's a big part of their grand strategy to ape what appeared to work for Apple with the iPhone. In fact, perhaps this really is Apple's main concern with installable keyboards as well, but Apple was too embarassed by their laughably out of date keyboard to defend it.
Microsoft, on the other hand, did a good job with their default touch keyboard, which they call the Word Flow keyboard in Windows 8 and Windows Phone. It's far better than the iOS keyboard and, I think, better than the default keyboard in Android. They point with pride to its prediction capabilities, and they are pretty good. Furthermore, Word Flow supports a custom dictionary you can provide for prediction; I can imagine dictionaries with medical terminology, legal terminology, and so on. Windows Phone looks at these terms, as well as the words you've already typed and the standard dictionary when it predicts.
Even so, Word Flow is not everything I want. I want Swype. () I want to be able to take advantage of new techniques that developers come up with, techniques that may not be appropriate for the default keyboard in the OS, but that might work well for me.
I haven't gotten the keyboard companies to talk to me about these matters, but I bet most of them would at least consider the opportunity to port their programs to Windows 8 and Windows Phone, and for sure they would all write for iOS. The Android interfaces look to me as if most of the work should be portable across any OS.
As a user of all of these operating systems, I'm disappointed in Apple and Microsoft, but I also think they are making a bad business decision. I hope they both develop the good sense to back down.