• Главная
  • Оглавление
  • Обратная связь
  • Лента RSS
  • Правила
Что здесь уже нашли

Оптимизируем мышиную возню

10 января 2008, 10:15

Одной из главных причин появления неудобных интерфейсов является тот факт, что разработчик как правило никогда сам не пользуется своей программой. По крайней мере использует ее в основном во время отладочного тестирования, а значит далеко не так активно, как заказчик. Именно отсюда и растут ноги проблемы - взгляды разработчика и конечного пользователя на "удобство" интерфейса зачастую диаметрально противоположны.

Самое смешное, что ни один из них не может аргументированно доказать правоту своих взглядов. Заказчик мотивирует тем, что его работники привыкли к тому-то и тому-то и потому хотят и дальше работать не переучиваясь. Разработчик, в свою очередь, утирает заказчику нос, объясняя, что работать с клавиатурой - анахронизм, на дворе 21 век, эти подходы устарели и его (разработчика) контора использует только новейшие достижения и перспективные технологии. А потому им лучше знать, что и как будет для пользователя удобнее. Но такие диалоги бывают только у продвинутых заказчиков. Большинство же "типовых клиентов" даже не подозревает какую важную роль играет интерфейс.

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

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

Вот некоторые мысли, которые помогут значительно улучшить интерфейс ориентированный на использование мыши:

  • На панелях окон желательно разместить максимальное количество кнопок различных действий

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

  • Меню должны иметь как можно меньше вложенных подменю

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

  • Должны быть максимально задействованы все доступные кнопки мыши

    Не забывайте, что бывают одинарные и двойные клики, а также можно отслеживать комбинации нажатых кнопок мыши (например, одновременно нажатые правая и левая кнопки). Это существенно расширяет количество выполняемых с помощью мыши команд.

    В качестве примера приведу некоторые "находки" интерфейса графического редактора CorelDRAW! и сравню их с Adobe Photoshop:

    • чтобы создать копию объекта, схватите его левой кнопкой мыши, оттащите и, не отпуская левую кнопку, щелкните правой. При этом исходно-захваченный объект вернется на свое место, а у вас "в руках" окажется его копия, которую вы можете тащить дальше.

      В фотошопе, для создания копии нужно ЗАРАНЕЕ нажать Shift, т.е. кроме мыши используется еще и клавиатура и кроме того, нельзя выполнить копирование в процессе перетаскивания.

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

      В фотошопе для активации режима трансформации приходится лезть в меню (Edit - Free Transform) или нажимать комбинацию Ctrl+T. Правда одновременно с масштабированием можно еще и поворачивать объект. Но зато для переключения в другие режимы (например для наклона объекта) приходится делать правый клик по объекту и выбирать нужный режим из выпадающего меню.

    • масштабирование с нажатой Ctrl дает изменение масштаба кратное 100%, т.е. 100%, 200%, 300%, -100% (отражение).

      Насколько я знаю, в PhotoShop такую операцию мышью сделать нельзя.

    • и т.д. Этот список можно еще долго продолжать.

  • Клики мыши следует комбинировать с нажатием клавиш "Shift", "Ctrl", "Alt"

    Это так же увеличит функциональность грызуна. Не забывайте, что даже с таким "скромным" набором элементов управления можно выстраивать очень хитрые комбинации типа: схватить объект левой кнопкой мыши, тащить объект с нажатой Ctrl + клики правой кнопкой.... :)

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

    Для вышеописанного выше "китайского кода" может быть такое, например, объяснение:

    • левой кнопкой хватаем и тащим объекты по экрану;
    • клавиша Ctrl позволяет тащить строго по горизонтали или вертикали;
    • клик правой кнопкой вызывает создание копии объекта в текущей позиции. т.е. мы делаем множественное копирование.

    Как видите, все вполне логично и моментально запоминается.

  • Естественно нужно максимально использовать возможности мыши по позиционированию

    Используйте мышь для передвижения и масштабирования окон и их зон, перемещения объектов. Часто даже матерые пользователи забывают (а многие об этом и не догадываются), что объекты можно таскать не только левой кнопкой, но и правой и даже средней. Например, в проводнике (Microsoft Windows Explorer) перетаскивание файла левой кнопкой вызовет действие по умолчанию (перемещение или копирование, в зависимости от того что и куда тащите), а перетаскивание того же файла правой кнопкой позволит самостоятельно выбрать действие: копировать, переместить или создать ярлык.

  • Везде где можно используйте возможности технологии "Drag-and-Drop"

    Пользователю гораздо удобнее схватить объект и перетащить его в корзину или в другое окно, чем отметить объект и потом лазить по пунктам меню (или по многочисленным тулбарам) в поисках команды удаления/переноса.

    Очень полезными бывают расположенные в окне "зоны посадки". В роли этих зон могут работать даже обычные кнопки тулбара. Например, было бы здорово, если бы в текстовом редакторе существовала возможность выделить кусок текста и перетащить его на кнопку принтера, тем самым послав на печать ТОЛЬКО выделенный текст. Согласитесь, это очень удобно.

  • Очень желательно реализовать грамотное поведение окон

    Окна, которые знают в какой момент им следует появиться на экране, а в какой исчезнуть - отличные помощники в работе. Посмотрите, как действуют окошки, расположенные по краям главного окна в среде Microsoft Visual Studio. Но это вовсе не предел. Эту идею можно еще очень долго развивать.

    Например, если пользователь ввел курсор мыши в поле контрола DropDownList (который не поддерживает ввод с клавиатуры, а просто позволяет выбирать варианты из списка возможных), то почему бы этому контролу не развернуться не дожидаясь пока пользователь кликнет по нему? Точно так же, он должен сам свернуться, как только курсор мыши покинул его - пользователь видимо передумал делать выбор.

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

  • В некоторых случаях стоит подумать о поведении, которое можно назвать "запоздалым исчезновением".

    Это то, чего сильно не хватает стандартному меню "Пуск" операционной системы Microsoft Windows. Идея состоит в том, чтобы окно меню исчезало не сразу после клика по его пунктам, а с некоторой задержкой. Таким образом пользователь, однажды развернув меню, сможет активировать сразу несколько пунктов. Меню должно исчезнуть только после того, как мышь его покинет.

    Пример: я, собираясь поработать в интернете, запускаю сразу несколько приложений: броузер, почтовый клиент, ICQ, какую-нить скачивалку. И для каждого запуска мне приходится повторять одни и те же действия: "Пуск" - "Все программы" - "Интернет" - и т.д. Описанное выше "запоздалое исчезновение" позволяет избавиться от этих абсолютно ненужных телодвижений.

  • Позвольте пользователю закреплять немодальные окна.

    В современных версиях оболочки Gnome для Linux существует гениальная по простоте и супер-полезная функция. Там можно установить атрибут "Поверх всех окон" (Always On Top) для абсолютно любого окна. В операционной системе Microsoft Windows лично мне очень сильно не хватает такой функции.

  • Закрепление вложенных меню.

    Еще одна классная идея касательно мышиного управления и меню подсмотрена мною в LiteStep. Там есть возможность закрепить на экране любое вложенное меню, т.е. сделать его независимым и не исчезающим. Получается этакий меню-подобный тулбар рабочего стола. И таких менюшек можно навешать столько сколько нужно. Это на самом деле бывает офигенно удобно. Респект создателям!

