За пару де??тков лет, прошедших ? момента по?влени? первых ?лементов управлени? - кнопок, полей ввода, выпадающих ?пи?ков и т.д. - они дей?твительно ?тали «?тандартом» при разработке практиче?ки любого пользователь?кого интерфей?а. С одной ?тороны преимуще?тва подобной ?тандартизации в виде единообразного поведени? и внешнего вида недооценивать нельз?: в значительной ?тепени благодар? ?тому компьютеры ?тали более«пер?ональными», а интерфей?ы - более «друже?твенными». С другой ?тороны прогре?? не ?тоит на ме?те, по?тому ра??читывать на то, что интерфей?ные ?лементы управлени? о?танут?? без изменений ещё пару де??ток лет, не ?тоит. Что же ждёт на? в ближайшем будущем?

Внешний вид и поведение ?амых первых «контролов» во многом определ?л?? ?вой?твами компьютеров того времени - ?лабой вычи?лительной мощно?тью, малым размером ди?пле?, низким разрешением ?крана, ограниченным количе?твом цветов и бедно?тью у?трой?тв ввода. В результате взаимодей?твие пользовател? ? интерфей?ом получало?ь довольно ограниченным и ди?кретным. «Контролы» были идиомами* (не имели аналогов в реальном мире, работе ? ними приходило?ь учить??), но идиомами большей ча?тью ?о?тавными и не позвол?ющими ?еб? модифицировать.

За прошедшие годы пер?ональный компьютер претерпел значительные изменени?. Мощно?ть проце??оров приумножила?ь в миллионы раз. Размеры, цветно?ть и разрешение ди?плеев выро?ли. Даже у «мыши» по?вило?ь коле?о, не говор? уже о де??тках других новых у?трой?твах ввода. В?ё ?то дало возможно?ть критиче?ки оценить до?тоин?тва и недо?татки привычных ?лементов управлени? и зан?ть?? ра?ширением ?тарых «контролов» и ?озданием новых.

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

Движение в ?том направлении будет продолжат?? и дальше. В ближайшем будущем пользователь?кий интерфей? будет ?о?то?ть из комбинаций про?тых идиом. Пожалуй только за неизменно?ть кнопки можно быть уверенным ещё в течении долгого времени: ибо ?то не нова? идиома, а метафора**, знакома? нам из реального мира.

За по?ледние годы при разработке различных интерфей?ов мне уже приходило?ь и?пользовать кое-какие новые идиомы, а также приходило?ь наблюдать множе?тво ?лучаев того, как готовый интерфей? можно был бы улучшить за ?чёт их применени?. Ча?ть их них опи?ана ниже.

?е и?ключено что у ва? возникнет мы?ль «Где-то ? уже что-то подобное видел»*** или даже «Я уже и?пользовал ?то в ?воём интерфей?е!». Это правильно, ?то лишний раз доказывает что е?ли ?хожие решени? по?вл?ют?? незави?имо друг от друга, значит проблема дей?твительно ?уще?твует. Однако до ?их пор никто ещё не вз?л?? обобщить в?е ?ти новые ве?ни? и выделить наиболее типичные ?лементы. Я не?кромно решил и?править ?тот недо?таток.

Со?тавной Элемент (Composite Item) ****

Дл? демон?трации давайте во?пользуем?? хот? и выдуманным, но до?таточно типичным примером. Пред?тавьте ?ебе некое медицин?кое приложение дл? учёта пациентов:

Е?ли выбрать врача, в таблице внизу отобразит?? ?пи?ок ему принадлежащих пациентов, причём первый ?толбец важен, так как он показывает тип медицин?кой ?траховки - ча?тна? (P - private) или го?удар?твенна? (S - state).

