- Основные методы ввода-вывода (I/O)
- Авторизуйтесь
- Основные методы ввода-вывода (I/O)
- I/O в аппаратном обеспечении
- I/O в программном обеспечении
- Блокирующий метод
- Неблокирующий метод
- Мультеплексированный метод
- Асинхронный метод
- Многопоточность или однопоточность?
- Описание и виды устройств ввода информации
- Для чего нужны устройства ввода информации
- Разновидности устройств ввода информации
- Основные виды устройств ввода информации, их характеристика
- Клавиатура
- Трекбол
- Тачпад
- Компьютерная мышь
- Джойстик
- Геймпад
- Компьютерный руль, танцевальная платформа, световой пистолет
- Тачскрин
- Световое перо
- Графический планшет
- Сканер
- Фотоаппарат, видеокамера
- Веб-камера
- Микрофон
- Что такое способы ввода
- Плохой дизайн
- Многообразие клавиатур
- Сенсорные экраны и виртуальный ввод данных
- Виртуальный ввод: клавиатуры и цифровые панели
- Виртуальный ввод: выбор пункта из списка
- Виртуальный ввод: перо
- Виртуальный ввод: голос
- Физический ввод данных
- Физическая клавиатура с раскладкой QWERTY
- Физическая панель
- Ввод данных путём выбора из массива элементов
- Дистанционный ввод данных
- Проектируя для пользователей и их устройств
- Ссылки
- Ищете исполнителя для реализации проекта?
Основные методы ввода-вывода (I/O)
Авторизуйтесь
Основные методы ввода-вывода (I/O)
Начинающему разработчику зачастую сложно разобраться в средствах ввода-вывода (I/O), поскольку присутствует небольшая путаница в определении различий этих способов. В данном материале попробуем заполнить этот пробел и разобраться в классификации основных типов ввода-вывода.
I/O в аппаратном обеспечении
В современных операционных системах средства ввода-вывода представляют собой способы взаимодействия между обработчиком информации и внешним миром. Сюда можно отнести чтение или запись файлов на жёсткий диск или SSD, отправку и получение данных по сети, отображение информации на мониторе и получение ввода с мыши и клавиатуры.
Способы взаимодействия современных ОС с периферийными устройствами зависят от типа устройства, возможностей прошивки и аппаратного обеспечения. Можно считать, что периферия может обрабатывать несколько запросов одновременно. То есть время последовательного взаимодействия прошло. В этом смысле все взаимодействия устройств ввода-вывода с процессором асинхронны и находятся на стороне аппаратного обеспечения.
Такой асинхронный механизм называется аппаратным прерыванием. В простом случае, процессор отправляет запрос к внешнему устройству и начинает бесконечный цикл, в котором он каждый раз запрашивает у периферии, готовы ли данные, которые процессор мог бы считать, и ждёт в цикле, пока периферия не выдаст ему эти данные. Этот метод ввода-вывода называется методом опроса поскольку процессор должен постоянно проверять состояние периферии.
25–27 ноября, Онлайн, Беcплатно
На самом деле, на современном оборудовании процессор просит периферию выполнить действие и забывает о нём, продолжая обрабатывать другие инструкции. Как только устройство завершит свою работу, оно сообщает об этом процессору, вызывая прерывание. Это происходит на уровне аппаратного обеспечения, и при этом процессору никогда не приходится ожидать или опрашивать периферию, что освобождает его для другой работы, пока периферия сама не сообщит о своей готовности.
I/O в программном обеспечении
В среде программного обеспечения существует большое количество видов ввода и вывода: блокирующий, неблокирующий, мультиплексированный и асинхронный. Давайте рассмотрим их по очереди.
Блокирующий метод
Помните, что любая пользовательская программа запускается внутри процесса, а код выполняется в контексте потока? Предположим, вы пишете программу, которой нужно читать информацию из файла. С блокирующим вводом-выводом вы просите ОС «усыпить» ваш поток и «разбудить» его только после того, как данные из файла будут доступны для чтения.
То есть блокирующий ввод-вывод называется так, потому что поток, который его использует, блокируется и переходит в режим ожидания, пока ввод-вывод не будет завершён.
Неблокирующий метод
Проблема метода блокировки заключается в том, что поток будет спать, пока ввод-вывод не завершится. Поток не сможет выполнять никаких других задач, кроме ожидания завершения ввода-вывода. Иногда вашей программе больше и не надо ничего делать. В противном случае во время ожидания ввода-вывода было бы полезно выполнять другие задачи.
Один из способов осуществить это — использовать неблокирующий ввод-вывод. Его идея заключается в том, что когда программа делает вызов на чтение файла, ОС не будет блокировать поток, а просто вернёт ей либо готовые данные, либо информацию о том, что ввод-вывод ещё не закончен. Это не заблокирует поток, но программе придётся позже проверять, завершён ли ввод-вывод. Это означает, что ПО может по-разному реагировать в зависимости от того, завершён ли ввод-вывод и выполнять другие задачи. Когда же программе снова понадобится ввод-вывод, она сможет повторно попробовать прочесть содержимое файла, и если ввод-вывод завершён, то получит содержимое файла. В противном случае ПО снова получит сообщение о том, что операция ещё не завершена и сможет заняться другими задачами.
Мультеплексированный метод
Проблема с неблокирующим вводом-выводом в том, что с ним не удобно работать, если задачи, которые выполняет программа, ожидая ввода-вывода, сами из себя представляют другой ввод-вывод.
Хорошо, если ПО просит ОС прочитать содержимое из файла А, после чего выполняет какие-нибудь сложные вычисления. Затем проверяет, завершилось ли чтение файла А, и если да, то просто продолжает ту работу, для которой нужно было содержимое файла, а иначе снова выполняет некоторое количество сложных вычислений и так далее.
Но что, если программе не нужно выполнять сложные вычисления? Ей просто нужно прочесть файл A и одновременно файл B. Пока ПО ожидает завершения обработки файла А, оно делает неблокирующий вызов чтения содержимого файла В. Во время ожидания обработки программе больше нечего делать, потому она входит в бесконечный цикл опроса, проверяя, готово ли A и готово ли B, снова и снова. Это либо нагрузит процессор проверками состояния ваших неблокирующих вызовов, либо вам придётся вручную добавить какое-то произвольное время, которое ваш поток будет «спать», а значит, программа немного позже заметит, что ввод-вывод готов, что отрицательно скажется на пропускной способности ПО.
Во избежание этого можно использовать мультиплексированный ввод-вывод. Он тоже блокирует поток на операциях ввода-вывода, но вместо того, чтобы производить блокировку по очереди, вы можете запланировать все операции ввода-вывода, которые вам нужно сделать, и блокировать их все. Операционная система разбудит поток, когда какая-нибудь из операций завершится. В некоторых реализациях мультиплексированного ввода-вывода можно даже точно указать, что вы хотите, чтобы поток разбудили, только когда заданный набор операций ввода-вывода будет завершён, например, когда файлы A и C, или файлы B и D будут готовы.
Таким образом ПО делает неблокирующий вызов чтения файла A, потом неблокирующий вызов чтения файла B, и наконец говорит ОС: усыпи мой поток, и разбуди его, когда A и B будут оба готовы, или когда один из них будет готов.
Асинхронный метод
Проблема мультиплексированного ввода-вывода в том, что поток всё-таки спит, пока ввод-вывод не будет готов для обработки. Для многих программ это подходит, поскольку у них нет других задач, пока они ждут завершения операций ввода-вывода. Но иногда у них есть и другие задачи.
Например, ПО вычисляет цифры числа π и одновременно суммирует значения из нескольких файлов. Вам хотелось бы запланировать все операции чтения файлов, пока программа ждёт их выполнения, вычислять цифры числа π. Когда какой-нибудь из файлов будет прочитан, ПО прибавит записанное в нём значение и продолжит вычислять цифры числа π дальше, пока ещё один файл не будет прочитан.
Чтобы это работало, нужно, чтобы ваше вычисление цифр числа π могло быть прервано вводом-выводом, когда он завершается. Это можно сделать с помощью обратных вызовов, связанных с событиями. Вызов на чтение принимает функцию обратного вызова и возвращается немедленно. Когда ввод-вывод завершается, операционная система остановит ваш поток и выполнит обратный вызов. Когда обратный вызов завершится, система возобновит работу вашего потока.
Многопоточность или однопоточность?
Вы, наверно, заметили, что все вышеописанные способы ввода-вывода работают в рамках одного потока, главного потока вашего приложения. На самом деле, для выполнения ввода-вывода не требуется отдельный поток, поскольку, как вы видели в начале статьи, вся периферия выполняет ввод-вывод асинхронно. Поэтому и возможно делать блокирующий, неблокирующий, мультиплексированный и асинхронный ввод-вывод в однопоточной модели и одновременный ввод-вывод может работать без поддержки многопоточности.
Но обработка результатов операций ввода-вывода может быть и многопоточной. Это позволяет программе делать одновременные вычисления поверх одновременного ввода-вывода. Так что, ничто не мешает вам совмещать многопоточность и эти механизмы ввода-вывода.
В самом деле, есть пятый популярный метод ввода-вывода, который требует многопоточности. Его часто путают с неблокирующим или асинхронным, поскольку он похож по интерфейсу на те два. Он работает просто: он использует блокирующий ввод-вывод, но каждый блокирующий вызов делается в отдельном потоке. В зависимости от реализации, вызов либо принимает функцию обратного вызова, либо использует модель опроса, как если он возвращает Future .
Источник
Описание и виды устройств ввода информации
Компьютеры и другие электронные приборы могут управляться разнообразными устройствами ввода информации, позволяющими выполнять различные функции. Рассказываем про основные из них.
Для чего нужны устройства ввода информации
Устройство ввода – оборудование, которое используется для внесения каких-либо данных или сигналов в компьютер, телефон или другое электронное устройство во время его работы.
Принцип их работы заключается в переводе информации с языка, понятного человеку, на язык, воспринимаемый компьютером. Эта информация может быть в форме чисел, текста, графики, звуков, видео, действий.
Осторожно! Если преподаватель обнаружит плагиат в работе, не избежать крупных проблем (вплоть до отчисления). Если нет возможности написать самому, закажите тут.
Разновидности устройств ввода информации
Выделяют ряд категорий таких механизмов:
- оборудования, предназначенные для ввода графической, звуковой и видеоинформации;
- механические устройства ввода;
- непрерывные устройства ввода;
- приспособления ввода для пространственного использования.
По способу управления выделяют устройства следующих видов:
- прямого ввода – управление происходит непосредственно в месте видимости курсора, к примеру, сенсорный экран;
- непрямого ввода – управление осуществляется не напрямую, опосредованно, например, компьютерная мышь.
Основные виды устройств ввода информации, их характеристика
Клавиатура
Клавиатура – средство, которое используется для набора текстовых, цифровых данных, а также управления компьютером при помощи клавиш.
Трекбол
Трекбол – приспособление, курсор при использовании которого управляется через вращение специального шарика, расположенного в верхней части трекбола. Используется в основном при работе с графикой различной сложности.
Тачпад
Тачпад – механизм, встроенный в пк, перемещение мыши осуществляется за счет прикосновения и движения по тачпаду пальцев.
Компьютерная мышь
Компьютерная мышь – средство, которое позволяет перемещать по экрану курсор. Перемещение курсора осуществляется синхронно с движениями мыши по поверхности.
Джойстик
Джойстик – средство, которое используется для управления в компьютерных играх. Выглядит как рычаг на подставке, который можно отклонять в разные стороны.
Геймпад
Геймпад – пульт, предназначенный для использования в компьютерных играх, который пользователь держит двумя руками и управляет большими пальцами рук.
Компьютерный руль, танцевальная платформа, световой пистолет
Данные приспособления используются для конкретных видов видеоигр. Компьютерный руль – для игры в автосимулятор, танцевальная платформа – для танцевальных игр, световой пистолет – для игр, которое позволяет «стрелять», а также дает результат о попадании или промахе.
Тачскрин
Тачскрин, или сенсорный экран – приспособление, назначение которого заключается в вводе информации через прикосновение к нему.
Световое перо
Световое перо используется при работе с планшетами, карманными ПК, ввод информации осуществляется через прикосновение пером к экрану устройства, для которого он предназначен.
Графический планшет
Графический планшет, или дигитайзер – приспособление, предназначенное для ввода рисунков от руки и рукописного текста непосредственно в компьютер. Чаще всего используется художниками, дизайнерами.
Сканер
Сканер – механизм, который позволяет переводить графическую информацию в цифровую. Проще говоря, предназначен для оптического ввода в компьютер различных сведений, размещенных на бумаге (фотографий, документов, рисунков, чертежей).
Фотоаппарат, видеокамера
Цифровой фотоаппарат – средство для создания графических данных, а также для передачи их на компьютер для дальнейшей обработки.
Видеокамера используется для создания видеофайлов, а также имеет возможность передачи полученных файлов на компьютер для последующей работы с ними.
Веб-камера
Веб-камера – оборудование, предназначенное для фиксирования видеоизображений и звуков для дальнейшей передачи по компьютерной сети в реальном времени.
Микрофон
Микрофон – оборудование для ввода и записи звуковой информации. Подключается ко входу звуковой карты.
Источник
Что такое способы ввода
Я часто повторяю, что разработка для настольных компьютеров, особенно веб-разработка, приводит к вялому интерактивному дизайну: здесь принимают допущения, которые за пределами этой узкой области часто оказываются ложными. В эпоху массового распространения мобильных устройств такие допущения создают много проблем.
К удивлению многих знакомых мне дизайнеров и разработчиков, одним из важнейших аспектов являются способы ввода информации. Да, мои коллеги знают об отсутствии мыши у пользователей мобильных устройств, но по-прежнему негласно руководствуются предположением, что здесь работаютт все стандартные инструменты ввода из веб-среды и настольных систем. Возможно, ситуацию усложняет привычка полагаться на личные предпочтения и чужое мнение и нежелание замечать происходящее вокруг.
Я исхожу из предположения, что у каждого человека есть сенсорный смартфон. [1] На форумах для разработчиков некоторые их них пишут, что «никогда не имели ничего, кроме сенсорного телефона» — и, разумеется, сенсорные смартфоны есть у всех их друзей. Но анекдоты, фанатизм и теории заговора относительно того, какая платформа лучше, в реальности ни к чему не приводят. [2]
То, что мобильные устройства сильно отличаются от настольных систем — это важнейшее правило, которое следует намотать на ус каждому дизайнеру, что берётся за мобильные интерфейсы. Уяснить это сразу практически никому не удаётся, но опыт делает своё дело. Эта статья может быть еще одним отрезвляющим шлепком по щекам, напоминающим об этом.
Плохой дизайн
Почти все мобильные приложения, которые я использовал, страдали от одних и тех же недостатков (в меньшей степени это относится к веб-сервисам). Многие из них не крутятся, работают лишь в одной ориентации экрана, как минимум для ряда устройств. Например, чтобы посмотреть список фильмов на своём DVR, сначала я должен ввести запрос в строку поиска. Приложение требует просматривать результаты в виде вертикального списка. Учитывая, что для ввода я буду использовать горизонтальную выдвижную клавиатуру, решение не кажется логичным. Стоит отметить, что половина устройств на платформе Android оснащены физической клавиатурой, например, Samsung Galaxy S (Рисунке 1).
Или в приложении не происходит автоматическая смена режима ввода, пример показан на Рисунке 2. Тот факт, что номер авиарейса представляет собой последовательность цифр, на поле ввода никак не отражается. Поэтому на сенсорном устройстве виртуальная клавиатура всегда открывается в установленном по умолчанию режиме ввода букв, и каждый раз мне приходится вручную переключаться на цифровой режим.
Ничто не оправдывает лень дизайнера думать. Когда речь идет об удобстве заметного числа пользователей (больше статистической погрешности) дополнительные усилия стоит и даже необходимо делать. Приведенные примеры отлично иллюстрируют провалы в этом.
Многообразие клавиатур
Дизайнеры-фанаты iOS должны помнить о том, что не у всех их клиентов есть iPhone, и уважать их выбор. На многих мобильных устройствах для ввода данных используются клавиатуры, отличные от сенсорной. [3] Хотя статистика по мобильным устройствам закрыта, известно, что около половины Android-устройств, представленных на рынке во множестве форм-факторов, оснащены физической клавиатурой того или иного рода. [4,5] Исследования показывают, что пользователи явно предпочитают физические клавиатуры. Более половины из них заявляют о приверженности этому способа ввода. [6]
Что бы вы ни думали о трендах ближайшего будущего, срок жизни устройств составляет несколько лет. Сайт надо обновлять раз в три месяца, приложение — не реже двух раз в год. (Иначе большая часть клиентов может уйти к конкурентам).
Однако существует много способов расположения клавиатуры — даже если предположить, что все ценные покупатели используют несуществующие высококлассные устройства. По моему опыту, некоторые способы ввода с помощью виртуальной клавиатуры учитываются далеко не всегда. Кроме того, постоянно появляются новые виды интерфейсов, и каждый из них требует решения определённых проблем. [7] Итак, для начала рассмотрим доступные нам способы ввода.
Выдвижные клавиатуры — это, конечно, атавизм, который скоро останется лишь в воспоминаниях.
Справедливости ради стоит признать, что виртуальные клавиши не столь приятны и естественны в использовании как физические. Но факт остается фактом — большинству людей не хочется даже ради увеличения размера клавиатуры и кнопок поворачивать свои смартфоны горизонтально.
И явная тенденция может сменить своё направление только после появления первых «респонсив»-поверхностей.
Безусловно, опытные разработчики знают и умеют применять все тонкости, упомянутые в этой статье. А как же найти этих самых опытных разработчиков, когда встанет необходимость заказть приложение?
Вам поможет рейтинг разработчиков мобильных приложений. Он представляет собой общий топ-100, а также 3 подрейтинга, составленных конкретно с учетом 3 платформ: iOS, Android, Windows Phone.
Сенсорные экраны и виртуальный ввод данных
В iPhone для ввода информации по умолчанию используется сенсорная виртуальная панель. Этот вид очень интересен благодаря своей гибкости. Параметры ввода для конкретных полей могут влиять на раскладку клавиатуры в целом и функции отдельных кнопок в частности. В экранных клавиатурах могут применяться интересные способы взаимодействия с пользователем, начиная от ввода текста непрерывным движением пальцев и заканчивая виртуальным колесом прокрутки (thumbwheel), позволяющим выбирать значение, например, дату и время, из ограниченного набора элементов.
С эстетической точки зрения к iOS есть много претензий, но UI все-таки близок к гениальному: взять хотя бы то же колесо прокрутки, вместо которого в Android используются невообразимые клавиши «плюс» и «минус».
Чтобы не оскорблять чувств верующих и не быть заподозренным в субъективности признаю, что эстетика свежих версий Android выше уровнем, чем у iOS, а ввод текста непрерывным движением, опять же доступный только пользователям Android, действительно очень эффективен.
Виртуальный ввод: клавиатуры и цифровые панели
Клавиатуры (keyboards) используются для ввода слов, а панели (keypads) — для ввода цифр и символов. Хотя границы между различными функциями виртуальных клавиатур могут быть размыты, определить разницу между ними — довольно важная задача.
Интересный момент — смена режима ввода. При переходе в новый режим могут меняться как названия и функции клавиш (keycaps), так и расположение и размеры кнопок. Это значит, что, фактически, число режимов ввода бесконечно. Например, при вводе электронного адреса может отображаться клавиатура, включающая символ «@» и отдельную клавишу «.com», при этом могут отсутствовать недопустимые в адресе знаки, например, запятая, в остальном же раскладка останется прежней.
Цифровой ввод — один из самых интересных режимов. Например, расположение кнопок для набора телефонного номера отличается от раскладки цифровой панели на клавиатуре. Иногда цифры расположены в верхнем ряду алфавитно-цифровой панели, как на стандартной клавиатуре для компьютера.
Ввод жестами с виртуальной клавиатуры позволяет ускорить набор текста (Рисунок 4 — приложение Swype студии Nuance). Пользователь вводит слово одним движением пальца, который может остановиться или изменить направление на любом знаке. Дополнительный режим используется наряду со стандартным: пользователь всегда может вернуться к набору текста поочерёдным нажатием клавиш — внешний вид клавиатуры при этом не изменится.
Хочу еще раз обратить внимание разработчиков на важность смены типа клавиатуры в зависимости от контекста. Если в вашей компании нет департамента интеграции дизайна, то инженерам, как непосредственным изготовителям, нужно брать на себя ответственность и быть внимательными к таким деталям. Дизайнер в большинстве случаев не догадается вам об этом сообщить — для него это само собой разумеющаяся вещь.
Виртуальный ввод: выбор пункта из списка
Мои любимые виртуальные клавиатуры, в сущности, даже нельзя назвать клавиатурами. Инструменты выбора даты и времени (date and time pickers) и другие механизмы ввода конкретного значения позволяют пользователю произвольно выбирать способ взаимодействия, каждый из которых обладает своими особенностями.
Обратите внимание на дизайн инструментов выбора в iOS. Они имеют такую же рамку, как клавиатура или цифровая панель, оснащены кнопками «Вперёд», «Назад» и «Готово». При этом каждый из них представляет собой отдельную вариацию основного способа ввода.
Некоторые из этих способов ввода, например, колесо прокрутки даты и времени (picker wheel) в Android, служат дополнением к языку касаний и существуют наряду с ручным вводом. Одним нажатием на значение открывается виртуальная клавиатура или цифровая панель.
Что касается выбора опций колесом прокрутки, дальше всех, кстати, ушел Windows Phone с оптимальным решением, совмещающим удобство с адекватным размером.
Виртуальный ввод: перо
Использование пера, или стилуса, даёт нам новый метод ввода. Кто-то считает, что системы на основе перьевого ввода переживают своё возрождение, кто-то — что они всегда были, есть и будут.
А я считаю, что стилусами неудобно пользоваться и они отстойно выглядят, поэтому они медленно, но верно уходят в небытие.
Проще всего рассматривать перьевой ввод как аналог виртуальной клавиатуры. Для ввода даты — в отличие от рисования или набора текста — перьевой ввод служит дополнительным режимом: пользователи могут легко переключиться на клавиатуру или цифровую панель.
Пером информацию можно вводить по знаку или по слову за раз. Устройство обрабатывает написанное пользователем и предлагает варианты знаков или слов, кроме того, возможен выбор из других вариантов или повторный ввод. (По меньшей мере 10% одной большой книги я написал, используя перо). Точность рукописного ввода сильно колеблется. Она может быть очень высокой, в то же время, некоторые данные, например, адрес сайта, вводить пером почти невозможно.
Поддержка рукописного ввода особенно важна для людей с низким уровнем грамотности, при работе с нестандартными наборами знаков, при наборе стоя или во время движения или тряски. Функция ввода пером позволяет продолжать работу людям, страдающим синдромом запястного канала. Наконец, некоторым пользователям этот способ ввода нравится больше любых других.
Виртуальный ввод: голос
В этом пункте речь пойдёт не о программах-помощниках, как Siri компании Apple, а о голосовых способах ввода как таковых. [8] В Android преобразование речи в текст осуществляется уже около двух лет, в iOS — чуть меньше. Подобно перьевому вводу, здесь сильно колеблется точность попадания, и используются похожие способы представления результатов, автоматически принимаемых системой. Пользователь может выбрать любой вариант преобразования, редактировать данные вручную или осуществить ввод заново.
Голосовой ввод — удобный способ взаимодействия в случаях, когда заняты руки, и отвлекаться на ручной ввод информации неудобно или даже опасно.
На сегодня голосовой набор лучше всего подходит для генерации порно-кличек. Мне, например, Siri горячо рекомендовала «Mark December». Я с ней согласился.
Физический ввод данных
Около 140 лет стук по физическим клавишам был единственным способом создания текста наряду с письмом. Даже в среде мобильных устройств ввод с физической клавиатуры по-прежнему правит бал. Полвина всех мобильных устройств в США оснащены клавиатурой и используются в первую очередь для отправки SMS, электронной почты и других действий в интернете (Рисунок 6).
Физическая клавиатура с раскладкой QWERTY
Кажется, раскладка QWERTY стала стандартом для физических клавиатур на мобильных устройствах. Да, виртуальные панели для английского и многих других языков имеют ту же раскладку. И всё же, термин QWERTY используется в первую очередь для обозначения определённого типа физической клавиатуры.
Мобильные клавиатуры могут быть как фиксированными, например, на стандартном телефоне BlackBerry, так и выдвижными. Другие типы встречаются сегодня крайне редко. Как бы то ни было, процент мобильных устройств с физическими клавиатурами в раскладке QWERTY очень велик. Надёжный источник, хоть и не указывая точных цифр, сообщает о том, что половина устройств на Android имеет физическую клавиатуру, и многочисленные исследования пользовательских предпочтений подтверждают эти данные. [9]
Пользователь вводит информацию, нажимая на кнопки, за которыми закреплены знаки, как при использовании стандартной компьютерной клавиатуры. Она поддерживает shift и shift-lock-режимы (иногда для блокировки режима требуется дважды нажать на кнопку), другие функции и клавиши с цифрами или специальными символами — в зависимости от раскладки клавиатуры.
Названия клавиш (keycaps), как правило, содержат альтернативные символы или функции. Например, на клавише с буквой «Е» может располагаться жёлтая цифра «4» и маленький знак «$» синего цвета. Разумеется, цвета подписей на разных устройствах могут не совпадать.
Вы можете закрепить за отдельными полями конкретные режимы ввода, например, цифровой, как в случае с виртуальной панелью. Но, само собой, раскладка и подписи кнопок на физической клавиатуре не меняются.
Физическая панель
Иногда такой манипулятор называют «цифровой» или панелью». Фактически, она вмещает двенадцать кнопок, но я предпочитаю использовать устоявшееся определение: панель».
Использование телефонной панели для ввода цифр очевидно, с её помощью легко набирать номер или любую другую последовательность цифр. Но приглядитесь — и вы заметите почти на каждой кнопке буквы.
Обратите внимание: расположение букв согласно Североамериканскому плану нумерации может сильно отличаться от телефонных раскладок в других регионах мира. [10]
Для заполнения отдельных полей может потребоваться какой-либо текстовый режим ввода, и пользователь может выбирать и переключаться между ними. В текстовом режиме каждая кнопка отвечает за набор последовательности букв, цифр и символов, как правило, не указанных на клавише. Например, на кнопке стоят знаки «A», «B», «C» и «2». Таким образом, после одного нажатия в поле появится буква «А», после двух быстрых нажатий —»B«, после трёх — «C». Это называется тройным нажатием, так как максимальное число алфавитных знаков на кнопке равно трём. Нажав на кнопку четвёртый раз, вы получите цифру «2». Таким образом, последовательное нажатие на клавишу даёт знаки «A», «B», «C», «2», «@» и «?», затем они повторяются.
Почти все панели и виртуальные системы ввода на пультах дистанционного управления и сенсорных смартфонах поддерживают систему ввода, не требующую нескольких нажатий на одну кнопку. Эта система была придумана в компании Tegic и сейчас поставляется как Nuance T9, установленная в продуктах партнёров. [11] Здесь для вода каждого знака пользователь нажимает на кнопку только один раз, а алгоритм подставляет наиболее вероятные символы с учётом других нажатых клавиш. Например, пользователь нажимает кнопки «2», «2» и «8», и по мере его движений в поле для ввода отображаются буквы «A», затем «Ba», и, наконец, нужное слово — «Cat». [12]
Устройство предлагает варианты в виде списка, как в случае перьевого или голосового ввода. Однако на маленьком экране такой интерфейс может быть неудобен. Очень часто подход ошибочно называют предиктивной (предугадывающей) системой ввода. Но стоит вникнуть в смысл этого термина — и станет ясно его несоответствие понятию.
Ввод данных путём выбора из массива элементов
Чаше всего понятие «прокрутка и выбор» (scroll-and-select) используют для обозначения способа ввода, при котором элемент выбирают на устройстве без сенсорного экрана. Я же обозначаю им контрол из пяти кнопок: «Вверх», «Вниз», «Влево», «Вправо» и «Выбрать» — позволяющий вводить данные, двигаясь по сетке знаков. Этот способ широко применяется на таких устройствах, как принтеры, GPS-навигаторы, фотоаппараты и на многих других бытовых электроприборах.
Для полноценного ввода текста на экране появляется виртуальная клавиатура. Пользователь должен переходить по ячейкам, пока нужный знак не окажется выделенным, после чего на него надо нажать. Этот способ ввода очень медленный.
На многих устройствах механизм прокрутки и выбора элемента служит дополнением к обычной клавиатуре. Чаще всего он используется для выбора знаков из расширенного набора, например, специальных символов или знаков под ударением, на устройствах с физической клавиатурой. Хотя подобное решение можно встретить и на сенсорных экранах, в первую очередь оно характерно для устройств, редко использующихся для набора текста — где нет ни клавиатуры, ни цифровой панели, ни сенсорного экрана.
Дистанционный ввод данных
Представьте, что происходит с телевизионным пультом по мере того, как наши устройства становятся более умными и связанными друг с другом. Выбор элемента из списка и даже ввод текста становятся его обычными функциями. Механизмы дистанционного ввода обычно основаны на перечисленных ранее системах, а именно:
прокрутка и выбор (scroll-and-select) — как правило, принимает форму виртуальной клавиатуры;
панель, ввод троекратным нажатием — реже задействуется система, исключающая многократное нажатие клавиш;
смешанные способы ввода — виртуальные клавиатуры с меньшим числом кнопок и системы, исключающие многократное нажатие клавиш;
комбинация различных методов ввода — например, цифровая панель манипулятора на Рисунке 7 — это панель, требующая троекратного нажатия и включающая контрол из пяти кнопок навигации, поддерживает прокрутку и выбор элемента на виртуальной клавиатуре.
Nintendo Wii — устройство, где постоянно используются экранные клавиатуры и цифровые панели. Пользователи управляют им, направляя контроллер на экран. На Рисунке 7 ввод данных с помощью манипулятора осуществляется в режиме одного нажатия на кнопку с несколькими знаками.
Некоторые дистанционные устройства используют сравнительно редкие способы выбора, например, Nintendo Wii сочетает виртуальную клавиатуру с языком жестов. Не забывайте, что многие устройства оснащены браузерами, и рынок приложений для них постоянно растёт, а с ними и популярность браузеров. Возможно, вам придётся проектировать интерфейс для экрана в десять футов (3 метра) — воспринимаемый с расстояния трёх метров — скорее, чем вы думаете. [13]
Проектируя для пользователей и их устройств
С некоторых пор среди UX-дизайнеров для мобильных устройств бытует мнение, что мобильная среда — единственное, о чём думают и к чему стремятся пользователи смартфонов. Однако это не так: технические характеристики устройств и то, как люди с ними взаимодействуют, так же важны. Поэтому, помня об интересах пользователей, их потребностях и окружении, при проектировании сайтов и приложений мы должны учитывать разные характеристиках устройств. Как я писал выше, некоторые отличительные черты оказываются важнее операционной системы или размера экрана. Мы должны учитывать способы ввода, поддерживаемые устройством, и связанные с этим ожидания пользователей.
Через месяц мы обсудим, как использовать информацию о способах ввода для улучшения интерфейса и взаимодействия с ним. А пока попробуйте замечать все мобильные устройства вокруг вас или собрать статистику об устройствах ваших пользователей. Подумайте, как можно изменить интерфейс для их удобства.
Учитываем устройство, под которое проектируем интерфейс. Смотрим по сторонам и видим, что никто не пользуется ничем, кроме сенсорных клавиатур. Говорим «Спасибо, Стивен.»
Ссылки
[1] Некоторые разработчики называют все мобильные устройства сенсорными смартфонами. Привожу слова одного из них: «Хочу добавить, что у меня никогда не было телефона с физической клавиатурой». Однако в результате спора он изменил свою точку зрения. На форуме Game Maker Community другой разработчик спросил: «Поклонники Android — нужна ли вам поддержка физической клавиатуры?» («Adroid—Do you want hardware keyboard support?») Сохранённая копия от 9 октября 2012.
[2] Моё замечание о «теориях заговора» вызвано беседами со знакомыми дизайнерами и разработчиками. Они настаивали на том, что каждый, кто покупает телефон на платформе Android, на самом деле хотел бы купить iPhone, и либо не разбирается в телефонах, либо стал жертвой продавца, получающего с продаж Android-устройств больший процент. «По слухам, AT&T дают продавцам инструкции сбывать всё, но только не iPhone» («AT&T Allegedly Instructs Retail Staff To Sell Anything But the iPhone»), статья на сайтеiPhone Hacks, 1 августа 2012. Сохранённая копия от 9 октября 2012.
[3] Согласно отчёту MobilityNigeria за 2010 год, 22,4% мобильных устройств составляют телефоны с QWERTY-клавиатурой и только 16,8% — с сенсорной. Разумеется, данные по другим регионам отличаются, но в Африке по-прежнему в ходу устройства. Источник: «Отчёт о состоянии мобильного интернета в Нигерии на октябрь 2010 года» («MobilityNigeria State of the Mobile Web Report — October 2010») на сайте Mobility, октябрь 2010. Сохранённая копия от 9 октября 2012 года.
[4] Исследование компании Nokia середины 2012 года показало, что больше половины пользователей хотели бы иметь телефон с физической клавиатурой. Многие ставят под сомнение результаты исследования, финансируемого корпораций, так как Nokia традиционно производит много смартфонов с физической клавиатурой. Как бы то ни было, сегодня они выпускают и сенсорные телефоны. Источник: статья Люциана Армасу (Lucian Armasu) «Результаты голосования на сайте Nokia говорят о популярности QWERTY-клавиатур» («Nokia Poll Says QWERTY Keyboards Still Rule») на Android Authority, 11 августа 2012 года. Сохранённая копия от 9 октября 2012 года.
[5] На мой запрос в компании Google ответили, что они не предоставляют свои данные в виде отчёта. Однако Admob время от времени публикует ценные выдержки, и несколько лет там пишут, что около половины хитов с Android-устройств сеть получает благодаря смартфонам с виртуальной клавиатурой. Источник: статья «Motorola Droid по-прежнему лидирует в Android Pack» («Motorola Droid Still Leading the Android Pack») на сайте DMSS.com, 20 апреля 2012 года. Сохранённая копия от 9 октября 2012 года.
[6] 15 августа 2012 года на сайте Sprint появился пресс-релиз под названием «Kyocera Rise сделали устройства на Android 4.0 Ice Cream Sandwich с QWERTY-клавиатурой доступными для продажи в Sprint и Virgin Mobile USA» («Kyocera Rise Brings Affordable QWERTY with Android 4.0, Ice Cream Sandwich, to Sprint and Virgin Mobile USA»). Согласно пресс-релизу, «исследование аналитического агентства Yankee Group в начале года показало, что 69% потребителей считают наличие QWERTY-клавиатуры желательной или даже обязательной характеристикой мобильного телефона». Сохранённая копия от 9 октября 2012 года.
[7] «О способах ввода на пальцах» («Nothing New Under the Thumb») — внушительная статья, в которой описаны некоторые необычные методы ввода, не воспринятые производителями, либо не получившие широкого распространения. Только представьте, насколько более разнообразным мог быть мир устройств! Источник: Designer Software, Inc., июнь 2008. Сохранённая копия от 9 октября 2012 года.
[8] Большая часть публикаций по теме распознавания голоса очень сжатые и сухие. В отличие от них, в блоге «Визуальный интерфейс пользователя, приложения для распознавания голоса и прочее» (VUI Design, Speech Recognition Apps & All That) информация излагается живым языком с привлечение образов из поп-культуры. Мария Аретулаки (Maria Aretoulaki) опубликовала там статью «Лифт, приводимый в действие голосом, не понимает шотландский акцент» («The Voice-Activated Lift Won’t Do Scottish!»). 29 июля 2012. Сохранённая копия от 9 октября 2012 года.
[9] В статье Томи Ахонена «Несколько мыслей о QWERTY- и сенсорных клавиатурах, Т9 и голосовом вводе» («Some Thoughts on QWERTY vs Touch, T9 and Voice Inputs») на сайте Communities Dominate Brands приведён подробный анализ и обсуждение предпочтений относительно разных способов ввода. Поводом для написания материала послужило исследование Nokia. 14 августа 2012. Сохранённая копия от 9 октября 2012 года.
[10] Кратное описание региональной раскладки на Википедии:»North American Numbering Plan«. Сохранённая копия от 9 октября 2012 года.
[11] Увлекательная подробная статья о развитии и истории технологии Т9: «Т9: текст на 9 кнопках» («T9: Text on Nine Keys») на сайте Valid Concept, 26 февраля 2009. Сохранённая копия от 9 октября 2012 года.
[12] Шумин Жай (Shumin Zhai) и Пер Ола Кристенссон (Per Ola Kristensson) недавно опубликовали научный обзор технологий, благодаря которым осуществляется ввод без повторных нажатий на клавишу, например, Т9: «Ввод слова движением пальца: взаимодействие с клавиатурой» («The Word-Gesture Keyboard: Reimagining Keyboard Interaction»). Communications of the ACM, том 55, номер 9. Сохранённая копия от 9 октября 2012 года.
[13] Как я уже писал в этой колонке, можно считать, что мы на пороге эры умного телевидения, но фактически она уже наступила. Компания Samsung продала миллионы копий приложений для Smart TV через свои магазины. Источник: IT Pro Portal, «Samsung реализует 5 миллионов приложений для интернет-телевидения». («Samsung Serves Five Million Internet TV Apps»). 23 мая 2011. Сохранённая копия от 9 октября 2012 года.
Статья Стивена Хубера по-живому резанула и напомнила о больном. Эту рецензию я пишу на клавиатуре компьютера, у которой не работает клавиша Ctrl. Вы когда-нибудь пробовали работать на PC, у которого не работает переключение языков — и для переключения между раскладками нужно тянуться к мышке? А если при этом и мышка не работает? Вот так иногда и происходит процедура ввода с мобильных устройств. Многообразие клавиатур и устройств ввода иногда играет злую шутку: в новых и модных устройствах оказывается, что элементы ввода спрятаны «за экраном» приолжения; я как пользователь промахиваюсь мимо маленьких символов на экране супербыстрого Samsung Galaxy S3 и мечтаю в этот момент о bluetooth-клавиатуре, мыши и прочих полноразмерных устройствах — под большие суровые мужские пальцы. Про мужественный голос, я, затаив дыхание, вообще молчу: ну как можно путать Дмитровку и Дмитровское шоссе при вводе информации? Сплошное мучение, как говорил Ослик ИА. Дизайнеру UX нужно выдержать строгий курс между массовыми устройствами с их ужасными способами ввода — и стремлением улучшить этот мир, предоставим все самое передовое и нестандартное десяти процентам техно-гиков, которые носятся с ультрановыми устройствами.
Как быть? «Ловить окно»: опрашивать пользователей, отсматривать массовые устройства и правила работы с ними — и терпеливо ждать, когда новый стандарт станет абсолютным победителем. Читайте «Shaping Things» Брюса Стерлинга: в этой книге автор показал цикл инноваций, который должен знать каждый дизайнер.
Леонид Бугаев, автор бестселлера «Мобильный маркетинг: как зарядить свой бизнес в мобильном мире» (книге, которая наполовину написана на экранах различных мобильных устройств).
Безусловно, необходимо принимать во внимание пользователей телефонов с физической клавиатурой, но также стоит брать в расчёт специфику вашего приложения.
Например, вы делаете геолокационный сервис по поиску ближайших ресторанов авторской кухни. В этом случае, вашей целевой аудиторией станут, жители городов-миллионников, имеющие в своем телефоне функцию геолокации. Так как функция ввода текста не является основной в нашем приложении, поэтому почти все действия, пользователь производит при вертикальном положении смартфона. В этом случае, не стоит уделять критическое внимание проработке виртуальных и физических клавиатур.
Конечно, количество пользователей системы Android в России постоянно увеличивается (согласно отчету МТС, доля мобильных устройств на базе Android выросла с 49% во II квартале этого года до 62,6% в III квартале). Тем не менее, не стоит забывать, что в Москве и Санкт-Петербурге самое большое средоточие устройств компании Apple. Доля iOS составляет 54,58%, а Android занимает всего лишь 32,99% (процент указан от общего числа пользователей конкретной платформы; данные на основе статистики liveinternet.ru). Это притом, что по России, iOS занимает только 6,9% рынка смартфонов.
Я не говорю, что надо игнорировать потребности мобильных пользователей с физическими клавиатурами, но не стоит тратить время на функционал, который вам может быть ни к чему.
Ввод данных в мобильное устройство для большинства пользователей — далеко не тривиальная задача, хотя уже многие уже неплохо адаптировались к вводу с экранных клавиатур или маленьких клавиш. Особенно это относится к молодому поколению, которые с самого раннего возраста имеют дело с современными сенсорными устройствами. Поэтому обеспечить максимально комфортный ввод данных — достаточно важно, особенно если приложение, над которым вы работаете, подразумевает интенсивную работу с информацией.
Например, для того, чтобы пользователям было удобнее вводить адрес электронной почты на этапе авторизации в нашем приложении — мы сделали специальный контрол с подсказками всех наших доменных имен, а также автоматическое заполнение поля, если пользователь решил вводить домен текстом с экранной клавиатуры устройства.
Ищете исполнителя для реализации проекта?
Проведите конкурс среди участников CMS Magazine
Узнайте цены и сроки уже завтра. Это бесплатно и займет ≈5 минут.
Источник