[Сразу оговорюсь, что по ходу изложения я буду подразумевать несенсорные смартфоны. Пусть эта оговорка сейчас и выглядит довольно странно.]
Давно ненавязчиво хотелось поговорить вот о чём.
Обычно программист имеет дело либо с API целевого устройства, либо с прочими прикладными библиотеками, либо реализовывает свои собственные алгоритмы.
Так? Так.
Но наступает момент, когда ему нужно кардинально переключить фокус внимания.
Обычно этот "момент" называют "UI", "пользовательский интерфейс".
Грубо говоря, нужно предоставить пользователю рукоятки и педали, с помощью которых он сможет управлять этой системой программных механизмов, что вы (меня ведь читают сейчас программисты, вернее разработчики?) создаёте.
Обычно энтузиасты опенсорца относятся к этой задаче, прямо скажем, довольно прохладно.
Если только не направляют своё рвение и пыл именно игру с графикой.
В этом случае пользователи могут быть спокойны: что-что, а уж выглядеть приложение будет достаточно прилично и пользоваться будет вполне удобно.
Но я сейчас хочу заострить внимание уже порядком утомленного моим предыдущим словоблудием читателя на таких знакомых вещах как:
<!--QuoteBegin-->
*|1|- огромные меню с десятком вкладок, в коих таятся по полдесятку пунктов;
*|2|- откровениями автора приложения об особенностях API, повлиявших на тот или иной пункт настроек;
*|3|- вырвиглазный вид собственно приложения, меню, диалогов с пользователем, окна настроек приложения, неюзабельную помощь по приложению;
*|4|- может я и занудствую, но: шорткаты (желательно настраиваемые) для доступа к наиболее важным|часто используемым возможностям и/или хотя бы быстро вызываемое "короткое" меню с их списком;
*|5|- всё остальное из категории "чтобы было".
[Я бы хотел использовать ссылки из пунктов выше на их развернутое описание, но не уверен, что это можно сделать через BB-коды.]
|1|:
Допустим я только установил приложение и, естественно, хочу его изучить поподробнее (кто там шутит про "дробление попы"?). Такое большое меню можно просто устать исследовать.
А ведь можно сделать автосортировку пунктов в нём таким образом, чтобы последняя открытая вкладка перемещалась в топ, а последний использованный пункт в ней в подвал вкладки. Таким образом:
а) число кликов будет сокращено;
б) пользователь УЖЕ с первых шагов использования приложения может наблюдать внимание к его запросам.
Это плюс.
Кроме того, (здесь я провожу мостик к пункту |4|), последний пункт меню (а то и целую вкладку) можно поместить в то самое "быстрое" меню по "горячей" клавише, чтобы не беспокоить главное меню. Зачастую ведь некоторые действия хочется повторить несколько раз. Пользовательские макросы? Хорошая идея, но сейчас я не стану копать так глубоко.
|2|:
Пользователю обычно хуже всякого программиста разбирается в багах программного инструментария.
Программист знает, что "ложки нет" (привет, Нео), пользователь же спокойно кушает этой ложкой и не парится.
И чем меньше он будет париться, используя ваше приложение, тем больше оно ему понравится.
Меньше телодвижений, побольше интуитивного тырканья по кнопкам, пунктам меню etc., поменьше предупреждений типа "если здесь чуть ошибиться с параметром, то наступит Армагеддон" -- верный путь к успеху.
Если пользователь может прострелить себе ногу, предусмотрите всё, почти всё, или... ищите безногого пользователя.
|3|:
Сделайте пользователю "красиво", а не "коряво" и будете вознаграждены. По крайней мере красивый интерфейс может добавить баллов вашему приложению, не принося при этом ни капли нового функционала. Очень красивый -- ещё лучше
|4|:
Кажется, здесь всё понятно. Термин "шорткат" говорит сам за себя. С помощью шорткатов можно сделать приложение действительно интерактивным, а интерфейс отзывчивым на сиюминутные потребности пользователя.
Вспомните приложения, господствующие в популярных нишах хотя бы на компьютере: браузеры, текстовые редакторы, файловые менеджеры ... Везде есть шорткаты.
Что говорить про игры, лидеры по требовательности к интерактивности взаимодействия пользователя с приложением.
|5|:
Ещё раз напоминаю слова про то, что "ложки нет": не мыслите как юзер, когда пишете пользовательский интерфейс. Там, где юзер видит красивую кнопку, вам возможно придётся делать ворох работы. Не бойтесь её. Только не надо, пожалуйста, не надо останавливаться на
image.rectangle(((x, y), (x + 30, y + 20)), fill=0)
image.text((x, y + 18), u'Button')
------------------------------
wbr, Virtuos86


Хорошее замечание графистам

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