
Good afternoon, dear habrasoobschestvu!
Without pretending to be innovative and revolutionary, I want to introduce to you the next text input method (IME) for the Android OS. I was going to first bring it to mind, and then put it on public display, but did not bring it to mind, but I got tired of hiding.
This post is literally the premiere of the program, up to this point about a dozen people knew about it. I hope the general public will not accept it in hostility.
')
Under the cut - description and links. I’ll not give the implementation details now - they are not too tricky, and so far some of the functions required by a normal mobile keyboard are lacking.
Story
The idea of the method was born three years ago, when I came across some kind of keyboard (even under WM 2003), similar to the current 8pen and seemed to me extremely uncomfortable. I wanted to do something different, simpler, faster, and “not like them” :) However, it did not go further than several similar pictures for different layouts:
Once again reminded me of the idea of a publication on the Habré about 8pen:
habrahabr.ru/blogs/android/107463 , and I also wanted to try writing something under Android. The result can be seen in the screenshot.
How to use it
The whole area is divided into seven zones: three in the upper row, three in the lower, one in the center. In each zone seven letters are written out. Their location also corresponds to the zones (three letters in the top row, three in the bottom, one in the center). To enter a letter, you need to put your finger in the zone where this letter is drawn, and, dragging to the zone that corresponds to the location of the letter inside the starting zone, lift your finger.
The explanation is incomprehensible, so I will add a few examples:
- 'a' is in the central zone, so the stroke begins in the center. Within the central zone, the letter 'a' is located on the upper left. Thus, the necessary stroke - from the center to the upper left corner;
- 'g' - from the lower left corner to the center;
- '(' - from the upper left corner to the lower right;
- 'n' - click in the lower right corner;
- Space bar - click in the center.
In addition to the usual strokes "from the zone - to the zone," there are more strokes "from the zone - to nowhere." They are used to switch layouts. In the upper three zones in dark gray letters on the background written out the names of the layouts. To switch to numbers, for example, you need to slide your finger from the upper left area beyond the keyboard. Reverse switching is done with exactly the same gesture.

Currently there are layouts for Russian and English languages. In addition, there is a special layout, where the missing letters of the Ukrainian and Belarusian alphabets (upper right corner), Esperanto language (lower right corner) and letters with diacritics present in the standard keyboard (apparently for German and French) were placed.
When composing layouts, I tried to place the letters of the English and Russian alphabets, similar in style or sound, to the same places. The fact is that it’s impossible to arrange the letters in accordance with any common layout, so it’s impossible to save the study of the new location of the user, and you can at least alleviate this study and reduce confusion. Yet the letters are more or less in accordance with the frequency of use: the vowels are grouped in the center, often used consonants are available with one click or with a short stroke on the adjacent zones. The layout certainly turned out to be far from ideal, but still not the worst.
Advantages and disadvantages compared with a standard keyboard
- + Easier to get to the right letter, especially in portrait mode. In the subway / train it is noticeable;
- + takes up less space on the screen;
- + you can type blindly, looking at the entered text, and not on the keyboard;
- + more letters and signs and faster access to rarely used signs;
- - there will most likely not be a significant acceleration of recruitment, but at first - a guaranteed slowdown;
- - in horizontal mode it is almost impossible to use: too long strokes.
Conclusion and future plans
There are many changes that I would like to make in the following versions:
- add support for auto-completion, user dictionary (for writing and reading) and auto-capitalization (I don’t use it myself, but functions are almost standard, I’ll have to do it);
- implement alt and ctrl modifiers for use with ConnectBot;
- somehow solve the problem with the horizontal mode, perhaps dividing the panel into two independent ones;
- I liked the input of numbers in the standard keyboard, where when you slide your finger out of its limits, an additional panel appears with several buttons. I think you can do something similar here.
At the time of the start of work on this application, I had neither the experience of developing for Android, nor the experience of developing anything keyboard-like for any other system. So, the code, despite a few serious refactorings, is still scary, in the near future I plan another big rework.
For this very reason, there will be no technical details yet. Those who are interested can see the code on github.
Download apk here:
github.com/lxyd/StrokeIME/raw/master/StrokeIME.apkAnd the source code can be taken here:
git clone
github.com/lxyd/StrokeIME.gitHere, in general, that's all. I would like to hear your opinion and constructive criticism. Thanks for attention!
UPD: At the request of
kapji , I add a screenshot of the Russian layout. At the same time - in bright colors.