Оставить комментарий

Что есть грамотный интерфейс?

08 января 2008, 10:57

Что такое "грамотный интерфейс"? Это интерфейс, который позволяет выжать из пользователя максимум производительности.

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

Как показывает практика, самый лучший интерфейс - это тот, в котором пользователь сможет разобраться за пару минут без чтения документации и посторонней помощи. Какими же качествами должен обладать этот супер-интерфейс?

  • Интерфейс Должен быть привычным.

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

  • Интерфейс должен использовать знания и навыки, уже имеющиеся у пользователя.

    Если контрол выполняет некое "типовое" для многих программ действие (например печать данных или вставку из буфера обмена), то такой контрол в вашей программе должен и выглядеть и действовать точно так же как аналогичные контролы в других программах.

  • Интерфейс должен быть умным.

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

  • Интерфейс должен быть догадливым.

    Большинство типовых действий (или последовательностей действий) юезра можно предсказать еще на этапе проектирования интерфейса. Поэтому желательно, чтобы интерфейс мог "предугадывать" следующие действия пользователя и использовать эти "знания". К такого рода действиям относятся контекстные меню, изменяющие свой состав, модифицирующиеся тулбары, динамически изменяющие контент окна помощи и т.д.

  • Интерфейс должен быть удобным.

    Эргономика интерфейса определяется очень простым способом: чем больше действий пользователь во время работы может выполнять одним устройством (мышь, клавиатура, планшет,...), тем более правильно с точки зрения эргономичности разработан данный интерфейс.

  • Интерфейс должен быть быстрым.

    КПД пользователя и так не очень высокий и не стоит его еще более уменьшать за счет тормознутости интерфейса. Реакция компьютера на действия пользователя должна быть максимально быстрой. Следовательно всякие фишки с анимацией окон, проявляющимися меню и прочей фигней, из-за которой пользователю приходится прерываться (пусть даже на доли секунды) - ЗЛО! Окна должны появляться молниеносно как только в них возникла необходимость и так же быстро исчезать, как только необходимость в их отображении пропала. Крутящиеся на экране песочные часы - признак плохо спроектированного интерфейса или программы в целом.

  • Интерфейс должен быть Интерфейсом!

    Главная цель интерфейса - поддерживать диалог с пользователем. Т.е. с помощью интерфейса пользователь и программа обмениваются информацией. Значит интерфейс должен давать пользователю максимум информации. Плохой пример из этой области - окно с единственной надписью "Ждите, идет расчет...". Хороший пример - окно, содержащее кроме надписи еще и "градусник" хода процесса и показывающее примерное время до завершения. Высший пилотаж - добавить к этому окну звуковой сигнал по окончании процесса.

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

