7

最近我一直在玩php-gtk,过去我已经尝试用Java来制作GUI'hello world'应用程序。GUI应用程序的专业光泽来自哪里?

但是,这两种类型的应用程序对他们来说都有点笨重(几乎是幼稚的)外观和感觉。我不能否认他们在制作应用程序时非常方便(我完全尊重进入这些项目的社区努力量)。但是我不一定会为以450英镑或1000英镑的价格标签出售商业应用而自豪。

如果我想制作一个具有外观和感觉的应用程序,例如Firefox for Windows或Adobe xyz,我应该使用哪种GUI /语言?

对于设计师来说,“专业光泽”还是精明的外观和感觉是100%,或者无论设计师多么优秀,选择正确的GUI框架对于获得这种外观至关重要?

+0

感谢所有这些答案 - 所有真正有用的东西 – 2010-05-03 05:29:42

回答

7

有一些方面有一个软件的抛光UX。

  1. 使用最原始的平台框架。适用于Windows的Win32/WPF,适用于Mac的Cocoa等。
  2. 应用程序的视觉文物是连贯的 - 包括图像,图形,工具栏图标等。
  3. 遵循平台指南和最佳实践。
3

总是尝试使用您的桌面环境使用的GUI框架。 .NET的库可能是创建Windows应用程序的最佳选择。 GTK +在GNOME上始终是最好的,而Qt在KDE上运行良好 - 尽管三者都在对方系统上工作,但由于缺乏视觉集成,它们的视觉吸引力下降。

+1

绝对正确。为您的平台使用本地外观。 Windows上的Java应用程序总是看起来很糟糕(想想Lotus Notes)。使用.Net for Windows(假设您想使用托管语言)。 – jwismar 2010-05-03 05:09:16

+0

我会注意到,甚至纯粹的Qt也没有完美地与KDE集成 - 至少在我的计算机上,基于Qt库和基于KDE自己的UI库的接口之间存在显着差异。虽然这只是一个问题... – 2010-05-03 05:40:24

+1

莲花笔记最初是用汇编写成的......这是本地的_definition_。 – 2010-05-03 06:08:37

1

我不在乎Java应用程序GUI倾向于使用常用工具包的样子。如果您喜欢Firefox的外观,您可以查看大多数Mozilla应用程序共享的XUL和GUI框架。科莫多编辑器/ IDE使用相同的工具(以及其他几个应用程序)。 GTK非常强大,我真的怀疑这是什么阻止了你的应用程序拥有那种专业的光泽。继续探索它的功能,并重新考虑显示组件的最佳方式,我相信你会偶然发现一种感觉更好的安排。

另一方面,它不是全部关于工具包。良好的界面设计是一门艺术,像Firefox这样的界面已经通过无数次的反馈发展而来。要做的最好的事情是与用户交谈,并找出能够让他们更舒适地使用应用程序的东西。我发现软件在功能上往往看起来不错。

我会建议花费大量的时间在你觉得愉快的软件上使用。记录事情的完成方式,并寻找界面元素之间的共同点。大多数软件都遵循一套非常普通的原则,这些原则使得软件的使用变得更加简单,并且越多地探索您感兴趣的软件,越早开始出现模式。

祝你好运!

+0

感谢您的回复。回复:“记录事情的完成方式” - 哈。是的,我已经开始以全新的视角看待我那些值得信赖的旧应用程序 - 我的屏幕卡钳总是注意到最小重新调整的高度/宽度和框架阴影以及各种各样的...它的所有非常分散注意力; o) – 2010-05-03 05:34:44

3

所使用的GUI API /语言与UI设计完全无关,尽管一些API使得它更容易实现。

良好UI约为:

  • 良好图形设计/艺术品(视觉上的平衡和对称性,互补色,在视觉上“赏心悦目”的形状和布局,视觉一致性应用程式内,并且与周围的其他应用 - 一致的定位,尺寸,间隙,颜色等)
  • 了解用户的工作流程并使他们想要做的事情变得简单直观。这通常意味着实现3或4种实现相同动作的方式(例如,“复制和粘贴”通常可以通过以下方式实现:主菜单 - >复制/粘贴,上下文菜单 - >复制/粘贴,ctrl + c/v,按钮:复制/粘贴,拖放)
  • 保持一切简单。尽可能删除将用户界面切换回用户需要的内容,而不再需要。
  • 直观且不令用户惊讶。控件应该看起来像用户知道的控件,像用户知道的控件一样工作,并且位于用户期望的给他们以前的计算机体验的地方。
  • 继公约(位置确定/取消键在标准位置,使用OS定义颜色突出显示所选对象等)

为了得到这一点,你需要看大量的“好”的应用并剖析是什么让他们变得更好。找一位优秀的艺术家/平面设计师来绘制好的图标等。花大量的时间思考用户的工作流程。

确保将业务逻辑与用户界面分开 - 这将允许您轻松重新整理应用以改进用户界面。通常,程序需要的数据与用户需要使用应用程序的方式无关 - 不要试图在可编辑字段中暴露x,y,z变量! UI是隐藏您的实现并使其可用的图层!

4

它重叠有点与伊戈尔的答复,但这里是我的看法:

机控件看 - UI控件今天有一个相当复杂的外观。有很多视觉线索我们本能地从它们中衍生出来,即使它是一个带有一些框架的白色矩形,但是它的影子看起来很奇怪。上下文菜单通常不仅仅是今天打开,而是从某个方向滑入或淡入。

本机控制行为 - 比UI更复杂,有很多行为细节:不同的上下文菜单取决于在点击位置时,选择或拖动项目,键盘快捷键等时出现不同的“热门”区域。

关注细节 - 在任何平台上都需要发现许多一致的UI行为。就像箭头键在树中控制WRT选择,打开和关闭节点一样。只要看看Windows:大多数非本机工具包都会导致基本键盘导航错误 - 箭头键,Home,End,PgUp和PgDown,用Ctrl修改的行为,使用Shift扩展选择可最多提供32种行为。复制&粘贴传统上使用Ctrl + C/Ctrl + X/Ctrl + V和Shift + INS,Shift + DEL和丢失。鼠标双击常常选择一个单词,鼠标三击有时候一个句子,一行或一个段落。

响应时间和肌肉记忆 - 有,基本上,两个UI操作模式:

行为,看看环,在那里你等待决定下一步骤之前,响应,从
播放肌肉记忆,这是更快,需要较少的心理处理资源。

有,但是,对于这两个要求:反应必须是统一的,“即时”,和下一个动作必须正确立即(至少在10毫秒)

通常足够进行登记,与非原生工具箱,这会因滞后一个或两个动作(锁定差异)的反应而变得很难,并且需要花费50ms或更长时间才能显示菜单的工具包,在这段时间内点击未按预期注册。

抛光的UI需要长时间来得到正确的 - 一个很好的控制库可以解决大部分的每个控制问题,但还有一些最后的10%以90%的时间,你有控制的相互作用。你必须尝试不同的方法,你必须期望用户具有FPS训练的反应能力,你必须尝试各种工作流程。

跨平台工具包不能让它完全正确的 - 他们坚持一个进退两难的境地:他们可以选择内部一致性独立于平台的,或者是与他们目前运行在平台上是一致的。为了解决问题,后者通常需要在调用代码中使用与平台相关的代码,这是您试图避免的实际问题。