This article originally appeared in TidBITS on 2014-10-02 at 2:53 p.m.
The permanent URL for this article is:
Include images: Off

iOS 8 Third-Party Keyboards Explained and Reviewed

by Josh Centers

One of the most intriguing features of iOS 8 is how Apple opened it up to third-party keyboards. Google’s Android mobile operating system has allowed developers to create custom system keyboards for years, which has led to interesting experiments, like Swype [1], which lets you draw on the keyboard to spell out words.

At long last, keyboards like Swype are available for iOS, but how you enable and use them isn’t always obvious. Also of concern is how these third-party keyboards, some of which connect to the Internet, impact your privacy.

Setting Up Third-Party Keyboards -- So you’ve heard about a keyboard, perhaps in this article, and you want to install it. The first thing to know is that keyboards are inherently associated with apps — if you want the Fleksy [2] keyboard, you need to download and install the Fleksy app from the App Store. What next?

Somewhat confusingly, you don’t activate the keyboard from the app itself, though the app may give you instructions on how to do so.

Instead, here’s how to set up a keyboard: navigate to Settings > General > Keyboard > Keyboards > Add New Keyboard. You should see a heading titled Third-Party Keyboards. Under that, tap the keyboard you want to add. That will usually add the keyboard, though in some cases, you might have to choose a specific option. For instance, Smile’s TextExpander [3] offers keyboards for five languages.

[image link] [4]

So what’s the app for, if you don’t add the keyboard from it? For most of the keyboards I tested, the container app offers additional settings, instructions, or even a space to practice with the keyboard. It may also provide some of the keyboard’s data or capabilities, as it does in the case of TextExpander. And of course, the app is how the keyboard gets into the App Store.

[image link] [5]

What Is Full Access? -- Most of the keyboards I’ve tested require you to turn on Full Access by going to Settings > General > Keyboard > Keyboards, tapping the keyboard’s name, and then toggling the Allow Full Access switch.

After this, you’re given a stern warning before confirming that you indeed want to enable Full Access:

Full access allows the developer of this keyboard to transmit anything you type, including things you have previously typed with this keyboard. This could include sensitive information such as your credit card number or street address.

Yikes! But if you don’t enable Full Access, some keyboards are unusable. For instance, PopKey [6], which lets you type with animated GIFs, shows only emoticons until you enable Full Access. When Full Access is off, SwiftKey [7] disables most of its features, like autocorrect, word suggestions, and SwiftKey Flow, and displays an obnoxious warning message.

[image link] [8]

However, even without Full Access, most keyboards work, just with fewer features. For example, Fleksy works fine, but you won’t be able to change settings, add new languages, add words to its dictionary, and other fairly minor things.

What does Full Access do, exactly? In the simplest terms, it enables the keyboard to communicate with its host app. There is nothing wrong with this, in and of itself. For example, for TextExpander to expand a text snippet, it needs to be able to look the snippet up in its database. On the flip side, that means that a keyboard can do anything an app can do, include transmit information, like keystrokes, over the Internet.

Unfortunately, this means that we likely won’t see more granular options for keyboard access in the future unless Apple re-engineers how third-party keyboards function.

However, as Smile founder Greg Scown pointed out in a blog post [9], apps have always been able to store and transmit your keystrokes. The difference is that there are now specific controls to prevent such behavior, and that capability is mostly system-wide.

Apple does limit third-party keyboards in certain ways to protect users. They cannot access the microphone or type into secure input fields (which should include all password fields, in theory), and app developers can bar the use of third-party keyboards in apps where the data is highly confidential, such as banking apps.

Apple also offers the following App Store review guidelines:

In theory, if a third-party keyboard were to do unscrupulous things with your keystrokes, Apple wouldn’t allow it in the App Store to begin with, and if it somehow slipped through, Apple would boot it from the App Store. But the information would have to leak out somehow for Apple to even know it should act.

In its developer documentation, Apple outlines certain things a keyboard should do, such as autocorrection and suggestion, which are the sort of things SwiftKey requires Full Access for. But Apple’s own guidelines say that a keyboard must remain functional with no network access. What is Apple’s exact definition of “functional?”

In reality, the only thing a keyboard absolutely has to do is provide a way to switch to the next keyboard.

Using Third-Party Keyboards -- After setting up a keyboard, how do you use it? Tap a text field to bring up the keyboard, then tap the Next Keyboard key (it looks like a globe) in the lower left. You can also hold this button to see a popover list of available keyboards. Tap one to switch to it.

[image link] [10]

The more complex question is how to switch between third-party keyboards. Apple specifies that every keyboard must provide a way to switch between keyboards, but it unfortunately doesn’t specify a single way of doing that.

As a result, switching between keyboards looks and works a bit differently in each keyboard — it’s a mess:

[image link] [11]

If you have several keyboards enabled, switching between them is infuriating. Not only can there be a different method every time, but the keys are often in different places. Even Apple’s own emoji keyboard is guilty of this user interface offense, moving the Next Keyboard key one space to the left from the U.S. English system keyboard.

[image link] [12]

Even worse, developers can’t integrate the keyboard selection popover, so once you’ve switched to a third-party keyboard, you have to cycle through the rest one at a time.

Where Apple Can Improve -- It’s early days for third-party keyboards, and there’s much Apple could do to improve the experience.

First, switching between keyboards has to become a smoother experience. Apple needs to give developers access to the keyboard selection popover so users can switch between keyboards quickly, and it should specify a location, name, and icon for the key that switches keyboards. Under the current rules, switching keyboards could technically be done via a gesture, leaving users to guess even more than they already have to.

