作为一个很少(或没有)艺术倾向的开发人员,您如何为应用程序设计GUI?特别是,我正在考虑桌面应用程序,但也欢迎任何与Web应用程序相关的内容。 我觉得很难设计出我和潜在用户都喜欢的东西。我可以在网上查找配色方案,但我怎么知道按钮/文本框等的位置?
更新:澄清一下,我并不是指使用什么控件等。相反,当我应该按钮,组合,文本框等时,是否有任何指导/提示?他们应该多久,我会把它放在表格上?
答案 0 :(得分:21)
您需要做的第一件事就是退出开发人员的观点。我们倾向于在形式,控件,按钮,列表,网格等方面进行思考。这往往会使我们找到对用户而言并非总是最佳的解决方案。
用户不想使用我们的软件。 (除非你在编程游戏时)他们只是想完成任务。因此,当设计UI和用户交互时,从那里开始是有意义的。写下用户想要对您的软件做什么。考虑一下用户如何做这些事情,以及你的应用程序可以做些什么来简化事情。
尝试使用与编程不同的工具。这些让你再次在UI小部件中思考。从一支铅笔和一张纸开始草拟事物,也尝试考虑行为和布局等。如果你已经清楚了解你想要建立什么,你可以开始思考你是如何做的要建立它。当窗口小部件,按钮和页面出现时。
答案 1 :(得分:5)
我开发的应用程序每小时被点击数千次,所以一切都归结为效率。我喜欢将它视为一种货币,您可以用它来产生许多有用的公理:
如果保存点击,则为+1。
如果点击费用,则为-1。
如果用户浪费时间弄清楚它是如何工作的,那么-1。 (大多数自定义UI元素)
如果它基本直观,请+1。 (的CoverFlow)
如果它为首次使用的用户节省了点击次数,则为+1。 (向导)
如果长期用户付费点击,则为-1。 (向导)
(这就是为什么你必须确保你的键盘快捷键和制表顺序有意义。)
等。
等
所有东西都经过主观加权和统计,你可以在必要的地方妥协。最终,它可能是一种天真的哲学,但它对我的帮助相当不错。根据需要推断。
答案 2 :(得分:3)
您是否阅读过http://msdn.microsoft.com/en-us/library/aa511258.aspx?
或阅读维基百科文章:http://en.wikipedia.org/wiki/Human_interface_guidelines它包含指向某些HIG的链接
答案 3 :(得分:2)
答案 4 :(得分:2)
除了本页所述的其他内容之外,我还要补充一点您注意到GUI越少,就越好。
我的意思是,当用户没有察觉到用户界面时,这是因为用户正在完成他/她的工作。用户注意到GUI时(a)它很漂亮(想想Apple)或(b)它很糟糕(想想你使用过的任何让你感到沮丧的GUI)。
答案 5 :(得分:1)
如果您正在为桌面设计,可以找到操作系统界面的指南,这可以提供帮助。
答案 6 :(得分:1)
Joel Spolsky有一个非常好的高级设计技巧:
http://www.joelonsoftware.com/uibook/chapters/fog0000000057.html
除此之外,最重要的是尝试一些东西,制作模型。也许最初是在纸面上,但在某些时候,只是尝试将GUI放在一起,而不是挂钩代码。看看你的想法,尝试一些变化,询问其他人的意见,然后进行实验。最好的设计技巧是从人们那里获得反馈,如果可能的话,最好是从目标受众那里得到反馈。
答案 7 :(得分:1)
目前尚不清楚您是在谈论如何创建一个好的对话窗口,也不知道如何为一个巨大的应用程序创建一致的外观。
关于如何设计有效且清晰的用户界面User Interface Design for Programmers的一个很好的参考...等待它...... Joel Spolsky。
答案 8 :(得分:0)
从您的应用程序的角度考虑您的用户是谁。有一种吗?更多?然后,对于每种类型的用户,考虑他们想要完成的重大事项。向他们展示那些一般选择,然后从那里进入每个任务更合适的界面。
最后,如果你有一大堆步骤,那么向导很好,因为它允许你一次验证每个步骤。这在本机应用程序中很明显,但在网络上非常方便。
答案 9 :(得分:0)
我从未将GUI设计视为一项基本的艺术活动。虽然设计精良的用户界面确实可以通过艺术元素进行增强,但设计底层用户界面实际上是一项工程工作。当然,在较大的项目中,GUI专家是一种自然的专业化,就像拥有构建专家一样。但我认为,当他们有时间和资源时,这是一个罕见的软件工程师无法创建有效的GUI。 / p>
我们大多数人通过认识现有系统中的优点,然后卷起袖子和创新,并坚持到它工作,已经了解了我们对构建系统的大部分知识。 GUI也不例外。
答案 10 :(得分:0)
在the UI patterns site上展示了一些您可能会觉得有用的UI模式
通常,如果您要为Windows设计表单,请遵循各种微软guidelines。
我记住的一个原则是使用现有的行为模式(双击执行/激活项目等),因为人们已经知道这些。