Pull to refresh

Улучшенная раскладка для мобильных телефонов

Reading time3 min
Views19K
В этой статье я хочу рассмотреть основные недостатки раскладок клавиатур для набора русского текста на телефонах, а также предложить альтернативу и даже показать эмулятор придуманной раскладки.

С самого знакомства с мобильным телефоном меня мучает вопрос: почему все клавиатурные раскладки так неудобны? Для ввода некоторых букв требуется 4 нажатия, хотя, как известно из комбинаторики, двумя нажатиями 9 клавиш можно выбрать один из 81 символов.

Существует Т9 и другие реализации интеллектуального ввода. Они ускоряют ввод, но у них есть другой недостаток — недетерминированность. Я не могу, не глядя на экран, что-то набрать, если не уверен, что Т9 предложит мне нужный вариант. Кроме того, если я опечатаюсь в одной букве где-то в середине слова, я замечу это только после того, как введу остальные буквы и получу не то слово, которое ожидал. Придется стирать и печатать заново. В классическом вводе нет такой проблемы — мы сразу видим букву, которую напечатали, и можем легко заметить ошибку. Также я сталкивался с таким поведением: спецсимволы располагались в списке в зависимости от частоты их употребления. Это очень плохо: периодически символы меняются местами, автоматизм сбивается, приходится переучиваться на новое количество нажатий кнопки 1.

Перед тем, как я опишу придуманную мной раскладку, хочу отметить следующую важную мысль. Для тех, кто много печатает, неважно, насколько сложна раскладка. Когда вы воображаете, например, букву К, вы не будете смотреть смотреть на клавиатуру — вы просто нажмете клавишу 4 три раза, не задумываясь над этим. Чтобы выработать привычку, достаточно попрактиковаться пару дней. В конечном итоге скорость ввода зависит исключительно от количества нажатий, которые необходимо осуществить. Особенно сильно замедляет ввод необходимость удерживать какую-то кнопку (например, на некоторых телефонах Nokia приходится примерно секунду удерживать * для получения списка символов).

Итак, давайте придумаем оптимальную раскладку. Нам нужно всего 32 символа, по 4 на каждую из 8 кнопок (букву «ё» мы отправим в список спецсимволов, потому что ее можно выкинуть из любого текста без ущерба для него). В итоге у нас получится, что 8 частоупотребительных символов набираются одним нажатием, а остальные — двумя.

Для облегчения понимания того, что я предлагаю, я сделал демо, написанное на JavaScript. Если не считать отсутствия английской раскладки и довольно произвольный набор спецсимволов, это полноценный эмулятор ввода.

В исходном состоянии ввода кнопки имеют следующие функции:
  • * — shift (одна следующая буква будет заглавная)
  • удерживание * — caps lock (можно отключать одинарным нажатием *)
  • # — переключение режимов (русский, английский, цифровой)
  • 0 — вход в меню спецсимволов
  • 1 — пробел
  • 2-9 — ввод одного из 8 самых частых символов. После нажатия такой кнопки ввод переходит в режим ожидания буквы: (на следующем скриншоте мы нажали 7)


В этом режиме:
  • *,0,# выбирают одну из трех дополнительных букв, находящихся на предыдущей нажатой кнопке. Например, нажатие * в этой ситуации введет букву «х».
  • 1 вводит пробел.
  • 2-9 действуют так же, как в предыдущем режиме. Например, если нажать 4, буква «н» останется и появится подсвеченная буква «и». А если нажать не 4, а 7, появится вторая буква «н» (напомню, что при использовании классического режима для ввода букв, находящихся на одной кнопке, нужно сделать паузу или нажать кнопку «вправо»).
  • Если ничего не нажимать, буква «н» применится и ввод перейдет в обычный режим.
А вот меню спецсимволов, появляющееся при нажатии 0:



Нажатие 0 откроет следующую страницу символов, а нажатие любой другой кнопки вставит символ и вернет ввод в исходный режим. Чтобы выйти из этого режима, нажмите Clear или прощелкайте клавишей 0 все страницы символов.

Таким образом, нажатие любой клавиши, пробела или спецсимвола (кроме редких символов) требует не более 2 нажатий, при этом нет пауз, удерживаний клавиш и нажатий вспомогательных клавиш.

Еще раз перечислю плюсы:
  • не более двух нажатий для ввода любого символа.
  • детерминированный ввод (вы точно знаете, какую последовательность набрать для ввода слова, в отличие от Т9).
  • при использовании на телефонах с сенсорным экраном: можно уменьшить число клавиш до 12 (и соответственно увеличить их размер) без сильного ущерба для скорости ввода по сравнению с «йцукен»-раскладкой.
Минусы:
  • требуется некоторое время, чтобы выработался автоматизм; на телефонах с хардверной клавиатурой надписи на буквах не будут соответствовать реальным.
  • насколько я знаю, ничего подобного пока не реализовано ни на одной из мобильных платформ.
  • при вводе символа (например, запятой) сразу после слова всё-таки нужно сделать паузу или нажать дополнительно кнопку «вправо».
Перспективы внедрения:
  • на новых платформах (например, Android) можно написать приложение и внедрить клавиатуру на уровне ОС. (Не подскажете, возможно ли такое в Symbian?)
  • для приложений на J2ME можно написать свою реализацию класса TextBox и встраивать в любое приложение вместо стандартного.
Спасибо за внимание. Буду рад услышать конструктивную критику.
Tags:
Hubs:
Total votes 107: ↑92 and ↓15+77
Comments139

Articles