(2023-06-23) On "user-friendliness", part 2: input methods
----------------------------------------------------------
We're surrounded by legacy, whether we want it or not. Sometimes, this legacy
is bordering with absurd-grade obsolescence. And, although I'm not a fan of 
touchscreen devices at all, they are a perfect example of such a case. Look, 
you have a capacitive touchscreen which is (at least supposedly) better 
suited for direct finger input than the resistive one. You no longer have 
physical keys the user has to press. Why in the mother of fuck did you need 
to implement QWERTY as the primary input method there in the first place?!

Oh, because of Blackberries and Nokia Eseries and other similar devices with
physical QWERTY keyboards that were popular right before the capacitive 
touchscreen invasion? Were they sure that their audience intersected with 
the audience of later smartphones? Are they sure that whatever works for 
physical keyboards also works for virtual ones? Not to mention those 
physical keyboards were not comfortable to use by everyone, just because of 
their size: for mobile devices, the traditional 12-key layout is much 
better, with or without T9. With that layout, people can operate the phone 
with a single hand, and they, once again, convinced them that it wasn't 
necessary. But if you definitely need to type with one hand, here's "swipe 
input" for ya: gesture-based prediction method that amazes with its 
awkwardness, privacy invasion and inaccuracy. It's a rusty technological 
crutch for the "solution" that has been inherently lame since day one.

No, I get that the traditional 12-key layout doesn't make much sense on
touchscreens either. But the world doesn't stop at these two options. 
Recently, I switched both Androids I'm actively using (a smartphone and a 
tablet) to the Thumb-Key keyboard. It's FOSS (and available on F-Droid if 
anyone is interested), supports all the languages I currently need and 
combines the sparseness of 12-key layout with the features that only 
capacitive touchscreen can offer. In short, any letter of the alphabet of 
your choice is available with a single tap or a swipe gesture, but there is 
almost no room for mistyping (except the wrong swiping angle) and one can 
get used to it very quickly in a day or two. What's more important to me 
(besides the fact that it collects no user data) is that you can position it 
to the left or right of the screen and adjust the key size, which lets you 
operate it one-handed with the maximum efficiency for the size of your 
thumb. You can also left it centered and operate it with two hands, or train 
each hand independently. For each language, the layout is adjusted to not 
require any swipes for the 9 most commonly used letters of that language, 
and a single swipe for all the others. And the selection of the 9 most 
frequent letters doesn't only consider their usage in dictionary words, but 
also in the most frequent letter clusters of the language. That's why the 
layouts you see there might not look so obvious at the first glance, but 
then, as you use it more and more, you start to understand why the letters 
are placed the way they are.

This application, as well as some others, also features some layouts
specifically tailored for two-thumb typing. Not quite comfortable for me but 
I understand when it could be useful too. By the way, similar input methods 
are very popular among the Japanese. Because, if we think about it, there 
really is no better way to enter kana on touchscreens. But this is in fact 
true for any other language: once you are trained, this is lightyears ahead 
of QWERTY with any swipe crutches. Now, a more interesting quesion is: how 
could we possibly improve the physical 12-key input on normal phones with 
keypads? Especially that we know how bad T9 itself can be. 

After what I have told you, I think the idea is on the surface: just use two
fast presses of adjacent keys as a "swipe" gesture, and leave a tap as a 
tap. This is simple and straightforward to program (and even more 
straightforward would be to just make any keypress twice, that would avoid 
having to use an internal timer). If the keypad itself is well-built, the 
experience is going to be as smooth as on the touchscreen and definitely 
faster than writing with the usual ABC1 method. To get familiar with the 
method, one might still need some on-screen hints to indicate which 
characters are available after the first press at which digits. This way, 
for example, English layout (as in Thumb-Key v4) would map to:

A: 66
B: 53
C: 75
D: 95
E: 99
F: 85
G: 25
H: 55
I: 88
J: 51
K: 54
L: 65
M: 45
N: 44
O: 33
P: 56
Q: 52
R: 22
S: 11
T: 77
U: 35
V: 57
W: 15
X: 58
Y: 59
Z: 89
Space: 0
': 86
.: 80
,: 87
*: 8*
-: 8#
Uppercase shift: 63
Lowercase shift: 69
Numeric/ABC switch: #

Just imagine how the cellphone industry might develop if such a method
appeared about 25 years ago and became the mainstream not only in Japan but 
around the globe. Maybe I'll try developing my own input method for KaiOS 
that implements this, but can't promise anything at this point. What I'm 
trying to say is that, from time to time, it's useful to start thinking out 
of the box to make you more productive in the most basic day-to-day tasks.

--- Luxferre ---