Friday, March 20, 2015

Back to SwiftKey on the Nexus 5


iOS 8 brought a feature that I had been looking forward for 4 years: support for 3rd party keyboards. I wanted to use gesture based input to improve the effectiveness of my typing on the touch screen. I had had some experience with Swype, one of the first such keyboards, back in 2009 when someone ported the version of Swype that came bundled with Samsung Omnia Pro (if I recall correctly) to the Samsung Omnia i900 that I had for a brief period of time. I felt that was the best app to have on a touch screen phone. I cannot remember if the stock keyboard on the Omnia had autocorrect built in; I guess not. So typing with that keyboard was very cumbersome. Swype was a pleasant upgrade for that phone.

Apple's stock keyboard wasn't bad but it could be improved. Apple might or might not add gesture based input to the stock keyboard, but as of iOS 8, they haven't reached that milestone. But with the support for 3rd party keyboards, all the major keyboard developers embraced the Apple's beloved platform with no further invitation. I bought Swype, but it didn't impress me for some reason. Then I bought SwiftKey which has superior predictive capabilities to Swype, and it worked out reasonably well.

Even though Apple is known to implement features properly -  especially when they are copying a feature from a rival platform - they messed it up this time round. There were many stability issues with their implementation such as the keyboards disappearing randomly, keyboard hesitating to pop-up and Apple not letting 3rd party keyboards enter passwords etc. Still, I continued to use SwiftKey.

Come 2015 and I have switched platform. Now I'm using a Google Nexus 5 phone with Android Lollipop on it. Compared to iOS, Android has had support for 3rd party keyboard for as long as I could remember, and doesn't seem to be plagued with the issues iOS was having with respect to 3rd party keyboards. Only issue would be the keyboard taking a long time to show up for the first time after a reboot of the device. Still, it was faster than iOS on the iPhone 5S. As I was using SwiftKey on the iPhone, that's the first keyboard that I installed on the Nexus 5.

After few days, my friend suggested that I tried out Swype,  and I switched to it because it felt a bit better than SwiftKey's gesture inputs. I used it for many weeks until Swype screwed up an update. I had Japanese language installed as well, and when I switched to Japanese and back to English,  it would completely stall the phone for a minute or so. Swype pushed an update few days later but it didn't fix the issue completely for me. Stupidly enough, there was no way to remove a language once it was added to Swype. I'm sure reinstalling would have fixed it but I didn't want to go through the initial setup process once again. I'm not sure if it would prompt me to go through that once again, but when I switched from the trial version to the paid version (yes, I bought it), it didn't migrate the trial version’s profile to the paid version. I wasn't even sure if it was backing up my profile to the cloud.

There was another reason why I was a bit fed up with Swype. Its autocorrecting capabilities were way too low. Its suggestions were very inaccurate as if it wasn't looking at the context of the sentence when suggesting a word.

So, I wanted to give SwiftKey another shot. I expected them to have the keyboard improved since the last time I used it. After changing back to SwiftKey, the first thing I did was to check whether they had a Material Design skin for it. There was one but it wasn't free. (On the other hand, Swype offered Material Design skins for free.) It wasn't expensive so I bought it even without testing the keyboard first. I had decided that I was going to use a Material Design skin or not use the keyboard at all.

Then I went into the settings page and made some changes to the defaults.

  • Since I don't use emoji, I made that key register an Enter with a short press.
  • I removed the voice inputs because I don't use it. If I want to use it, I always have Google voice typing keyboard in there.
  • I connected my Facebook, Twitter and Google Plus profiles with it so that it could learn my writing style.
  • I disabled sound and vibration feedbacks when tapping the keys
  • I also changed long press duration to 200ms because I hate lag

After that, I was all set to use the keyboard. The first things I noticed after I saw the keyboard for the first time with the Material Design theme was how big the Spacebar was and how it had the secondary action (what happens with a long press) printed on the keys. The size of the Spacebar was very important because I hit the Period key instead of the Spacebar on most keyboards, including Swype. Why seeing the secondary actions clearly is important is because Swype's Material Design theme didn't show them until you long pressed the; you had to do it all with your memory, which probably wouldn't be a problem if you used it for a long time. But the initial impression wasn't positive with Swype’s Material Design skin.


Now I've been using this keyboard for a while and I really love how good it is at autocorrecting and predicting text. Gesture typing on the other hand isn't as good as Swype's. I just can't explain what's different between the two but something definitely is not right about SwiftKey. It seems as if you need to put a little bit of effort to get it to recognize the words correctly. But since SwiftKey's prediction when typing is so good, you don't need to use gestures even when you are using the phone with a single hand. I first thought that I would be using gesture typing most of the time but that hasn't been the car so far. Perhaps I can get it to work as well as Swype after I get used to it but I'm not sure if I want to spend time learning how to accurately input text using gestures with SwiftKey.

Related Posts Plugin for WordPress, Blogger...