有整本整本的书论述用户界面(UI)这一主题,但是关于每一个应用程序的界面应该是什么样子却找不到正确的“答案”。也不会有一个界面能够成为每个人心目中完美的界面,但是遵循下述基本步骤,你就能帮助尽可能多的用户最大限度地获益于你的应用程序。
需要具备
Microsoft® eMbedded Visual Tools 3.0或更高版本
须知
你永远也无法每时每刻取悦所有的人。但是你能够为取悦大多数并最终获得成功的应用程序而努力。
支持语言
英语
设计你的用户界面
由于任何个人数字助理的屏幕尺寸都相对较小,因此正确使用“屏幕地皮”是必须的。为了最大限度地利用你的应用程序所占用的屏幕地皮,你应该:
- 研究其它应用程序的界面,特别是那些与你正在开发的应用程序性质相似的。虽然你能够从有优秀界面的应用程序上学到很多,但是你能够从有糟糕界面的应用程序上学到更多。问问你自己:什么令它们糟糕?什么是他们本可以做得不同的?
- 想出将会使用你应用程序的用户的多种不同类型。把这些用户代表的每一个人的名字写在一张纸上,同时写下一些描述性的词语将他们与其他用户区分开来。
- 在每张纸的上半部分,列出这些用户将会使用和不会使用的应用程序的部分。
- 在每张纸的下半部分,画两个矩形。一个应该是纵向的(高比宽大),而另一个应该是横向的(宽比高大)。
- 在矩形中,为每一个用户画出“理想”的界面。尽量把自己当成是用户,而不是开发人员。尽量记住应用程序中什么是每个用户所不关心的,并且记住屏幕相当小,因此将地产用在你认为每个用户所最需要的部分。
- 比较这些界面,如果它们根本不同,考虑为每种类型的用户建立单独的应用程序视图,并且让用户在一个“视图”菜单中选择想要的视图。如果这些界面只是略有不同,试着在一张新的纸上把这些界面结合起来。通常,在一个屏幕上放更多信息比放更少要好,但重要的是不要一次给用户加载太多信息。最重要的是,努力让应用程序的主画面传达尽可能多的信息,而又不显得繁杂。
- 注视着组合界面,再一次设身处地地为用户着想。如果界面中有任何地方在某一个特定用户看来将是不知所云的,考虑对界面的那个部分做一个“隐藏”选项。注意当它被隐藏起来时,在那个位置上将显示什么。不要让它空着;那只会浪费宝贵的屏幕空间。
- 当UI已经设计好,在你的个人计算机的图形程序中做一个模型。有好几个不错的软件可以做这件事。在240X 300和340 X 200两种分辨率下制作模型,因为这些是你在Pocket PC上可能碰到的最低分辨率。通常,不要在模型上使用任何抗变形功能,特别是对字体,因为你想要看到UI在实际设备上的效果。
- 编写尽可能接近模型的界面。正确地编写界面,不要取巧也不要折衷。你的UI就是用户看到的你的应用程序。
- 比较最终的应用程序和模型。如果不是非常接近,那么你的工作就还没完成。继续修改UI,直到它与模型几乎完全相象为止。不断地告诉自己你把模型做成那个样子是有原因的,并且相信自己知道在做什么。最重要的是,不要去理睬改变界面以适应程序内部结构的冲动。记住,用户看不到内部的结构。
使用资源文件
除了少数例外,开发人员在开始开发应用程序时脑子里都有一个特定的目标语言。让你的应用程序成为“支持多语言”的只需要很少的努力,因此不多花一点时间为另一种语言做准备简直就是不合情理。
资源就是字符串、对话框、菜单、图标、图形和其它对用户来说代表着什么但并不影响程序运行的UI元素。例如,如果一个文件没有找到,而你想向用户传达这一消息,要是你的应用程序要出口日本,那么简单地弹出一个消息框说“文件没有找到”可不行。而是要载入一个表示“文件没有找到”这个错误的资源字符串,然后弹出带有结果的消息框,这才是更可取的,而且并不比直接显示信息困难很多。
国际化问题
有一个基本的概念将有助于向其它语言和文化地区出口代码:一幅图可能画出了千言万语,但不会是对每个人都相同的千言万语。仔细考虑你用来表示不同概念的图形。使用一个红色的八边形表示“停止”的按钮,也许看上去很有意义,但是首先想想红色八边形在世界每个地方也许并不都表示“停止”的意思。让你的应用程序更具文化移植性的更好图标也许是一只打出停止手势的手。你可以针对每一种语言来添加不同的图形资源,以此战胜这种情况,但是当仔细斟酌设计就能有帮助,为什么还要增加额外的工作量和应用程序的尺寸呢。想了解一些概念的图形表示的例子,见台式机Windows中的“Wingdings”字体。
注意有时侯你得用一些也许不是大家全都明白的图形。我能想出的最好的例子就是按钮上的字母“A”,它已经变成应用程序中表示“文字”或“字体”的事实标准。仔细地斟酌你界面上的每一个图形元素,尽量选择移植性尽可能强的图形。好好看一看下面这张图,它给英语文化图形向国际化转化提出了一些建议,这样也许你可以使用语言更为中性的图形。
英语文化的图标和国际形式的图标
结论
应用程序的界面是你的用户所能看到的应用程序的唯一部分。也许你有漂亮的内部对象结构、出色的错误处理能力、可靠的数据处理和精确的算法,但是一个劣质的界面却可以比其它任何东西都更快地把一个“饱受挫折”的用户送到“添加/删除程序”那个图标那儿。事先做点规划,特别是设身处地地为用户想想,你就能提供一个优秀的UI,让你的客户把你的应用程序看作是一个帮手,而不是为了完成什么工作而不得不与之拚死拚活的对手。