Оптимизируйте ввод обычных данных
При всякой удобной возможности старайтесь облегчить пользователю задачу быстрого и точного ввода обычной информации. Поскольку полнофункциональная клавиатура, при помощи которой можно было бы ввести данные, в распоряжении пользователей мобильных телефонов оказывается редко, ваше содействие им в отношении ввода данных будет весьма уместным.
Рис. 13.2. Сравнение различных разновидностей механизмов ввода в пользовательском интерфейсе
Один из способов организации ввода данных состоит в том, чтобы пользователь осуществлял ввод вручную, буква за буквой (например, "6 января 2006" или "6/1/2006"), однако такой ввод будет занимать слишком много времени и сопровождаться неминуемыми ошибками, не говоря уже о проблеме учета различий в национальных стандартах форматов дат. Лучше предоставить пользователю окна списков для выбора дня, месяца и года, тем самым избавляя его от необходимости вводить эти данные. Еще лучше использовать всплывающие элементы управления или диалоговые окна, отображающие календарь, что позволит быстро выбрать дату, которая и заполнит соответствующее поле ввода. ( Примечание . С учетом того, что необходимость во вводе дат возникает очень часто, можно ожидать, что в будущих версиях .NET Compact Framework календарь будет добавлен, однако общая проблема ввода сложных данных будет по-прежнему оставаться актуальной.)
При проектировании пользовательских интерфейсов для мобильных устройств иногда допускают ошибку, пытаясь сэкономить экранное пространство и память программы за счет использования элементов TextBox для ввода сложных данных; это вынуждает пользователя вручную вводить, например, такие сложные данные, как даты. В лучшем случае достижение такой "эффективности" — это пиррова победа; затраты экранного пространства, памяти программы и ваших усилий, обеспечивающие экономию времени пользователя и повышение точности ввода, никогда не будут напрасными.
Описанный подход проиллюстрирован рис. 13.2, на котором можно видеть как кнопки, так и выпадающие списки, которые облегчают ввод данных для калькулятора, предназначенного для выполнения научных расчетов. Например, вместо того чтобы побуквенно вводить выражение sin(), обозначающее тригонометрическую функцию, пользователю достаточно просто выбрать нужную функцию в выпадающем списке. Часто встречающиеся переменные x, у и z представлены кнопками на форме вместе с другими распространенными математическими символами. Ввод сложных математических формул с помощью этого интерфейса выполняется гораздо быстрее, чем при вводе вручную посредством стандартной экранной клавиатуры. Несомненно, описанный интерфейс может быть дополнительно оптимизирован.
Убедитесь в том, что для механизмов автоматизированного ввода предусмотрены параллельные механизмы ввода вручную
В специализированных мобильных приложениях часто применяется нестандартное оборудование, позволяющее ускорить ввод данных. Хорошим примером такого оборудования может служить устройство для считывания штрих-кодов, подключенное к мобильному устройству, что позволяет очень быстро считывать данные с этикеток со штрих-кодами, наклеенных на физические объекты. Если мобильное приложение должно взаимодействовать с физическим окружением, то использование сканеров штрих-кодов и даже устройств для распознавания речи способно существенно расширить сферу применимости приложения и повысить производительность труда пользователя. Подобные механизмы ввода реальных данных следует изучать и использовать при любой возможности, если только это представляется интересным. Не следует, однако, впадать в крайность и полагаться только на такие механизмы. Этикетки, на которые нанесены штрих-коды, и считывающие устройства могут загрязняться или повреждаться, а использование устройств для распознавания речи может затрудняться повышенным уровнем шумов в окружающей среде и нерегулярными ежедневными изменениями характеристик человеческого голоса, что увеличивает вероятность погрешностей. Поэтому очень важно всегда предусматривать механизм ручной подстраховки, который можно применять для ввода данных вручную в тех случаях, когда автоматизированные механизмы ввода дают сбой. По той же причине, по которой кассирам в супермаркетах предоставляется возможность ввести код продукта вручную, если неоднократные попытки считывания кода сканером оказались безуспешными, в вашем мобильном приложении, отвечающем самому последнему слову техники, должен быть предусмотрен специальный пользовательский интерфейс, обеспечивающий быстрый ввод данных вручную в тех случаях, когда сделать это при помощи средства автоматизированного ввода не удается. О мобильном приложении, которое 90% времени работает нормально, но остальные 10% времени не в состоянии функционировать из-за неполадок, нельзя сказать, что оно работает нормально и надежно; вместе с тем, если 10% времени приложение вынуждено требовать ввода вручную, но прекраснейшим образом функционирует 90% времени, то оно может считаться вполне работоспособным.
Читать дальше