A lot of us use our Android devices for a variety of day to day tasks – I know I do. From typing quick texts to my friends, to shooting status updates to my Twitter, life isn’t all Ingress on my Nexus 4. As such, I found myself in a quandary not too long ago. The state of IMEs on Android is not what I feel it should be. Thus, I began a quest for the “Perfect” IME, on both my Nexus 4 and my Nexus 10. Read on for how that went.
Long ago, I loved the keyboard that came with my HTC Dream (or, as T-Mobile users affectionately know it as, the T-Mobile G1). The slide-out keyboard with the perfectly rounded keys was the perfect companion to Gmail, and I was very happy with it. Mind you, I wasn’t very hard to impress – I came from the Helio Ocean, after all. I used the daylight out of that keyboard, and when I acquired my Nexus One in December of 2009 I was very dismayed at the lack of a hardware keyboard.
After all, though my HTC Dream supported the Google IME Framework since Android 1.5, I had never had a reason to use it. When I needed to tap out a text, or shoot somebody an email, I flipped the phone on its side, slid out the ‘board, and did my thing. Alas, that was to be no more. What I found was a lackluster software keyboard (IME, or, Input Method) that made my life difficult. But back then, it was the only option.
Fast forward a few years, and, we have options. So I’ve spent the past four weeks really getting to know some of them, and I’ll put them head to head against each other, in an effort to see which one (if any) meets my needs in 2013.
Let’s start with things on my phone of choice — a Nexus 4.
First and foremost, Swype has to be one of the oldest keyboards around for Android, though ironically one of the newest to debut on the Play Store. Though perhaps it’s one of the most pirated apps in the ecosystem, I shall refrain from calling it Android’s very own “Game of Thrones” app.
Debuting many years ago, Swype was one of those apps that took the world by storm with its new and revolutionary way of doing things. I spent a few days with Swype this time around, and though I feel its primary attraction is just a gimmick, it has a very large fan base and a number of copycats, including Google themselves: Android’s stock IME supports gesture typing first popularized by Swype. But since I didn’t like it much on stock, the original didn’t do much for me either. Thankfully, Swype is a fully-featured keyboard that works in the traditional way, too.
Swype’s biggest plus is the alternate symbols on its main keyboard. Simply long-press to get at them, unlike the stock IME, which increased my efficiency a bit. Text prediction was mediocre, at times not really helping me all that much, but nice for one-handed work. The look and feel was actually nice, though it lost points for using orange. Isn’t orange one of those “love” or “hate” colors? Well, I obviously hate it. Overall, it was not a bad replacement for stock, though, especially for a buck.
After I looked to Swype for relief, I next tried SwiftKey, which includes Swype-like functionality called Flow. It similarly has the long-press symbol/number keys, which I found useful. SwiftKey, however, was much more configurable than Swype, allowing for different themes (I found myself drawn to the Holo one, naturally, matching the rest of my phone’s theme). SwiftKey’s claim to fame is pretty straightforward: awesome text prediction. The goal of SwiftKey seems to be that you enter in the first few letters of the word you want, and tap the completed word from the suggestion list, rather than typing out the full word.
SwiftKey uses a predictive text engine to understand the grammar of what you’re trying to say, and analyzes what you’ve said in the past in order to predict what you’re trying to say now (with a surprising degree of accuracy, mind you). You can even give it access to your Facebook, Twitter, and Gmail to analyze your typing style there, though I found that feature a little ridiculous: I share my Twitter and Gmail accounts between my phone, tablet, and computers, and have a different typing style on all three. There’s even a statistics section that tells you how many keystrokes you’ve saved, and how much SwiftKey has improved your efficiency.
Additional features of this keyboard include the ability to specify how large to make it: small, medium, or large. While those with smaller screens might not need to adjust this setting, my Nexus 4’s display rendered the keyboard so big at first that I chose “small” and had zero problems typing on it. My biggest complaint, however, was the fact that it went full-screen in landscape mode, making chatting in Hangouts in that layout pretty painful. The tablet version fixes this, however, it has its own issues, which I’ll get into later, and both versions cost $4 in the Play Store.
Smart Keyboard Pro
Going a bit further, I discovered Smart Keyboard Pro. Though it lacks the Swype-like functionality of the prior two keyboards, it makes up for it in its configurability. Like SwiftKey, you can customize its height in both portrait and landscape modes, but unlike SwiftKey you could specify the exact height using a slider instead of a preset “small,” “medium,” and “large.” As such, I was able to tweak it to exactly the perfect size for me, and it even supports landscape mode without going full screen!
Theme support is more advanced, also, providing built-in themes similar to SwiftKey, but also allowing 3rd-party themes to be created and installed from the Google Play store. I’m using the Cyanogenmod theme in the screenshot to the left.
Text prediction was not nearly as advanced as SwiftKey, but seeing as how that’s SwiftKey’s sweet spot, I didn’t expect it to be. It includes a smiley button to insert emoticons, which you can customize if you don’t approve of the default set provided. Unlike SwiftKey and Swype, it felt more like a replacement for the default keyboard in Android, rather than a replacement for the way I type on a mobile device. While text prediction was useful, it mostly served as a guide to ensure I spell what I’m typing properly, rather than autocompleting it for me.
It also crashed a couple of times on my Nexus 4, and, while it loaded quickly again, it was still annoying as I had to switch apps and touch another input field to get it to reload itself. I did notice it was the most responsive keyboard I tried, keeping up to me typing at my fastest without freezing, locking up, or lagging. Swype bogged down in this respect, and SwiftKey came grinding to a halt at times, likely because it kept trying to update its prediction engine on every keypress. Smart Keyboard Pro is also a fairly reasonable option at $2.64, though not quite as cheap as Swype’s sale. You can find it in the Google Play store here and the CM skin in the screen from the screenshots are right here.
Last on the list I checked out was GO Keyboard, from the developers behind GO Launcher. I have mixed feelings about their implementation, as unlike the other 3 keyboards I reviewed there was no trial version. Swype, SwiftKey, and Smart Keyboard Pro all had a free, 30 day version that was fully featured but disabled itself after 30 days. GO Keyboard, on the other hand, is ad-supported, with an in-app purchase option to remove them for $6 – clearly the most expensive option. I’m not opposed to ad-supported applications, but I’m sorry — it’s just a little too intrusive on a keyboard.
GO was fairly customizable in a lot of ways, though, including 3rd party theme support, layout configurations, and language options. Its text prediction was slightly better than Smart Keyboard Pro, but it lacked some of the advanced configuration settings available there. There’s an emoji plugin which will net you a smiley button, similar to SwiftKey and Smart Keyboard Pro, but it treats the emoji layout as a separate language entirely, meaning you have to switch layouts to make use of it.
When you do, you’re presented a full keyboard sized display of emoticons rather than the dozen or so you get with other options. I’m pretty sure the developers have chosen to implement the same feature in a different way, rather than feel it was unimportant. It’s really up to personal preference as to if you feel they failed or not. GO Keyboard is also in the Play Store.
Next, we take a look at how these same keyboards performed on the Nexus 10. Swype, Smart Keyboard Pro, and GO Keyboard don’t have dedicated tablet versions. SwiftKey does, however, so I’ll be taking a look at that in addition to the regular, non-tablet version to see if there’s a big difference.
Swype was a monster on the tablet for the simple fact it took up half the screen. This also made using it with just your thumbs a practical impossibility, as the top row is too central to the screen to be able to reach. The orange was still annoying, and the lack of customization options irked me compared to the other keyboard options available. In its defense, it’s pretty clear that Swype was not designed for tablets in mind, so blowing the app up to tablet size is obviously a hacky solution at best. Maybe some day Swype will release a tablet version, but until then, unless you have ginormous hands or are planning on using your tablet only when it’s set down on something, I’d suggest steering clear of this.
SwiftKey Tablet had similar issues with size in its default mode. While the keyboard looks decent on a phone, it doesn’t expand well on the tablet — even the dedicated tablet version. The spacing between the keys looks off, and more importantly, feels off. Though vertically smaller than Swype, even on its non-default setting of “small” it was still too big in a lot of ways, especially in the text prediction area. I think they designed it for people who can’t hit the broadside of a barn with their thumb. Where the tablet version differs from the phone version, however, is the little button next to the space bar: split keyboard mode.
Split keyboard mode splits the letters in half, allowing easy access while holding the tablet in your hands. It fixes the gaps between keys fairly well, and makes the whole keyboard a lot more usable. Though an improvement, it still takes some getting used to, and the height on the text prediction bar could use a little tweaking. I also found the layout key got in the way, switching me between split/normal layouts when I was trying to hit the spacebar since it replaces the left bit of the bar to make room for the new key.
The phone version running on the Nexus 10 was actually much, much better than the actual tablet version. When using the “small” size setting, it took up just the right amount of space, it fixed the gap issues between the keys, and though it lacked the split keyboard functionality, I found I could live without it fairly easily. I was happily using it in exactly this configuration for a couple of days, except for one situation that arose: no full screen in landscape, unless the application doesn’t support anything else.
As you can see in the above picture, Gmail looks fine on it. Google Hangouts, however, does not, as seen on the right. You’re presented with a very large input box, but can’t read the conversation while you’re typing. While this only happened in some applications, it was frequent enough to be seriously annoying and made me long for them to merge the two versions of SwiftKey together. Apparently it’s a commonly requested feature on phones, too, according to the SwiftKey forums, especially as phone screen sizes increase and Phablets gain traction.
Smart Keyboard Pro
Smart Keyboard Pro was no different on the Nexus 10 than it was on the Nexus 4, providing the same lightning fast keystrokes, average prediction capabilities, and smooth layout. The ability to specify its exact height made it easily the most usable keyboard to type on, even if it didn’t feature a split layout. It crashed similarly to the Nexus 4 on occasion, which is pretty bad for a keyboard application. Excusing that small shortcoming, however, I easily adapted to the screen size and location better than SwiftKey or Swype.
GO Keyboard handled the tablet size fairly well, also. Similarly to Smart Keyboard Pro, it was small enough to not waste space, but big enough to be accurate and efficient. The various themes functioned properly, the text prediction bar was well-spaced but not gaudy, and it even included an emoticon button, a feature that was lacking on my phone. The only downside was, again, the ads, and the high cost to remove them compared to the other options.
I saw a few other options in the Play Store, such as Slide IT, Perfect Keyboard, and Thumb Keyboard, but none of them appeared to be tailored to my typing patterns nor popular enough to merit looking into them in much detail. I might revisit them in the future if my needs change, though.
Over all, on the Nexus 4, I went with SwiftKey. Swype tried to make me something I’m not, and it suffers in the other areas as a result. While GO Keyboard and Smart Keyboard Pro were good replacements for the default Android keyboard, I found SwiftKey was actually a replacement for the way I type, which actually worked a lot better for me in the end. Though it took some getting used to at first, the results speak loud and clear (and thanks to SwiftKey, I can even measure them – I’m 38% more efficient at typing thanks to it, having saved 14,084 keystrokes, and had 7,816 typos corrected).
The Nexus 10, however, was another story. I found both versions of SwiftKey promising there, but until either their phone version fixes that landscape issue, or their tablet version fixes that layout issue, neither fit the bill. I went with Smart Keyboard Pro on the tablet, and though it lacks SwiftKey’s text prediction awesomeness, it makes up for it in its customization and implementation, despite the occasional crash.
You can find Swype, SwiftKey, Smart Keyboard Pro, and GO Keyboard in the Google Play Store. And if you have any other keyboads you like and want to suggest them, be sure to drop a comment and let your fellow Phandroidians know!