Оставить комментарий

Билл Гейтс покидает Microsoft.

08 января 2008, 09:47

Выступление Билла Гейтса на выставке высоких технологий «CES 2008» стало сенсацией. Глава корпорации «Microsoft» уже неоднократно использовал подмостки выставки для предсказания будущего в сфере инновационных технологий.

Однако на этот раз Гейтс попытался предсказать будущее не только высоким технологиям, но и самому себе.

Около четырех тысяч человек собрались в отеле «Venetian Hotel's Palazzo Ballroom» в Лас Вегасе, чтобы услышать доклад главы корпорации «Microsoft» Билла Гейтса, приуроченной к ежегодной выставке высоких технологий CES 2008.

«Мое первое выступление здесь состоялось очень давно, в 1994 году, - начал Гейтс. – Это было время, когда Windows 95 делал свои первые шаги, а эпоха Интернет только зарождалась».

Будущее инновационных технологий Гейтс назвал «вторым цифровым тысячелетием», путь к которому был проложен благодаря совместной работе множества компаний, разрабатывавших программное обеспечение и совершенствовавших возможности цифровых технологий.

«Мы проделали огромный путь и это только начало», - подчеркнул он.

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

Поэтому продукты ведущих производителей будут ориентированны на конечного пользователя. Кроме того, многие программы станут универсальными и смогут использоваться не только на персональном компьютере, но и в Интернете, на мобильном телефоне, на экране телевизора.Глава «Microsoft» выделил три основных тенденции, которые, по его мнению, будут превалировать в будущем.

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

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

При этом передача станет возможной в любом направлении между большим кол-вом пользователей.

Третий фактор, возможности которого, по мнению Гейтса, недооценивают больше всего – это создание «естественного интерфейса».

«Символом первой цифровой эры стали мышь и клавиатура, - отметил создатель «Microsoft» – Однако уже сейчас мы развиваем новые формы взаимодействия машины и пользователя».

В настоящее время появились устройства, для управления которыми теперь необходим только «стилос», а некоторым вообще достаточно прикосновения. При этом, отметил Гейтс, будущее – за голосовым управлением.

Что касается корпорации «Microsoft», она сосредоточится на разработке кроссплатформенных решений, улучшении пользовательских интерфейсов и создании новых мультимедийных сервисов, устройств ввода и систем распознавания речи.

Однако предсказания Гейтса не ограничились сферой инновационных технологий. Оказалось, что в новое цифровое десятилетие компания «Microsoft» вступит уже без своего бессменного руководителя.

Отметив, что это его последний публичный доклад, Билл Гейтс объявил о том, что в июле намерен сложить с себя полномочия руководителя «Microsoft» и вплотную заняться деятельностью своего благотворительного фонда «Bill & Melinda Gates Foundation».

Гейтс подчеркнул, что день сложения полномочий станет первым днем с тех пор, как ему исполнилось семнадцать, когда он не будет полноценным сотрудником корпорации. «Я пока не знаю, как будет проходить мой последний день в качестве руководителя. Знаете, это немного странно. Вот что бы вы делали в ваш последний день?», – цитирует Гейтса пресс-служба корпорации.

Вслед за этим изумленной публике был представлен видео-коллаж с размышлениями на тему дальнейшей карьеры великого изобретателя и новатора, специально подготовленный Гейтсом и его друзьями.

Оставить комментарий

Page: 22 23 24 25 26 27 28 29 30 31
Fast: 10 20 30

Календарь

февраль, 2012
пн вт ср чт пт сб вс
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29        

Меню

  • Главная страница
  • Оглавление блога
  • Лента новостей
  • Обратная связь
  • Правила блога

Анонсы по темам

  • Все посты блога
  • С миру по нитке
  • Мысли вслух
  • Графика и фото
  • Кривизна платформы .NET
  • Грамотные интерфейсы
  • WEB-программирование
  • FlatCMS - шустрая и гибкая
  • Доработки Lasto-блога

Категории

  • Все посты по порядку
  • С миру по нитке
  • Графика и фото
  • Кривизна платформы .NET
  • Грамотные интерфейсы
  • WEB-программирование
  • FlatCMS - шустрая и гибкая
  • Доработки Lasto-блога

Сервисы

  • Поиск по блогу
  • Поиск по всему сайту
  • Шпионское досье

Реклама


Стоимость сайта

Мой вебсайт стоит 865 404,18 руб

Статистика

    Widgetize!
  • Время работы: 0,00589 сек.
  • Память: 4 864 кБт
  • Статистика привратника
Copyright FIT-Media.com, © 2007-2012
Главная | Общее оглавление | Обратная связь | Правила блога | Лента RSS