7

Недавно я играл с php-gtk, и в прошлом я экспериментировал с Java, чтобы сделать приложения для графического интерфейса «привет мир».С чего выгодно получается профессиональный блеск приложения GUI?

Однако оба этих типа приложений имели немного неуклюжий (почти детский) вид и чувство. Я не могу отрицать, что они удобны для создания приложений для внутреннего использования (и я полностью уважаю объем усилий сообщества, который входит в эти проекты). Но я не стал бы с гордостью продавать его как коммерческое приложение с ценой, скажем, 450 или 1000 фунтов стерлингов.

Если бы я хотел сделать приложение, в котором были видны, скажем, Firefox для Windows или Adobe xyz, какой GUI/язык использовать?

Является ли «профессиональным блеском» или умным внешним видом и чувством на 100% до дизайнеров, или это так, что, независимо от того, насколько хорош дизайнер, выбор правильной структуры графического интерфейса необходим для получения этого взгляда?

+0

спасибо за все эти ответы - все действительно полезные вещи –

ответ

7

Есть несколько аспектов наличия полированного UX для части программного обеспечения.

  1. Использование самой родной рамки для платформы. Win32/WPF для Windows, Cocoa для Mac и т. Д.
  2. Визуальные артефакты приложения являются когерентными - сюда входят изображения, графика, значки на панели инструментов и т. Д.
  3. Следуя рекомендациям и рекомендациям платформ.
3

Всегда старайтесь использовать инфраструктуру графического интерфейса пользователя, которая используется в среде вашего рабочего стола. Библиотеки .NET, вероятно, лучше всего подходят для создания приложений Windows. GTK + всегда лучший в GNOME, а Qt хорошо работает на KDE - хотя все три работают над системами друг друга, их визуальная привлекательность уменьшается с отсутствием визуальной интеграции.

+1

Абсолютно верно. Используйте свой внешний вид для своей платформы. Java-приложения на Windows всегда выглядят ужасно (думаю, Lotus Notes). Используйте .Net для Windows (при условии, что вы хотите использовать управляемый язык). – jwismar

+0

Я бы отметил, что даже чистая Qt отлично не интегрируется с KDE - на моих компьютерах по крайней мере есть заметная разница между интерфейсами на основе библиотек Qt и теми, которые основаны на собственных библиотеках пользовательского интерфейса KDE. Хотя это не относится к вопросу ... –

+1

Примечания Lotus были первоначально написаны на сборке ... которая является _definition_ native. –

1

Мне не нравится, как графические интерфейсы приложений Java имеют тенденцию выглядеть с использованием обычных наборов инструментов. Если вам нравится, как выглядит Firefox, вы можете ознакомиться с XUL и графическим интерфейсом, который используется большинством приложений Mozilla. Редактор Komodo/IDE использует те же инструменты (наряду с несколькими другими приложениями). GTK очень мощный, и я действительно сомневаюсь, что это то, что мешает вашим приложениям иметь этот профессиональный блеск. Продолжайте исследовать его функции и переосмыслить лучший способ отображения ваших компонентов, и я уверен, что вы наткнетесь на удобство, которое будет лучше.

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

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

Удачи вам!

+0

спасибо за ответ. Re: «Делайте заметки о том, как дела обстоят» - га. Да, я начал видеть мои надежные старые приложения в новом свете - мои экранные суппорты всегда отмечали минимальную высоту/ширину размера и рамки кадра и всевозможные ... все это очень отвлекало; o) –

3

Используемый GUI API/язык совершенно не имеет отношения к дизайну пользовательского интерфейса, хотя некоторые API-интерфейсы упрощают или ускоряют реализацию.

Хороший пользовательский интерфейс о:

  • Хороший графический дизайн/произведения искусства (визуальный баланс и симметрию, дополнительные цвета, визуально «приятные» формы и макеты, визуальная согласованность внутри вашего приложения и с другими приложениями вокруг него - согласованное позиционирование, размеры, пробелы, цвета и т. д.)
  • Понимание рабочих процессов пользователя и создание того, что они хотят делать легко и интуитивно. Это часто означает реализацию 3 или 4 способов достижения одного и того же действия (например, «Копировать и вставлять» обычно можно достичь: main-menu-> copy/paste, context-menu-> copy/paste, ctrl + c/v, кнопка: копирование/вставка, перетаскивание)
  • Сохранение всего прочего. Удалите как можно больше, чтобы сократить пользовательский интерфейс до того, что нужно пользователю, и не более того.
  • Будучи интуитивно понятным и неудивительным пользователем. Элементы управления должны быть похожими на те элементы управления, которые пользователь знает, работают как те элементы управления, которые пользователь знает, и располагаются в тех местах, которые пользователь ожидает от своего предыдущего опыта работы с компьютером.
  • После конвенций (позиция OK/Cancel кнопки в стандартных местах, использующих ОС определенные цвета для выделения выбранных объектов и т.д.)

Чтобы получить это, вы должны смотреть на много «хороших» приложений и рассеять то, что делает их хорошими. Получите хорошего художника/графического дизайнера, чтобы нарисовать хорошие значки и т. Д. И потратьте много времени на размышления о рабочих процессах пользователя.

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

4

Это перекрывающееся немного с ответом Игоря, но вот мое взятие:

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

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

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

Просто посмотрите на Windows: большинство неместных наборов инструментов неправильно используют навигацию по клавиатуре - клавиши со стрелками, «Главная», «конец», «PgUp» и «PgDown», поведение, измененное с помощью Ctrl, расширение выделения с помощью Shift дает до 32 вариантов поведения. Копировать & Вставить традиционно с помощью Ctrl + C/Ctrl + X/Ctrl + V и Shift + INS, Shift + DEL и отсутствует. Мышь двойной щелчок часто выбирает слово, тройной щелчок мыши иногда предложение, строку или абзац.

Время отклика и Muscle Memory - Есть, в основном, два режима работы интерфейса:

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

Там, однако, два требования, что: ответ должен быть однородным и «мгновенная», и следующее действие должно быть зарегистрировано правильно сразу (по крайней мере, в течение 10 мс)

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

Полированный пользовательский интерфейс занимает много времени, чтобы получить право - Хорошая библиотека управления может решить большинство проблем, связанных с контролем, но есть некоторые последние 10%, которые принимают 90% времени, и у вас есть управляющие взаимодействия. Вы должны попробовать разные подходы, вы должны ожидать, что пользователи с рефлексами, подготовленными FPS, вам придется попробовать всевозможные рабочие процессы.

Cross-Platform инструментарии не могут получить его совершенно правильно - они застряли между молотом и наковальней: они могут выбрать для внутренней последовательности независимо от платформы, или будучи в соответствии с платформой они в настоящее время работают на. Чтобы это исправить, последнему часто требуется код, зависящий от платформы, в вызывающем коде, фактическая вещь, которую вы пытаетесь избежать.