LINKa. Бумажная клавиатура. Очень крупные кнопки

    Привет, Хабр. Я, Иван Бакаидов, и проект LINKa, который раньше назывался aacidov, но об этом в печальном офф-топе, выпускает приложение LINKa. Бумажная клавиатура. Это виртуальная клавиатура предназначенная людям с нарушениями моторики. Приложение open-source, доступно на Android и iOS и будет радо вашим идеям.

    Скриншот приложения LINKa. бумажная клавиатура.

    Идея


    Идея приложения пришла ко мне в голову из-за прогулки с подругой. Мы сидели в кафе и она пыталась попасть рукой в клавиатуру моего макбука с целью что-то сказать. У ноутбука клавиши мелкие, у девушки движения неловкие, получалось плохо. После свидания я приехал домой и благополучно лег спать… Проснулся в три часа ночи с совершенно элементарной идеей: «Можно же сделать виртуальную клавиатуру с очень крупными кнопками, а чтоб они все на экран помещались, надо сделать страницы”. Мне иногда становится стыдно за то, какие простые приложения делаю. В пять часов утра пришлось ширяться коралловом, ибо идея идеей, а спать надо. Ну не, как true proger я должен был сесть ее ночью делать, но оправдаю себя тем, что живу пока в одной комнате с братом.


    Собственно принцип программы прост. Посередине квадратная сетка, сбоку кнопки „Предыдущий лист“ и „Следующий лист“, вверху поле вывода, внизу кнопки управления цирком.

    Название приложения происходит от аналогового устройства ввода информации в окружающих людей, которое используют многие семьи с безречевыми людьми, стоимостью 25 рублей, а именно картонной клавиатуры с наклеенным алфавитом или русской раскладкой, напечатанной в 48 pt.

    бумажная клавиатура в ламинировании

    Реализация


    Реализация заставила себя ждать до следующего вечера, когда я часа за два набросал рабочую версию приложения. В основу лег GridView, который разбивал алфавит в квадратную сетку с задаваемым количеством столбцов, в зависимости от степени поражения пользователя. По бокам расположились также очень крупные кнопки перелистывания страниц, чуть позже собразил сделать перелистывание по кругу и еще позже, после релиза 1.0, добавить на кнопки буквы, которые будут на предыдущем и следующем экранах. Беру классический алфавит, а не частотный, чтобы пользователю было легче ориентироваться куда бежать.

    С iOS приложением помог Андрей из IceRock Development, спасибо ему большое.

    Эксперименты


    Печатаю на paperboard в ВК

    Благодаря гайду на официальном сайте Android, пробую сделать интеграцию клавиатуры в саму систему как средство ввода. Работа идет довольно успешно, хотя у меня вызывает сомнения отсутствие предиктора (Т9) и не понятно куда его прикрутить. Буду рад идеям, pull request'ам и т.п.

    Ссылки



    Чем помочь?


    • Посмотреть и почистить код.
    • Дать потестить знакомому с проблемами моторики / написать рекламный текст / дать выходы на реабилитационные центры. Хабр довольное странное место для поиска моей ЦА, но всё же вдруг у вас есть iPad и бабушка с трудностями моторики.
    • Помочь с реализацией клавиатуры в системе
    • Просто обняться.
    • Donate чисто по желанию

    RIP


    В июле 2017 года от острой сердечной недостаточности скончалась Ангелина Титова, главный вдохновитель проекта и моей первой статьи на Хабре.

    В ее светлую память было решено переименовать проект.





    Спасибо за вашу поддержку, хабровчане.
    LINKa
    29.07
    Company
    Share post

    Comments 25

      +1
      Простите, я не нашел знаков препинания.
      Кроме того, знак пробела выглядит как подчеркивание — не сразу понял, что это. Мне кажется, для пробела есть другой символ, более интуитивно понятный.
        0
        Их там нет, думаю добавить в конец, но поскольку приложение делалось для общения (а тут на запятые забывают), не добавил сразу. Про пробел надо думать, не нашел нужного эмоджи.
        Спасибо за тест.
          +3
            0
            По ощущениям: для того, чтобы произнести текст вслух, если у Вас нет другой возможности — вполне подойдёт. Да, приходится использовать слишком много нажатий, чтобы набрать текст — но это, конечно, плата за пролистывание клавиатуры туда-сюда.

            Ну и, наверно, было бы очень удобно иметь возможность хранить и пролистывать историю — порой люди в быту используют много типовых фраз, которые часто повторяются, для облегчения жизни людям с ограниченными возможностями было бы неплохо.
          +1
          Не увидел кнопок для управления курсором. Штука нужная, так мама просила в свое время найти клавиатуру с крупными «клавишами» и кнопками управления курсором.
            0
            О, вообще не думал об этом, спасибо, добавлю
            +1
            А чем для таких целей плоха клавиатура как на телефонах 2000х годов, где на каждую кнопку по несколько символов? Просто сделать её большой. Да, нажимать надо несколько раз, но переключаться между страницами не нужно. Это позволяет по памяти вводить символы не запоминая на какой ты странице. Плюс большинство людей более-менее с ней знакомо и для каждого языка уже есть стандартная «раскладка».
              +1
              Плоха она наличием тайм-аута между выбором следующей буквы и вводом буквы. У некоторых людей нажатие кнопки занимает секунд пять. А тайм-аут будет вызывать еще дополнительную судорогу — быстрей-быстрей. Думал об этом.
                +1
                Есть режим T9, когда кнопка на которой находится нужная буква нажимается один раз, а слово затем выбирается из словаря. Да, бывают косяки, типа слов «ушко» и «рыло», когда буквы находятся на одних и тех же кнопках, бывают отсутствующие слова в словаре. Но тем не менее это способ обойтись 9 кнопками вместо 33.
                  +1
                  Ну так можно сделать кнопку «закончить ввод символа», чтобы не торопить никого. Например, там где звёздочка/решетка на телефоне. И текущий символ считать завершенным когда нажата или кнопка завершения, или какая-то другая из буквенных.
                +1
                Предиктивный ввод так и просится. В чем трудность расположить его еще одной строкой, выше кнопок?
                  0
                  скорее трудность найти само решение предективного набора.
                  0
                  Заглянул в код приложения.
                  github.com/linkasu/paperboard-android/blob/master/app/src/main/java/su/linka/linkapaperboard/ControllButtonsController.java#L35
                  предлагаю заменить на одиночное нажатие stackoverflow.com/questions/15353457/single-click-and-double-click-of-a-button-in-android
                  на случай когда пальцы дрожат.

                  При смена ориентации у Вас введенный текст теряться?

                    0
                    У меня в коде зафиксирована ориентация, как Вы смогли ее поменять?
                    Про нажатие хорошая идея, поменяем, я бы еще опционально сделал на прикосновение, т.к некоторым людям сложно даже нажать.
                      0
                      Про ориентацию просто спросил. Так как при просмотре не заметил в коде.
                        0
                        Дисфункции как я понимаю разные бывают.
                        И стандартные компоненты типа кнопок могут не подходит.
                        Тут наверное правильней всю область рисовать как одну
                        картинку и работать с касаниями экрана напрямую.

                          0
                          Дисфункции как я понимаю разные бывают.
                          Следовательно 3×3-клавиатура подойдёт не всем. 2×2 и к примеру 1×3 как альтернативные раскладки могут оказаться не лишними.
                      0
                      Вопрос не будет удобнее схема ввода букв в два нажатия
                      [А, Б, В, Г] [Е, Ж, З, И] [К, Л, М]
                      [,,,][,,,][,,,]
                      [,,,][,,,][,,,]

                      второй экран
                      [А][Б][В]
                      [Г]

                        +1

                        Возможно стоит сгруппировать буквы по частоте их совместного использования, чтобы людям реже приходилось скакать по экранам. А для того, чтобы поначалу было проще запомнить, их можно отображать мелким шрифтом на кнопках смены страниц.

                          0
                          А как насчет такого: сделать на каждой кнопке по 2-3 буквы и угадывать набранное слово программно? Плюс, есть вторая идея. В некоторых древних алфавитах гласные пропускали и писали только согласные. Может быть так можно?

                          нпрм = например
                          сбк = собака

                          И так далее. Пусть программа угадывает слово.

                          +1
                          Тут сразу пришло в голову много идей.
                          На первую вдохновил комментарий выше. Делаем клавиатуру как в кнопочных телефонах. Зажимаем кнопку, буквы потихноьку с таймаутом 1 секунда (можно настроить) начинают менять друг друга. На нужной букве разжимаем и получаем то, что надо.
                          Вторая идея. Обязательно добавить автодополнение. Классика. 3 слова сверху.
                          Третья. А почму бы на страницах не отображать буквы в порядке qwerty. То есть:
                          й ц у \\ у к е \\ г ш щ \\ з х ъ
                          ф ы в \\ в а п \\ о л д \\ ж э?
                          я ч с \\ м и т \\ ь б ю \\, пробел.
                            0
                            вы помните наизусть qwerty? я тоже, а семилетний ребенок вряд ли
                              0
                              Клавиатура «как в кнопочных телефонах» будет удобна (привычна) тем, кто ещё застал кнопочные телефоны.
                              0
                              1.2.0

                              Добавлена возможность устанавливать клавиатуру в качестве средства ввода.
                              Поменяли значок пробела.
                                +1
                                Идея (первый скриншот): сделайте надписи на клавишах крупнее раза в два. Пальцами при наборе перекрываться не будут, да и людям с подсевшим зрением будет легче. Строка с набранным текстом тоже теряется, а у неё здесь весьма не второстепенная роль.

                                Only users with full accounts can post comments. Log in, please.