Second, there are many more keyboard resources Apple could open up to developers, like iOS 8’s auto-correction and text-prediction mechanisms. As it stands, developers must recreate every keyboard feature from scratch, which makes keyboards look and work significantly differently from the standard iOS 8 keyboard, which hurts the user experience unnecessarily. Ideally, an app could use the standard keyboard as a jumping-off point, and change only the desired functionality, rather than start from scratch.

Third, I’d like to see better privacy controls for keyboards. Perhaps I’m just paranoid because I’m not accustomed to the possibility of my keystrokes being recorded, but right now, you have the choice between letting developers do anything and having a partially functional keyboard. I’d like to see more granular privacy settings for keyboard container apps.

My Keyboard Recommendations -- For the sake of simplicity, I’m going to divide keyboards into two categories: replacement keyboards and utility keyboards. In my terms, a replacement keyboard is a keyboard that’s trying to reinvent how you enter text across the board. In this category, I’d put apps like Fleksy, SwiftKey, and Swype.

Utility keyboards, in contrast, are those that offer capabilities unavailable on the standard keyboard. PopKey is a perfect example, since it types not with text, but with animated GIFs. I’d also include keyboards like TextExpander, since it’s handy to have access to your snippets throughout iOS, but you wouldn’t necessarily want to use it as your main keyboard in all apps.

The reason I’ve defined those categories is because my first recommendation is to pick one main keyboard (either the system keyboard or one of the replacement keyboards), and one or two utility keyboards, if needed, to augment it. You don’t want to enable too many keyboards at once or you’ll grow frustrated trying to switch between them. Two example setups might be:

As far as main keyboards go, I have yet to find anything that compares to Apple’s system keyboard. It’s accurate, dependable, and best of all, is free and familiar. And with QuickType suggestions in iOS 8, typing is faster than ever before.

But if you’re looking for an alternative to Apple’s keyboard, Swype [13] ($0.99) is currently one of the best, most polished options. Its innovative draw-to-type feature was invented by Cliff Kushler, who also developed T9 text input for traditional cell phones. I’m personally not a fan of drawing on my keyboard, but if you want to try it, Swype is the original and best.

[image link] [14]

Other interesting replacement keyboards are Fleksy [15] ($0.99), which focuses on gestures, and Minuum [16] ($1.99), which uses a hyper-compressed keyboard, depending on smart text prediction to get your wording right. I found both a bit too weird to use on a regular basis, but you may have better results.

[image link] [17]

The problem with replacement keyboards is that while many promise to save you time, they’re different enough from what we’re all used to that it takes time to adapt. Whether the time you save in the long run is worth the learning curve is questionable. Also, since you can’t use third-party keyboards in every situation, getting used to one and then having to go back to Apple’s, could be confusing.

I’d also like to take a second to discuss SwiftKey. One of the most popular Android third-party keyboards, SwiftKey [18] is a jack of all trades, offering smart text prediction, Swype-like word drawing, and many other features.

But I don’t trust it. I didn’t trust it on Android, and I don’t trust it on iOS. There are a few reasons for this:

[image link] [21]

The company addresses these concerns in a blog post [22], which explains that SwiftKey requires Full Access for advanced features, saying, “It is worth stating very clearly, however, that no language information leaves your device at all unless you opt in to our SwiftKey Cloud service to get these benefits.”

I remain unconvinced. But SwiftKey costs nothing to try, so let your judgment guide you.

I’m much more optimistic about utility keyboards. My current favorite is PopKey [23] (free), which provides a database of animated GIFs, sorted by the feeling you wish to express. I like to think of them as advanced emoji. A winky face is one thing, but an animation of a famous actor slowly raising an eyebrow says so much more.

One thing I dislike about PopKey is that it required me to sign up with an email address and provide a phone number so I could receive an activation code. I never received the activation code, but the keyboard works anyway. Adrian Salamunovic, co-founder of PopKey developer WorkshopX Inc., told me that registration is needed to upload your own GIFs and transfer them between devices, and that the phone number activation is simply to make registration faster. Salamunovic also confirmed that it helps thwart the uploading of offensive or illegal content.

A less-invasive alternative to PopKey is Riffsy [24] (free), though I’ve found Riffsy to be less reliable, and the images it provides tend to be all over the place size-wise, while PopKey provides consistently sized images. Both keyboards require Full Access to function. However, in this case, I don’t care, because what could anyone determine from animated GIFs I insert?

I’m also a fan of the new TextExpander [25] ($4.99), which includes a third-party keyboard. Having access to my snippets everywhere in iOS is game-changing, especially since Apple’s iCloud sync of its own text shortcut implementation is unreliable. But I can’t yet recommend TextExpander as a main keyboard, since it still has some rough edges. It doesn’t offer any word suggestions, and a bug in the iPhone 6 and iPhone 6 Plus causes the keyboard to expand and contract somewhat randomly. (I’ve been informed that a fix has been submitted to Apple, and is awaiting approval.) TextExpander also requires Full Access, but developer Smile (a longtime TidBITS sponsor) has a golden reputation, as well as an actual business model, so I’m totally happy to grant Full Access.

Third-party keyboards have a long way to go in iOS, but this is only the beginning. The entire situation will only improve with time, and even if you don’t care for any third-party keyboards now, they are entirely optional. My own misgivings aside, I’m thrilled that Apple has opened up this avenue for developers and users to address the significant problem of text entry in iOS.

To learn more about the power of iOS 8, pre-order my upcoming book, “iOS 8: A Take Control Crash Course [26],” which will cover third-party keyboards and other new features that will change the way you use your iOS devices.