CONCEPT: Customizable keyboard suggestions for Android

I’ve been designing and developing Android applications for five years now. I’d love to think that I’ve gotten quite good at it, but I’ll be honest, I have a weakness: designing forms.

In my defence, I have an issue with the mere existence a form in any experience. Hence, I’d typically turn to them as only a last reserve, putting a lot of effort and diplomacy with product teams into removing any question unless it is absolutely vital to user experience.

Smart Actions on Haptik

While designing mobile experiences, I have a key rule: get the user to type less, and tap more. A great example of where this has worked so well is a feature we call Smart Actions at Haptik: any time we require the user to do something, we try to make it possible for them to simply tap on a button*.

In the example shared, clicking on the “Send a text” button directly opens up the default messaging application for the user, types in the required text (Start 0 in this case), with the recipient also filled out. All that the user has to do next is actually hit send. We’d do that for them as well, but it requires an additional permission and we like to let them have a “final confirmation” for their own action.

The login experience on Twitter for Android

Unfortunately, sometimes it is imperative to provide a text box where users can type out their responses. A great example of this is E-mail fields: several developers attempt to reduce friction by auto-filling the first E-mail Android’s accounts API returns to them. However, for users like me, this ends up being more problematic because I need to clear out my corporate account, and put in my personal account.

How could we solve this at a product level? We could potentially use an AutoCompleteTextView instead of a regular EditText, and provide suggestions we believe should be there. Twitter, in fact, does exactly that. However, this still requires users to type out at least two characters by default (though some customization can get rid of that requirement).

A solution I’d like to see, however, is a little different. I’ve been using Swiftkey for the last 3–4 years, and is by far my favorite app of all time. The reason I love it so much is that it understands me so well, and usually, whenever suggestions aren’t turned off, I simply have to type the first 3–4 characters of my E-mail, before I can tap on a suggestion and have it in place. The fact that setting that setting input type to E-mail turns off suggestions is really, really annoying.

However, this got me thinking at a wider, platform level: what if developers had a way in which to provide our keyboards with suggestions, which the keyboards could use at least at a default level?

The advantage of such an approach is that the autocomplete suggestions become more contextual, with the app developers being able to easily help out third-party keyboards to provide end users with a better experience.

How do we go about it? Until such a system is adopted by the platform itself, we could rely upon a third-party EditText extension which contains setters and getters for default suggestions. Any third party keyboard could then retrieve this and combine the suggestions with their own, using them in a manner that they see fit.