Я играл вокруг с php-gtk недавно, и в прошлом я экспериментировал с Java для создания GUI 'привет мировыми' приложениями.
Однако оба этих типа приложений имели что-то вроде неуклюжее (почти ребяческий) стиль им. Я не могу отклонить это, они удобны для того, чтобы сделать приложения для внутреннего использования (и я полностью уважаю количество общественного усилия, которое входит в эти проекты). Но я не обязательно был бы горд продать его в качестве коммерческого применения с ценой, скажем, 450£ или 1 000£.
Если я хотел подать заявку, которая имела стиль, скажем, Firefox для Windows или Adobe xyz, что GUI/язык я должен использовать?
'Профессиональный блеск' или умный стиль 100% вниз разработчикам или имеет место он, который, неважно, насколько хороший разработчик, выбирая правильную платформу GUI, важен получить тот взгляд?
Есть несколько аспектов для создания отшлифованного UX для программного обеспечения.
Всегда старайтесь использовать среду графического интерфейса пользователя, которая используется в среде вашего рабочего стола. Библиотеки .NET, вероятно, лучше всего подходят для создания приложений для Windows. GTK + всегда лучший в GNOME, в то время как Qt хорошо работает в KDE - хотя все три работают в системах друг друга, их визуальная привлекательность снижается из-за отсутствия визуальной интеграции.
Это немного перекрывается с ответом Игоря, но вот мой вариант:
Native Control Look - Элементы управления пользовательского интерфейса сегодня имеют довольно сложный вид. Есть много визуальных подсказок, которые мы инстинктивно извлекаем из них, и даже если это белый прямоугольник с какой-то рамкой, с тенью вонга он выглядит странно неуместно. Контекстное меню часто не просто открывается сегодня, оно скользит в каком-то направлении или постепенно исчезает.
Native Control Behavior - Даже более сложный, чем пользовательский интерфейс, здесь много деталей для поведения: разные контекстные меню в зависимости от положение щелчка, различные «горячие» области при выборе или перетаскивании элементов, сочетания клавиш и т. д.
Внимание к деталям - На любой платформе можно обнаружить много согласованного поведения пользовательского интерфейса. Точно так же, как клавиши со стрелками работают в дереве, WRT выбирает, открывает и закрывает узлы.
Достаточно взглянуть на Windows: большинство неродных наборов инструментов неправильно используют базовую навигацию с клавиатуры - клавиши со стрелками, Home, End, PgUp и PgDown, поведение, измененное с помощью Ctrl, расширение выделения с помощью Shift дает до 32 вариантов поведения.Копирование и вставка традиционно выполняется с помощью Ctrl + C / Ctrl + X / Ctrl + V и Shift + INS, Shift + DEL и отсутствует. Двойной щелчок мышью часто выбирает слово, тройной щелчок мышью иногда - предложение, строку или абзац.
Время отклика и мышечная память - В основном есть два режима работы пользовательского интерфейса:
цикл действий-просмотра , где вы ждете ответа, прежде чем принять решение о следующем шаге,
воспроизведение из мышечная память , которая работает намного быстрее и требует меньше ресурсов умственной обработки.
Однако для этого есть два требования: ответ должен быть единообразным и «мгновенным», а следующее действие должно быть правильно зарегистрировано немедленно (по крайней мере, в пределах 10 мс)
Достаточно часто, с неродными инструментами, это усложняется из-за запаздывания реакции на одно или два действия (сознание фиксируется на несоответствии), а также из-за набора инструментов, которые требуют 50 мс или более для отображения меню, когда щелчок не регистрируется должным образом.
Отлаженный пользовательский интерфейс требует много времени, чтобы стать правильным - Хорошая библиотека элементов управления может решить большинство проблем, связанных с каждым элементом управления, но некоторые последние 10% занимают 90% времени, и у вас есть управляющие взаимодействия. Вы должны попробовать разные подходы, вы должны ожидать пользователей с рефлексами, обученными FPS, вы должны попробовать все виды рабочих процессов.
Кросс-платформенные инструменты не могут сделать это правильно - они застряли между камнем и наковальней: они могут выбрать внутреннюю согласованность независимо от платформы или согласованность с платформой, на которой они в настоящее время работают.Чтобы понять это правильно, последний часто требует платформенно-зависимого кода в вызывающем коде, а именно этого вы пытаетесь избежать.
Используемый API / язык графического интерфейса совершенно не имеет отношения к дизайну пользовательского интерфейса, хотя некоторые API упрощают или ускоряют его реализацию.
Хороший интерфейс - это:
Чтобы получить это, вам нужно просмотреть множество "хороших" приложений и проанализировать, какие делает их хорошими. Найдите хорошего художника / графического дизайнера, который нарисует вам хорошие значки и т. Д. И уделите много времени размышлениям о рабочих процессах пользователя.
Убедитесь, что вы отделили бизнес-логику от пользовательского интерфейса - это позволит вам легко изменить скин приложения для улучшения пользовательского интерфейса.И обычно данные, которые нужны программе, не связаны с тем, как пользователь должен использовать приложение - не поддавайтесь соблазну просто выставлять свои переменные x, y, z в редактируемых полях! UI - это слой, который скрывает вашу реализацию и делает ее пригодной для использования!
Мне не нравится, как выглядят графические интерфейсы Java-приложений с использованием обычных наборов инструментов. Если вам нравится, как выглядит Firefox, вы можете изучить XUL и графический интерфейс, который используется в большинстве приложений Mozilla. Komodo Editor/IDE используют те же инструменты (наряду с несколькими другими приложениями). GTK очень мощный, и я очень сомневаюсь, что именно он мешает вашим приложениям иметь профессиональный блеск. Продолжайте изучать его возможности и переосмысливать лучший способ отображения ваших компонентов, и я уверен, что вы наткнетесь на расположение, которое покажется вам лучше.
С другой стороны, дело не только в наборе инструментов. Хороший дизайн интерфейса - это искусство, и такие интерфейсы, как Firefox, развивались благодаря бесконечному количеству отзывов. Лучше всего поговорить с пользователями и выяснить, как им будет удобнее пользоваться вашим приложением. Я обнаружил, что программное обеспечение, как правило, выглядит хорошо, если оно также функционально.
Я бы рекомендовал проводить много времени в программном обеспечении, которым вам приятно пользоваться. Делайте заметки о том, как все сделано, и ищите общие черты среди элементов интерфейса. Большинство программ придерживается довольно общего набора принципов, которые облегчают их использование, и чем больше вы изучаете программы, которые кажутся вам привлекательными, тем быстрее начнут проявляться закономерности.
Удачи!