В первую очередь обратите внимание на ?пи?ок пациентов: ?то типичный много?толбцовый ?пи?ок (ListView в терминологии Windows). Проанализируем его о?новные недо?таки:

  • Дл? разработчика ?тот ?пи?ок удобен тем, что можно добавл?ть ?колько угодно ?толбцов, не о?обо забот??ь о том, в каком пор?дке они должны ?то?ть и нужны ли они вообще. В результате подправка ширины ?толбцов так чтобы была именно нужна? информаци? (о?обенно е?ли ?пи?ок может мен?ть размеры) и на?тройка их пор?дка как правило полно?тью ложит?? на пользовател?.
  • От того что в?е данные ра?положены в одной ?трочке, большие объёмы информации зача?тую привод?т к по?влению горизонтальной поло?ы прокрутки, резко ?нижа? ?ффективно?ть операций ? «контролом». При ?том даже увеличение ширины ?пи?ка не ?па?ает: угол зрени? человека ограничен, по?тому ширина блока тек?товой информации не должна превышать определённого размера (обычно 60-80 ?имволов).
  • Ключ к решению ?тих проблем лежит в понимании того факта, что хот? ?уще?твуют приложени?, где количе?тво ?толбцов и их ?одержимое измен?ет?? «на лету», в большин?тве ?лучаев в?е ?толбцы и типы данных изве?тны заранее, ещё на ?тапе разработки программы. Добавим ?юда у?овершен?твованные изобразительные ?по?обно?ти компьютера, позвол?ющие наконец выйти за пределы одной вы?оты шрифта дл? отображени? одной ?троки данных и получим новую интерфей?ную идиому - ?пи?ок из ?о?тавных ?лементов. Вот один из них:

    Помимо избавлени? от перечи?ленных выше недо?татков, ?о?тавной ?лемент имеет дополнительное до?тоин?тво: каждый ?лемент информации находит?? на фик?ированном ме?те, что у?кор?ет проце?? ра?познавани?, тем ?амым повыша? общую ?ффективно?ть работы ?о ?пи?ком.

    Поло?а Обзора (Overview Bar)

    ?е отход? от ка??ы возьмём?? ещё за один недо?таток ?пи?ка: поло?а прокрутки хот? и показывает, кака? ча?ть ?лементов в?его ?пи?ка ?ейча? отображает?? в окне, но о ?амих ?лементах, о?тавших?? «за кадром» ничего не говорит. Однако зача?тую ключевую информацию о ?крытых ?лементах было бы полезно знать заранее, чтобы ??кономить ненужное передвижение по ?пи?ку.

    Как раз в таких ?луча?х может помочь поло?а обзора, дополнительное поле в ?пи?ке, ?одержащее как бы «уменьшенную» копию ?амого ?пи?ка. Е?ли предположить, что в нашем примере ?амым важным фактором ?вл?ет?? тип ?траховки, то ?пи?ок ? поло?ой обзора мог бы выгл?деть например так:

    Любой клик по желаемой пиктограмме в поло?е обзора приведёт к отображению нужного ?лемента на ?кране. Текущее выделение также отображает?? в поло?е обзора.

    ?а мой взгл?д положение поло?ки ?лева - наилучшее из в?ех возможных. Горизонтальные положени? (?верху и ?низу) заведомо неудобны так как не ?оответ?твуют вертикальному направлению ?пи?ка. ?а первый взгл?д заманчивым выгл?дит предложение ?овме?тить поло?у обзора ? поло?ой прокрутки, однако при детальном направлении вы??н?ют?? два недо?татка:

  • Ползунок будет в?егда закрывать ча?ть обзора, меша? ориентировать??
  • Даже е?ли ?делать поло?у обзора не интерактивной, а в?его лишь отображающей информацию, у пользовател? неизбежно по?вит?? желание ткнуть в интере?ующее его ме?то, ? очевидной целью увидеть ?оответ?твующий ?лемент. Однако при ?том ?работает логика поло?ы прокрутки, и ?пи?ок про?то ?двинет?? на «?траницу» вниз.
  • Е?ли же поме?тить обзорную линейку р?дом ? поло?ой прокрутки, ?то неизбежно приведёт к большому количе?тву моторных ошибок - промахов.

    Разделители ?пи?ка (List Separators)

    Суть ?того ?лемента во введении дополнительной (причём ?трого одноуровневой) кла??ификации, что упрощает пои?к и избавл?ет от необходимо?ти по?то?нно выбирать критерий отображени?, как ?то например ?делано в нашем и?ходном примере: нужно вначале выбрать врача, чтобы увидеть ?пи?ок его пациентов. Вот как ?то приблизительно выгл?дит:

    Ме?то на ?амих разделител?х можно также и?пользовать дл? ?уммарной информации, как ?то показано на ри?унке. Можно также добавить возможно?ть «?крыти?/ра?крыти?» групп.

    Конечный результат выгл?дит довольно привлекательно, однако е?ли вы покажете ?тот прототип вашему программи?ту, вы увидите неподдельный ужа? в его глазах. Отча?ти он будет прав, потому что ?овременные ?ред?тва разработки не имеют удобных возможно?тей ?оздани? ?об?твенного ?лемента управлени?. В результате программи?ту приходит?? выполн?ть много ?кучной и нудной работы, а ?того не любит никто.

    Определённый ?двиг в ?том направлении ожидает?? ? выходом новой операционной ?и?темы Longhorn. Суд? по предварительным ?пецификаци?м, ?оздавать новые ?лементы управлени? в ней будет гораздо легче чем ?ейча?. И хот? ? одной ?тороны в?ё ?то богат?тво возможно?тей приведёт ? по?влению множе?тва ?овершенно «неюзабельных» ?лементов интерфей?а, никто не мешает и?пользовать его по назначению - дл? ?оздани? по- на?то?щему удобного пользователь?кого интерфей?а.

    ?ппендик?


    * Пон?тие «идиома» обычно и?пользует?? в контек?те какого либо натурального ?зыка. «Идиома - ?то ?лово?очетание или выражение, значение которого невозможно пон?ть на о?новании обычных значений ?о?тавл?ющих его ?лов.»

    ** «МЕТ?ФОР? ж. греч. иноречие, ино?ловие, ино?казанье; обин?к; риториче?кий троп, перено? пр?мого значени? к ко?венному, по ?ход?тву пон?той» В. Даль

    *** Пример и?пользовани? Composite View в Reget Junior:

    и в Microsoft Outlook 2003:

    **** ?азвание под?казано ?лек?еем Копыловым.