Идея
Идея приложения пришла ко мне в голову из-за прогулки с подругой. Мы сидели в кафе и она пыталась попасть рукой в клавиатуру моего макбука с целью что-то сказать. У ноутбука клавиши мелкие, у девушки движения неловкие, получалось плохо. После свидания я приехал домой и благополучно лег спать… Проснулся в три часа ночи с совершенно элементарной идеей: «Можно же сделать виртуальную клавиатуру с очень крупными кнопками, а чтоб они все на экран помещались, надо сделать страницы”. Мне иногда становится стыдно за то, какие простые приложения делаю. В пять часов утра пришлось ширяться коралловом, ибо идея идеей, а спать надо. Ну не, как true proger я должен был сесть ее ночью делать, но оправдаю себя тем, что живу пока в одной комнате с братом.
Собственно принцип программы прост. Посередине квадратная сетка, сбоку кнопки „Предыдущий лист“ и „Следующий лист“, вверху поле вывода, внизу кнопки управления
Название приложения происходит от аналогового устройства ввода информации в окружающих людей, которое используют многие семьи с безречевыми людьми, стоимостью 25 рублей, а именно картонной клавиатуры с наклеенным алфавитом или русской раскладкой, напечатанной в 48 pt.
Реализация
Реализация заставила себя ждать до следующего вечера, когда я часа за два набросал рабочую версию приложения. В основу лег GridView, который разбивал алфавит в квадратную сетку с задаваемым количеством столбцов, в зависимости от степени поражения пользователя. По бокам расположились также очень крупные кнопки перелистывания страниц, чуть позже собразил сделать перелистывание по кругу и еще позже, после релиза 1.0, добавить на кнопки буквы, которые будут на предыдущем и следующем экранах. Беру классический алфавит, а не частотный, чтобы пользователю было легче ориентироваться куда бежать.
С iOS приложением помог Андрей из IceRock Development, спасибо ему большое.
Эксперименты
Благодаря гайду на официальном сайте Android, пробую сделать интеграцию клавиатуры в саму систему как средство ввода. Работа идет довольно успешно, хотя у меня вызывает сомнения отсутствие предиктора (Т9) и не понятно куда его прикрутить. Буду рад идеям, pull request'ам и т.п.
Ссылки
- Потестить можно тут: Google Play и AppStore.
- GitHub Android.
- GitHub iOS.
- Новый сайт проекта.
Чем помочь?
- Посмотреть и почистить код.
- Дать потестить знакомому с проблемами моторики / написать рекламный текст / дать выходы на реабилитационные центры. Хабр довольное странное место для поиска моей ЦА, но всё же вдруг у вас есть iPad и бабушка с трудностями моторики.
- Помочь с реализацией клавиатуры в системе
- Просто обняться.
- Donate чисто по желанию
RIP
В июле 2017 года от острой сердечной недостаточности скончалась Ангелина Титова, главный вдохновитель проекта и моей первой статьи на Хабре.
В ее светлую память было решено переименовать проект.
Спасибо за вашу поддержку, хабровчане.
Комментарии (25)
KaneUA
24.08.2018 13:44А чем для таких целей плоха клавиатура как на телефонах 2000х годов, где на каждую кнопку по несколько символов? Просто сделать её большой. Да, нажимать надо несколько раз, но переключаться между страницами не нужно. Это позволяет по памяти вводить символы не запоминая на какой ты странице. Плюс большинство людей более-менее с ней знакомо и для каждого языка уже есть стандартная «раскладка».
ibakaidov Автор
24.08.2018 13:54+1Плоха она наличием тайм-аута между выбором следующей буквы и вводом буквы. У некоторых людей нажатие кнопки занимает секунд пять. А тайм-аут будет вызывать еще дополнительную судорогу — быстрей-быстрей. Думал об этом.
Oqtavus
24.08.2018 19:52+1Есть режим T9, когда кнопка на которой находится нужная буква нажимается один раз, а слово затем выбирается из словаря. Да, бывают косяки, типа слов «ушко» и «рыло», когда буквы находятся на одних и тех же кнопках, бывают отсутствующие слова в словаре. Но тем не менее это способ обойтись 9 кнопками вместо 33.
KaneUA
25.08.2018 00:46+1Ну так можно сделать кнопку «закончить ввод символа», чтобы не торопить никого. Например, там где звёздочка/решетка на телефоне. И текущий символ считать завершенным когда нажата или кнопка завершения, или какая-то другая из буквенных.
402d
24.08.2018 14:16Заглянул в код приложения.
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
на случай когда пальцы дрожат.
При смена ориентации у Вас введенный текст теряться?
ibakaidov Автор
24.08.2018 14:18У меня в коде зафиксирована ориентация, как Вы смогли ее поменять?
Про нажатие хорошая идея, поменяем, я бы еще опционально сделал на прикосновение, т.к некоторым людям сложно даже нажать.402d
24.08.2018 14:31Дисфункции как я понимаю разные бывают.
И стандартные компоненты типа кнопок могут не подходит.
Тут наверное правильней всю область рисовать как одну
картинку и работать с касаниями экрана напрямую.
GeMir
25.08.2018 00:22Дисфункции как я понимаю разные бывают.
Следовательно 3?3-клавиатура подойдёт не всем. 2?2 и к примеру 1?3 как альтернативные раскладки могут оказаться не лишними.
402d
24.08.2018 14:19Вопрос не будет удобнее схема ввода букв в два нажатия
[А, Б, В, Г] [Е, Ж, З, И] [К, Л, М]
[,,,][,,,][,,,]
[,,,][,,,][,,,]
второй экран
[А][Б][В]
[Г]
CAJAX
24.08.2018 14:31Возможно стоит сгруппировать буквы по частоте их совместного использования, чтобы людям реже приходилось скакать по экранам. А для того, чтобы поначалу было проще запомнить, их можно отображать мелким шрифтом на кнопках смены страниц.
Sabubu
25.08.2018 17:30А как насчет такого: сделать на каждой кнопке по 2-3 буквы и угадывать набранное слово программно? Плюс, есть вторая идея. В некоторых древних алфавитах гласные пропускали и писали только согласные. Может быть так можно?
нпрм = например
сбк = собака
И так далее. Пусть программа угадывает слово.
Sultansoy
24.08.2018 17:46+1Тут сразу пришло в голову много идей.
На первую вдохновил комментарий выше. Делаем клавиатуру как в кнопочных телефонах. Зажимаем кнопку, буквы потихноьку с таймаутом 1 секунда (можно настроить) начинают менять друг друга. На нужной букве разжимаем и получаем то, что надо.
Вторая идея. Обязательно добавить автодополнение. Классика. 3 слова сверху.
Третья. А почму бы на страницах не отображать буквы в порядке qwerty. То есть:
й ц у \\ у к е \\ г ш щ \\ з х ъ
ф ы в \\ в а п \\ о л д \\ ж э?
я ч с \\ м и т \\ ь б ю \\, пробел.GeMir
25.08.2018 00:12Клавиатура «как в кнопочных телефонах» будет удобна (привычна) тем, кто ещё застал кнопочные телефоны.
ibakaidov Автор
24.08.2018 19:201.2.0
Добавлена возможность устанавливать клавиатуру в качестве средства ввода.
Поменяли значок пробела.
GeMir
24.08.2018 23:59+1Идея (первый скриншот): сделайте надписи на клавишах крупнее раза в два. Пальцами при наборе перекрываться не будут, да и людям с подсевшим зрением будет легче. Строка с набранным текстом тоже теряется, а у неё здесь весьма не второстепенная роль.
phaggi
Простите, я не нашел знаков препинания.
Кроме того, знак пробела выглядит как подчеркивание — не сразу понял, что это. Мне кажется, для пробела есть другой символ, более интуитивно понятный.
ibakaidov Автор
Их там нет, думаю добавить в конец, но поскольку приложение делалось для общения (а тут на запятые забывают), не добавил сразу. Про пробел надо думать, не нашел нужного эмоджи.
Спасибо за тест.
Doomsday_nxt
unicode-table.com/ru/2423
phaggi
По ощущениям: для того, чтобы произнести текст вслух, если у Вас нет другой возможности — вполне подойдёт. Да, приходится использовать слишком много нажатий, чтобы набрать текст — но это, конечно, плата за пролистывание клавиатуры туда-сюда.
Ну и, наверно, было бы очень удобно иметь возможность хранить и пролистывать историю — порой люди в быту используют много типовых фраз, которые часто повторяются, для облегчения жизни людям с ограниченными возможностями было бы неплохо.