Purpose: Allow faster text entry on mobile devices, esp. on iPhones, iPod touch’s and Android phones.
Kind: Mobile development (general) / App development (local realization)
Target Group: Every smartphone user, esp. iOS users
Can be realized by: Software Developers, App Developers
Problem: Smartphone keyboards, physical or virtual are not ‘smart’ (to paraphrase Steve Jobs). They align the keyboard horizontally and repeat the layout of a much larger physical keyboard (or typewriter). Not only are the keys too small, users do also not face the keyboard like when they are sitting in front of a PC. They usually hold the smartphone in one hand and either type with the other hand or with the thumb of the hand with which they are holding the phone. Furthermore, the keyboard covers the information that is displayed! But with a virtual keyboard there is no need for that — it can be a semitransparent HUD. Thus, the currently used horizontally aligned keyboard is not useful for writing on a mobile device.
Solution: Have a look at the area which the thumb of the hand that is holding the phone can cover (see image), and how easy it is to reach certain place on the display (green = very good, blue = okay, yellow = not so good, red = should be avoided; iPhone held with the right hand on the lower part — actually it was an iPhone 4). This implies that the keys should be placed in these areas depending on character frequency in the native language (yes, this means saying good bye (or riddance) to QWERTZ): Most frequently used keys (e.g., “e”, “l”) should be place in the green area, lesser used characters in the blue and yellow one. Given that the keyboard will cover the whole screen (with the top left area for saving, etc.) the keys should be semi-transparent (HUD-style). The text is either in the text field where it belongs or shown at the bottom of the screen. Notice that the default-keyboard of iOS covers the worst part of the touchscreen in terms of easy of access.
Feature list: It should have the following features:
- Mirror possible for left-handed users.
- Keys are not horizontally aligned rectangles but polygons aligned to the circle the thumb makes when moving.
- Night mode where the keys are shown in dark red.
- All keys are lower case, upper case by quickly pressing the same key twice — if it is either the beginning of a paragraph or there is a space in front of the current place, this produces an upper case key, if not, it gives the key a second time.
- Large space key or space by swiping horizontally.
- Return key is triple space or swipe downwards.
- Double space equals the same as on iOS Keyboards, space and dot.
- Auto-completion words are shown above the keyboard and can be selected by swiping in the direction of the word and ending on it (pressing on it will do nothing but select the key below it)
- One key changes the keyboard to display the special characters (can be selected beforehand, e.g., depending on the country). Likewise umlauts are displayed on the special character view or if there is only one other variant they can be selected by triple-clicking on the basic character.
- Size of the keys is adapted to the position, e.g., I have less dexterity on the right side of the screen if I hold the device with the right hand and type with the right thumb — consequently, these buttons should be a bit larger. With a virtual keyboard this is no problem.
- Position of keys (which letter a key produces) could depend on the letters the user types. It’s easy to keep track of the letters that are used and it can even be done retrospectively by feeding a script with some chat transcripts. The strength of virtual keyboards is adaptivity — why not use it?
Similar solutions: None known, although there are similar interfaces in games. The keyboard of the iPad can now be split (in iOS 5), but so far there is no similar solution for smaller devices where you type with the same hand with which you are holding the device.
Influenced by: Games interfaces and my discontent and frustration when typing while walking.
Note: I will program such a keyboard for an App I have in mind, but it would be nice if this was more widely available — and ideally, part of the settings of the phone.
I played around with different keyboard designs with XCode and found one that will likely work for me. Below is a sample app, a proof of concept.
They keys are semi-transparent (alpha .6), the text view behind it has a large text in lightGrayColor with autoscrolling (found the code for this on the net, programmers are so cool! ). It has two views for typing, one with the major characters (incl. the umlaute, as I occasionally make notes in German), the other with numbers and other characters (switching via the orange key top right). Space and Backspace are easy to reach in the vertical middle at the top (in gray).
There is no shift key as it is not needed. Shift keys make sense with a keyboard where you can use more than one finger at the same time. The ways Shift is realized on virtual keyboards is similar to keyboards for the disabled, usually not a very convenient solution. Here you simply hit the key and drag the finger outside of the key area you have just pressed (UIControlEventTouchDragExit). This triggers the upper key function (some non-alphabetic characters also have uppercase functions). This is much, much faster than the press-and-hold solution of Apple keyboards for alternative uses of the key (you have to stop writing for a second, why?!?!) and also faster than pressing a shift key that is somewhere else on the screen. You just press the key directly and drag your finger outside, simple, easy, convenient and fast. I thought about double taps but there are a lot of keys which you type multiple times because you want the same letter twice or trice, so I thought this would be a bad idea. TouchDragExit works much better.
Not all functions are realized at the moment, but it can copy the text to the clipboard and send it automatically via eMail (address, subject, and text body automatically entered). Storage of multiple notes via an SQLite database comes later. It also has a privacy mode where the text is either very close to the white background or (mode 2) where the text is white (I never liked it when people look at my screen ). It also has a mode where you can see the text view and have a default keyboard to edit the text, as not all functions are implemented yet. The visual design of the keys is “strongly inspired” by the iOS App “Mass Effect Galaxy” because they somehow draw your finger in. No copyright infringement is intended as I will use the App only for private purposes.
I think the hardest part here is to learn the locations of the keys, which was the reason why I deviated from the “most used keys in the areas that are easiest to reach” idea and choose an alphabetical order. I also tried out ordering them in a spiral but it placed some of the more often used keys in hard to reach areas (and made my thumb spiral around and around in search of the keys).
Next up are some functions that are missing (storing multiple notes via SQLite, Undo, etc.) and later connection via iCloud. I am also thinking about a Quicklink Tool that makes sending SMS, MMS, and eMail easier. Thing is, what the key writes is stored as text in an array and there is no difference between a single letter (like “a”) and a whole sentence like “Hello [Placeholder], one question, [Placeholder 2]. Best regards, Daniel” which could be used to write eMails more quickly. Especially on a mobile device this is very helpful. I’m thinking about getting the name automatically via the address and some kind of form to more quickly write short messages — hence Quicklink (like the tool in the Sid Meier’s Alpha Centauri Stories).