категории | RSS

[Сразу оговорюсь, что по ходу изложения я буду подразумевать несенсорные смартфоны. Пусть эта оговорка сейчас и выглядит довольно странно.]

Давно ненавязчиво хотелось поговорить вот о чём.
Обычно программист имеет дело либо с API целевого устройства, либо с прочими прикладными библиотеками, либо реализовывает свои собственные алгоритмы.
Так? Так.
Но наступает момент, когда ему нужно кардинально переключить фокус внимания.
Обычно этот "момент" называют "UI", "пользовательский интерфейс".
Грубо говоря, нужно предоставить пользователю рукоятки и педали, с помощью которых он сможет управлять этой системой программных механизмов, что вы (меня ведь читают сейчас программисты, вернее разработчики?) создаёте.
Обычно энтузиасты опенсорца относятся к этой задаче, прямо скажем, довольно прохладно.
Если только не направляют своё рвение и пыл именно игру с графикой.
В этом случае пользователи могут быть спокойны: что-что, а уж выглядеть приложение будет достаточно прилично и пользоваться будет вполне удобно.
Но я сейчас хочу заострить внимание уже порядком утомленного моим предыдущим словоблудием читателя на таких знакомых вещах как:
<!--QuoteBegin-->

<!--QuoteEBegin-->
*|1|- огромные меню с десятком вкладок, в коих таятся по полдесятку пунктов;
*|2|- откровениями автора приложения об особенностях API, повлиявших на тот или иной пункт настроек;
*|3|- вырвиглазный вид собственно приложения, меню, диалогов с пользователем, окна настроек приложения, неюзабельную помощь по приложению;
*|4|- может я и занудствую, но: шорткаты (желательно настраиваемые) для доступа к наиболее важным|часто используемым возможностям и/или хотя бы быстро вызываемое "короткое" меню с их списком;
*|5|- всё остальное из категории "чтобы было".

[Я бы хотел использовать ссылки из пунктов выше на их развернутое описание, но не уверен, что это можно сделать через BB-коды.]

|1|:
Допустим я только установил приложение и, естественно, хочу его изучить поподробнее (кто там шутит про "дробление попы"?). Такое большое меню можно просто устать исследовать.
А ведь можно сделать автосортировку пунктов в нём таким образом, чтобы последняя открытая вкладка перемещалась в топ, а последний использованный пункт в ней в подвал вкладки. Таким образом:
а) число кликов будет сокращено;
б) пользователь УЖЕ с первых шагов использования приложения может наблюдать внимание к его запросам.
Это плюс.
Кроме того, (здесь я провожу мостик к пункту |4|), последний пункт меню (а то и целую вкладку) можно поместить в то самое "быстрое" меню по "горячей" клавише, чтобы не беспокоить главное меню. Зачастую ведь некоторые действия хочется повторить несколько раз. Пользовательские макросы? Хорошая идея, но сейчас я не стану копать так глубоко.
|2|:
Пользователю обычно хуже всякого программиста разбирается в багах программного инструментария.
Программист знает, что "ложки нет" (привет, Нео), пользователь же спокойно кушает этой ложкой и не парится.
И чем меньше он будет париться, используя ваше приложение, тем больше оно ему понравится.
Меньше телодвижений, побольше интуитивного тырканья по кнопкам, пунктам меню etc., поменьше предупреждений типа "если здесь чуть ошибиться с параметром, то наступит Армагеддон" -- верный путь к успеху.
Если пользователь может прострелить себе ногу, предусмотрите всё, почти всё, или... ищите безногого пользователя.
|3|:
Сделайте пользователю "красиво", а не "коряво" и будете вознаграждены. По крайней мере красивый интерфейс может добавить баллов вашему приложению, не принося при этом ни капли нового функционала. Очень красивый -- ещё лучше smile.
|4|:
Кажется, здесь всё понятно. Термин "шорткат" говорит сам за себя. С помощью шорткатов можно сделать приложение действительно интерактивным, а интерфейс отзывчивым на сиюминутные потребности пользователя.
Вспомните приложения, господствующие в популярных нишах хотя бы на компьютере: браузеры, текстовые редакторы, файловые менеджеры ... Везде есть шорткаты.
Что говорить про игры, лидеры по требовательности к интерактивности взаимодействия пользователя с приложением.
|5|:
Ещё раз напоминаю слова про то, что "ложки нет": не мыслите как юзер, когда пишете пользовательский интерфейс. Там, где юзер видит красивую кнопку, вам возможно придётся делать ворох работы. Не бойтесь её. Только не надо, пожалуйста, не надо останавливаться на

image.rectangle(((x, y), (x + 30, y + 20)), fill=0)
image.text((x, y + 18), u'Button')
------------------------------
wbr, Virtuos86

Virtuos86
2011-01-17T05:03:30Z

Здесь находятся
всего 0. За сутки здесь было 0 человек

Комментарии 7

#7   SiarZ    

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


0 ответить

#7   Virtuos86    

Спасибо. Мне сейчас любая поддержка зело кстати.
P.S. то ли ещё будет fellow


0 ответить

#7   Armen-82.08    

Кайфово и душевно!Молодец, как всегда приятно почитать и сделать свои выводы.smile


0 ответить

#7   Virtuos86    

Лениво. Я в твиттер ленюсь писать, а сюда тем более.


0 ответить

#7   Zaterehniy    

спасибо . Занятно почитать. Фейс графический бывает трудно подгонять если у тебя нет такого экрана. Я вот в ландшафтном режиме у себя на н86 пробовал(320х240), вроде всё равно а на другом 320х240 криво.
-------------
Добавлено в 12.41: в этой статье неплохо было бы концовку доработать и приправить скринами интерфейсов для наглядности.smile


0 ответить

#7   Virtuos86    

Это черновая, скорее дизайнерская работа. Программисту трудно заниматься подгонкой элементов GUI, для него нет источника \"раздражения\" для ума.
Тут надо вёрсткой заниматься, 176*208, 240*320 ещё куда ни шло, да ведь есть и более экзотические разрешения.


0 ответить

#7   dimy44    

Спасибо, поучительно.
З.Ы. а еще желательно не затачивать это под один размер экрана =))


0 ответить