Шрифт:
ГЛАВА 13
Шаг 2: проектирование подходящего пользовательского интерфейса
"Упрощение — это удаление ненужного, дабы нужное могло заговорить."
Ганс Гофман (Hans Hofmann) (1880–1966), американский художник и преподаватель, немец по происхождению (Encarta 2004. Quotations)Мыслите категориями устройств!
Следующим после производительности приложения фактором, от которого в наибольшей степени зависит, как пользователь будет воспринимать ваше мобильное приложение, является пользовательский интерфейс. Интуитивно понятный, оперативно реагирующий на запросы, надежный и внешне привлекательный интерфейс значит очень многое. Подобно любому другому виду творчества проектирование хорошего пользовательского интерфейса потребует от вас сочетания творческого и рационального начал.
Творчество потребуется вам для нахождения новых решений, которые позволят вам представить функциональные возможности своего приложения в рамках ограниченного пространства, предлагаемого мобильными устройствами. Дисплеи настольных компьютеров становятся поистине гигантскими как с точки зрения их физических размеров, так и с точки зрения эффективной разрешающей способности. На мобильные устройства накладывают отпечаток условия их применения; пользователи должны иметь возможность без труда носить устройства с собой, а способ их использования должен быть таким, чтобы это не мешало окружающим. Способ доставки информации и интерактивные возможности, которые вы хотите предоставить пользователям, ставят задачи просеивания и неординарной организации информации.
В дополнение к трудностям размещения необходимой информации на ограниченной площади экрана мобильного устройства существует ряд человеческих и социальных факторов, с которыми надо считаться. В наши дни отовсюду доносятся назойливые звонки мобильных телефонов, которые могут мешать чьей-то беседе, нарушать нормальный ход собраний или просто раздражать окружающих в местах скопления людей. Вы только представьте себе, что будет, если все люди в комнате начнут одновременно разговаривать по телефону; в результате комната была бы заполнена сплошной какофонией. (К сожалению, в наши дни эта проблема уже выходит из разряда чисто теоретических!)
Представьте, что было бы в заполненном людьми лифте или вагоне метро, где каждый человек пытался бы получить доступ к расписанию встреч, деловой или личной информации, хранящейся в мобильном телефоне, если бы для этого необходимо было оперировать обеими руками; каждому мешали бы торчащие локти его соседей, и перебранка была бы неизбежной. Находясь в толпе, с устройством еще хоть как-то можно справиться, пользуясь одной рукой, но если для этого требуются две руки, то задача существенно усложняется. Как характер доставляемой информации, так и условия использования приложения оказывают значительное влияние на то, каким образом должен быть спроектирован пользовательский интерфейс. Решение проблем подобного рода требует творческого подхода.
Обеспечение последовательности подхода к проектированию пользовательского интерфейса требует соблюдения определенной дисциплины. Одним из признаков неудачно спроектированного пользовательского интерфейса являются различные рода нарушения его единообразия в процессе использования приложения. Вынуждая пользователя переводить взгляд на различные участки экрана или нажимать различные физические кнопки для простой навигации в пределах пользовательского интерфейса, вы доставите ему много неудобств. Как и во всем, что касается многих других аспектов проектирования для мобильных устройств, эта проблема не является специфической для устройств, но усугубляется в этом случае тем, что устройства предлагают пользователю пространственно ограниченное рабочее поле, требующее концентрации внимания в пределах ограниченного пространства; в этих условиях любые недостатки навигации существенно усиливаются и весьма затрудняют работу с приложением. Соблюдение строго определенного подхода, гарантирующего согласованность и простоту использования приложения, имеет очень большое значение.
Строгое следование определенному подходу требуется также и при реализации кода пользовательского интерфейса, что будет гарантировать гибкость кода и его открытость для проведения экспериментов и дальнейшего усовершенствования. Коду пользовательского интерфейса свойственно быстро разрастаться и становиться запутанным. В результате незначительных тактических улучшений кода, накладывающихся друг на друга, основа кода становится хрупкой и начинает сопротивляться внесению изменений. Дисциплинированный подход необходим для того, чтобы не дать коду пользовательского интерфейса превратиться в монолит, состоящий из сложных и тесно переплетающихся между собой подсистем. Чтобы этого не произошло, вы должны описать и реализовать пользовательский интерфейс в виде жизнеспособного набора дискретных состояний. Реализация каждого состояния пользовательского интерфейса должна быть изолированной от других состояний, дабы возврат к предыдущим этапам ее разработки не сопровождался дестабилизацией остальных состояний.
В соответствии с ранее приводившимися в этой книге рекомендациями, привлечение подхода, основанного на использовании конечного автомата для описания и реализации пользовательского интерфейса мобильного приложения, сторицей себя окупит при проведении экспериментов, а также в процессе усовершенствования и сопровождения кода. Дисциплинированный подход к написанию программ нисколько не уменьшает их гибкость, напротив — он только усиливает ее.
Проектирование пользовательских интерфейсов мобильных приложений — увлекательный процесс. На этом пути вас могут подстерегать непредвиденные трудности, для разрешения которых вам придется мыслить по-новому. Перед разработчиками, воспитанными на проектировании приложений для настольных компьютеров или Web-браузеров, пользовательские интерфейсы мобильных устройств поставят ряд сложных проблем, которые необходимо будет преодолеть. Как разработчик мобильных приложений, вы должны научиться мыслить категориями, свойственными мобильным устройствам
Один размер для всего не годится
Еще несколько лет назад лозунг "пишется однажды — выполняется везде" был чрезвычайно популярным; мы все бросились писать приложения, которые бесшовно выполнялись под управлением различных настольных операционных систем, легко переносились на сотовые телефоны и без всякой переделки могли выполняться чуть ли не в наручных часах. В настоящее время представляется, что пользы от этой идеи примерно столько же, сколько от идеи об "универсальном ботинке" , если она и осуществима, то продукт во всех случаях не будет дотягивать до принятых стандартов.