
In this article I want to consider the main drawbacks of keyboard layouts for typing Russian text on phones, and also to offer an alternative and even show the emulator of the invented layout.
From my acquaintance with a mobile phone, the question torments me: why are all keyboard layouts so uncomfortable? Some letters require 4 presses to enter, although, as is known from the combinatorics, by pressing the 9 keys with one keystroke, one of 81 characters can be selected.
There are T9 and other predictive input implementations. They speed up input, but they have another drawback - non-determinism. I cannot type something without looking at the screen if I am not sure that T9 will offer me the right option. In addition, if I’m printed in one letter somewhere in the middle of a word, I will notice it only after I enter the remaining letters and receive the wrong word I’ve expected. We'll have to erase and print again. In the classic input there is no such problem - we immediately see the letter that was printed, and we can easily notice the error. I also came across this behavior: special characters were placed in the list depending on the frequency of their use. This is very bad: periodically the symbols are reversed, automatism gets lost, you have to relearn a new number of button 1 presses.
')
Before I describe the layout invented by me, I want to note the following important thought. For those who print a lot, no matter how complicated the layout. When you imagine, for example, the letter K, you will not look at the keyboard - you just press the 4 key three times without thinking about it. To develop a habit, it is enough to practice a couple of days. Ultimately, the input speed depends solely on the number of clicks to be performed. Particularly slow down the input is the need to hold a button (for example, on some Nokia phones it takes about a second to hold * for a list of characters).
So, let's think up the optimal layout. We need only 32 characters, 4 for each of the 8 buttons (the letter “” we will send to the list of special characters, because it can be thrown out from any text without damage to it). As a result, we get that 8 frequently used characters are typed with one click, and the rest - with two.
To facilitate understanding of what I offer, I made a
demo written in JavaScript. Apart from the lack of an English layout and a rather arbitrary set of special characters, this is a full-fledged input emulator.
In the initial input state, the buttons have the following functions:
- * - shift (one next letter will be capital)
- holding * - caps lock (can be disabled by single pressing *)
- # - switching modes (Russian, English, digital)
- 0 - enter the special characters menu
- 1 - space
- 2-9 - enter one of the 8 most frequent characters. After pressing such a button, the input goes into the standby mode of the letter: (in the next screenshot we pressed 7)

In this mode:
- *, 0, # select one of three additional letters located on the previous pressed button. For example, pressing * in this situation will enter the letter "x".
- 1 introduces a space.
- 2-9 act the same as in the previous mode. For example, if you press 4, the letter “n” will remain and the highlighted letter “i” will appear. And if you press not 4, but 7, the second letter “n” will appear (remember that when using the classic mode, you need to pause or press the “right” button to enter letters on one button).
- If you do not press anything, the letter "n" will be applied and the input will go into normal mode.
But the menu of special characters that appears when you press 0:

Pressing 0 will open the next page of characters, and pressing any other button will insert a character and return the input to the original mode. To exit this mode, press Clear or flip all the character pages with the 0 key.
Thus, pressing any key, space or special character (except for rare characters) requires no more than 2 clicks, while there are no pauses, key holdings and key presses.
Once again I will list the advantages:
- no more than two clicks to enter any character.
- deterministic input (you know exactly which sequence to type to enter a word, as opposed to T9).
- when used on phones with a touch screen: you can reduce the number of keys to 12 (and increase their size accordingly) without much damage to the input speed compared to the “layout” layout.
Minuses:
- it takes some time to develop automatism; On phones with a hardware keyboard, the inscriptions on the letters will not correspond to the real ones.
- as far as I know, nothing like this has yet been implemented on any of the mobile platforms.
- when you enter a character (for example, a comma), immediately after the word, you still need to pause or press the “right” button additionally.
Prospects for implementation:
- on new platforms (for example, Android), you can write an application and implement a keyboard at the OS level. (Can you tell me if this is possible in Symbian?)
- for applications on J2ME, you can write your own implementation of the TextBox class and embed it in any application instead of the standard one.
Thanks for attention. I will be glad to hear constructive criticism.