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

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

Проектирование пользовательских интерфейсов мобильных приложений — увлекательный процесс. На этом пути вас могут подстерегать непредвиденные трудности, для разрешения которых вам придется мыслить по-новому. Перед разработчиками, воспитанными на проектировании приложений для настольных компьютеров или Web-браузеров, пользовательские интерфейсы мобильных устройств поставят ряд сложных проблем, которые необходимо будет преодолеть. Как разработчик мобильных приложений, вы должны научиться мыслить категориями, свойственными мобильным устройствам

<p>Один размер для всего не годится</p>

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

Представьте, насколько нелепо было бы мечтать о некоем едином универсальном ботинке, способном надеваться на ногу любого размера и исправно служить во всех случаях. Это означает, что его мог бы носить и шестилетний ребенок с его маленькой ножкой, и взрослый человек, и использовать его можно было бы в любых ситуациях, от покорения ледяной вершины до бальных танцев. Как-то я пытался танцевать в лыжных ботинках, и могу засвидетельствовать, что ничего хорошего из этого не получилось; как я танцую даже в подходящей обуви — это уже другой вопрос, рассмотрение которого выходит за рамки данной книги. Во всяком случае, концепция универсального пользовательского интерфейса рассыпалась по двум причинам 1) выпускаемые устройства имеют различные размеры и форму и 2) различные классы устройств оптимизированы для решения различных задач.

Тот факт, что выпускаемые устройства отличаются друг от друга своими размерами и форм-факторами самым непосредственным образом влияет на применимость любого заданного пользовательского интерфейса на том или ином устройстве. Так, по своим физическим размерам визуальный пользовательский интерфейс смартфона значительно уже интерфейса Pocket PC. В то же время, каждый из этих интерфейсов значительно уже интерфейса планшетного компьютера. Эти различия вовсе не произвольны и обусловлены тем, какой именно способ ношения устройства предполагается (например, в кармане брюк, кармане пиджака, в рюкзаке или портфеле), и в каких ситуациях оно должно использоваться. Размеры экрана устройства оказывают заметное влияние на способ представления информации, который вы должны выбрать. Важно и то, что механизмы ввода также меняются от устройства к устройству. Такие устройства, как смартфоны, снабжены расширенной 12-клавишной клавиатурой, но экранные указатели для них не предусмотрены, тогда как устройства PDA (персональные помощники) в качестве основного механизма ввода оборудуются сенсорным экраном.

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

Перейти на страницу:

Похожие книги