PALM开发教程-第十章 创建高效的有效界面

类别:软件工程 点击:0 评论:0 推荐:
作者:palmheart   来源:palmheart.net     在这一章中,我们开始讲述用户界面的设计和测试。首先讨论一下Palm OS自带的一般用户界面,然后介绍由Palm Computing 提出的具体设计原则及相关方法,它们使界面更加有效和实用,最后我们将讲述用户界面和程序设计的整个流程和测试,因为用户界面不是凭空想象出来,它是一个高效过程的结果。

设计考虑

从哪里开始呢?对于Palm装置来说,设计角度应集中在实用上,即怎样才能确实符合用户的当时需要。我常常想象如果我的用户是在交通拥挤的街道上使用Palm OS(当然我不是鼓励去在交通拥挤时使用Palm,只是一个假设而已)。在这样一个时候,用户没有时间来观察到底怎样才能获取信息,只能快速的看一下屏幕上有什么东西而已。所以我想如果在这样环境下,应用程序如能很简便的使用,那么在其他环境下也应不成问题。

我们再来想象一下交通阻塞的情景。有些时候,某些需要可能是即时的。例如我想查看一下别人告诉我下一步到底向那边转的消息,这时我想赶快的找到它而别错过了我转弯;还有时或许我想找一个电话号码给某人打电话,这些时候我最好是尽快找到,否则他们就不知我想现在告诉他们什么事了。

交通阻塞中使用Palm的例子说明了Palm OS的在程序设计的一定要易于使用。为做到这一点,应用程序必须遵循下面将要讲到的一系列简单易用的原则。程序尽量象用户希望的那样去工作,换句话讲,程序看起来的确是一个“Palm OS”的应用程序。设计界面时,获取信息应使用户尽量少触击屏幕、当信息出现时应尽量清晰。如果用户必须要应答信息或输入数据,也要把这个过程做的尽量简单和直观。

站在用户的角度

对于任何的软件设计,都应该站在用户的角度上去考虑。在我们这里,也应该站在“Palm OS”用户的角度上,而不是其它如PC或Mac或其它别的装置用户的角度上去考虑。换句话说,既然用户选择了使用Palm,或许也知道了Palm OS程序的标准运行方式。因此,用户有权利希望其它的程序也要使用相同的模式。在这样一个概念下,我们虽然能够编制无数新鲜有趣的程序,但是注意有一点,就是不要否定那些已是既定的东西。如果你的“创造性”使得用户找不到本来由Palm OS已定义的简单的变量,那肯定是错误的。

站在用户的角度上,首先要从自己的模式中走出来:不要为使程序更简单而设计界面;不要使用没有用户基础的任何复杂的界面,不管它有多酷;要站在尽量客观的角度上来考虑问题。

把Palm 程序想象成用在交通阻塞的汽车上,就可以理解为什么其界面要简单易用,实际上还有其他的类比。谁是Palm OS的典型用户呢?通常情况下是很忙的人。他们还有许多其他的事要做,他们一直在忙。我们知道也只有这些人可以从Palm OS的使用中获取很大的益处。这些人中,很大一部分还会有自己的个人电脑,所以可以相信,他们对电脑比较熟悉。就市场调查来看,Palm的用户都比较喜欢技术或有技术的小玩意,因此他们会花很多时间用在考虑技术问题上。所以有可能他们会想那些应用程序如何修改,才能变为他们自己想要的那样。

你可以从一些流行Palm OS应用程序的编写中获得很好的设计经验。不过你会发现在本书中的例子中,界面都比较差。这是因为我的目的是讲述Palm OS的内部技术,而不是为某个用户而设计。当你看一些其他讲述设计思想的程序时,注意程序是否普及。如果用户在那样的程序中不喜欢使用那些看起来很酷的小玩意,那他们也不会使用你的程序中的这些东西。另外,你也注意一下他们是怎样处理你所想处理的用户问题,这样,你就可以借用他们的处理方法来解决你自己的问题。

简单易用就是一切

每一个被交通堵塞里的人都希望获得最新最快的的道路信息,或许你会有例外的想法,但是,那除了是尽快离开这个旋涡之外还能是什么呢?简单的重要性可见一斑, 我以为,高的效率就是用户的最高利益。但是,效率究竟是什么?对我来说,效率意味着你能毫不费力地获得手头所最需要的一切,具体而言,我对于效率的体会就是要把很多小的事情规划纳入到你整个的设计方案中去,这些琐碎的事情大致有:

◆ 有逻辑的、简易的程序设计流程
◆ 细致的界面,使得信息以非常直观的方式显现出来
◆ 对于可视化设计组件适时而不烦琐的运用,可以程序更易使用


点击(tap)因素

我在上面曾经提到过“点击数越少越好”,但是,究竟怎样理解这句话呢?如果你分析过标准的 Palm OS应用,你就会发现,它们需要如下点击次数来实现的标准化的操作。

◆ 0到3 次点击来观看信息,具体取决于使用的频率
◆ 0到1次点击来开始进入新记录
◆ 0到3 次点击来编辑已经存在的记录
◆ 3次点击来删除记录

好了,现在似乎已经可以考虑明确一下我们的目标了,显然,除了那些最不明显的信息外,我们几乎都已可以通过三次点击就实现了,当然要是比三次还少就更好了。删除使用三次点击是可以接受的。添加记录应该做到尽可能的快,如果可能的话,不用点击也未尝不可。同时,正因为点击次数因素重要性,所以在以后的界面设计中都必须考虑到所谓的点击次数因素。

显然,一个方面越是经常用到,我们就应该要设法给它越少的点击次数,通常来讲是0次或者1次。对于绝大部分应用来说,“观察屏幕明细”和“删除记录”操作会比“浏览记录”和“添加记录”用得要少,所以,前者就可以拥有比后者使用稍多的点击次数。当然,这条原则并不普遍使用,尤其是对于同样用得比较少,但却是那些隐藏在菜单背后一些操作如果有可能,一般的操作的点击次数都应在三次之内。

“七“的原则

现在我们可以来定量地分析一下,要使得界面看起来不产生混乱,一个屏幕上能处理多少控件。大量心理学的研究认为,人一般容易接受的是在一个屏幕上出现七个左右的控件。“左右”的含义就是要视所用控件或工程的复杂程度而定,所以,或许我们只考虑考虑使用三个控件,但如果工程很复杂的话。控件数目还可以增至九个。

屏幕的考虑

Palm的屏幕设备对于160*160像素的显示界面是很友好的,但也要谨慎地使用。如果你还是习惯使用更大的PC机的屏幕,那就要改变一下习惯,来适应使用小一点的了,改掉你喜欢把所有要用到的东西都写道屏幕上的习惯。
大部分情况下,你可能只会看到黑白的屏幕。对于Palm Ⅲ及以上版本只有四种灰度。这就意味着你的用户界面设计不能再寄希望于精确的灰度级别,也不能指望通过高的亮度值来获取信息。

在给定的有限且有较好的可读性的空间里设计界面,这就需要预先安排好窗体的布局。
在把文本和控件置于屏幕上前,要考虑以下几点:

◆ 要添加的内容对用户是否有用?
◆ 要添加的内容用户是否容易接受?
◆ 要添加的内容用户是否能够很容易地看到?
◆ 对简单的应用而言,屏幕是否过于混乱?换句话说,各内容是否都被安置在屏幕的合适位置上?
◆ 要添加的内容常用还是不常用?(如果不常用,就可以考虑使之成为较多点击次数中的一部分,这样就能保证那些常用的界面不至于过分混乱而影响视觉效果。)
你可以把PC机的应用设计想象成为是往一间空房子里堆放杂物,而Palm应用就好比是把杂物堆放到一个小的船舱里。当你规划这个小船舱时,必须先要考虑好即将到来的航行,关键是检查准备携带的物品是否都是必须的,同时还要仔细考虑往哪儿放置这些物品才能使之更易于发现和使用。类似地,在Palm应用中,也没有足够大的空间来放置你可能要用的用的大量信息,所以,就很有必要仔细考虑好哪些信息是最为常用的,那些则是可以完全抛弃的。下一步,各种信息的装载必须符合逻辑以及最少点击次数的要求,这样才能便于应用。

空间的重要性

在重要信息周围安置尽可能多的空白空间是个好主意。这能够使重要部分更加显眼从而容易发现。在Palm屏幕上,这一点确实是很重要的,它能使你的程序可用性大大增强。你可能会十分希望在所有可能的地方放置信息,而使用户能容易地找到它们,但是注意到,Palm屏幕并非很大,特别是早期低对比度模式的那种,界面是很模糊的。我们希望通过适当的放置给用户带来他们所需要的一切,而不是让他们去在视所能及的范围内来寻找他们所需要的东西。

尽管人的眼睛能够发觉到非常微小的细节。但为了保护你的眼睛,还是最好把控件等归整到一条线上,并且均匀地分布它们。同时,注意保持你设计的数据输入字段归整为左对齐,或右对齐,而不要使两者都有,那样看起来会显得很别扭。这些看起来都是很小的事情,但是它们对应用程序的视觉的影响就不小了。如果你如上面所说的那样去避免在屏幕上堆放过多的内容,那么就可以用余下的空间来填充用各项目之间的空处,从而结束整个工程了,这样应用程序对于用户可读性就好多了。

有时过分精确地规划控件的位置也不容易做到,在这种情况下,就要相信你和你朋友的眼睛,用眼睛直觉告诉你答案,到底怎样安排控件的位置。

输入笔的考虑

输入笔也是一个输入的重要方法,但是如果设计的程序经常使用键盘,并且要求用户大量输入文字的话,那就要改改习惯了。在Palm OS中,输入文本是最后一种方式。我们所希望用户做的最后一件事就是在拥挤的路况中挤出一条通道来,在本来可以使用选中某个列表选项或选择按钮的地方输入文本。在一些必须需要输入文本的地方,可以使用明细窗体来显示其详细内容,这样用户才就可以通过一两次点击就查看到了信息。

输入笔的触击和PC/Mac的鼠标点击事件相类似,区别仅在于你不能再要求用户通过多余三次点击来观察他们所需要的内容了。随时记住这样一句话,点击绝非键盘输入,点击次数越少越好。

双击是一个不错的主意,然而,如果你考虑使用弹出式菜单来选择操作,点击次数相同,但弹出菜单看起来更直观。

理想的情况是不使用输入笔。毕竟,在拥挤的路况下经常发生就是在接近冲突地点和出口处的事,输入笔掉在地上并滚到座位底下去再也找不到了。那怎么办呢?你的应用程序的控件就应有一定的大小,允许人们手指来点击它。注意使大部分内置的应用程序能够在不用输入笔情况下也能够使用。

处理器的考虑

Palm系统并非电站的电脑而设计的。不要搞错了,它所能做到的远比其他系统要快,这主要要归功于Palm OS的效率,但它也不是为高负荷操作而设计的。然而我可以再增加一个界面,来使系统更好的运行。在你要进行某些计算之前,考虑好你的用户是否真的需要这些计算;至于屏幕显示和鼠标点击次数,在PC机中这些几乎不成问题,但是在“小船舱“里面,任何计算都会使之减速。

我能想到的利用这种方法的一个好的例子就是花费的应用;明智的设计者不会考虑总花费,尽管这样很容易做到。只有到达终点后,他们才会考虑途中的总花费的,和旅行者的路费相比,PC的总耗费也是这样。设计人员因此避免了应用程序地运行减速。

造成计算降速普遍地一个原因,象我们的Contacts程序中那样,可能是由于在Palm OS内部日期转换或者从时间格式向文本格式转换引起的。克服类似问题的一个办法是增加存储格式,例如:在记录中存储文本格式的时间或者日期的同时存储它们的数字格式。

设计原则

我们已经讨论了Palm系统设计的一般性原则,下面就可以进一步讲述它的具体原则了。在这部分里我们首先讨论当今Palm OS应用普遍使用的设计原则,我们分两部分主要内容来讲,一是原则(Palm Computing资格证明必须遵照的部分),二是一些建议。

编辑框、手写区、和剪贴板

仔细检查允许用户输入数据的方式非常重要。另外,与其他应用的连贯性和兼容性也很重要,举个例子,不要因为学习手写输入使部分用户花费大量的时间而失去这部分用户
原则

◆ 对于可编辑的编辑框来说,确保标准的编辑菜单(剪切,复制,粘贴等等)以及相应的快捷方式都可以获得。
◆ 允许用户从你的应用当中复制或者剪切数据。如果用户没有进行下一次复制或者剪切,你要确保以前放置在剪切板中的内容是完全的。
◆ 无论哪儿用到手写输入,确保可以通过菜单或快捷方式获得手写输入的帮助。
◆ 如果手写输入能用在具体的窗体上,在窗体的右下角安排一个切换指示器。在这些窗体上,不要再把右下角兼作它用。
◆ 如果手写输入用在窗体上,需支持手写输入浏览(即,向上划或向下划等同于移动到下一记录)
◆ 对于可写的编辑框要保持手写输入,不要仅仅是应用键盘。
◆ 如果一个编辑框具有焦点,你应该始终能够做到通过菜单或快捷方式来调用键盘操作。
◆ 在用户没有知道的情况下,不要把任何东西放到剪切板上,用不到剪切板的时候也不要破坏它上面的内容。
◆ 确保编辑框被选中的时候能够发声提示。
◆ 确保有当菜单选择或快捷方式发生错误的时有错误提示声音。比如,在没有选中任何内容的时候而按下了复制选项。
◆ 确保不要输入残缺的、不符合要求的数据。
建议
◆ 通常,在以前没有要求的情况下,把焦点设置在左上角的编辑框上。
◆ 不要弹出菜单出错或快捷方式出错警告,用出错声音提示就够了。
◆ 用手写输入来在用户需要的地方增强你的应用程序的流畅程度。

菜单

如果你在应用程序中大量使用菜单,最好采用Palm OS推荐的标准的设计原则。菜单因为其精巧的结构和连贯性的外观使得它在应用程序中显得尤为重要。如果换成其他的外观可能会使用户大吃一惊。
原则
◆ 不要使不用的菜单项或者其UI控件变灰。把他们直接去除掉或者隐藏起来。
◆ 多使用菜单快捷方式,少使用“关于”。
◆ 确保标准的菜单——编辑,选项,记录——等菜单项如图10-1所示。




建议
◆ 为每一个菜单选项设置快捷键。
◆ 除非菜单操作失败的原因不明显,对菜单的错误都要给出警告提示。
◆ Palm3.0及更高的版本上支持闪烁功能,注意在菜单增加一个闪烁选项及快捷键。

按钮和控件

遵循以下的原则,会为你在设计窗体的时候减少很多麻烦。
原则
◆ 不要改变网状图标的形状如Home、Menu、Find等;
◆ 不要用一个和计算器功能无关的应用程序覆盖计算器的快捷按钮。
◆ 如果你的系统中要用到数据簿、地址簿、待做事项和备忘录按钮,注意在退出后要把他们恢复到原来的排列顺序。
◆ 在窗体中把按钮尽量排在屏幕的底部。
◆ 在文字和按钮之间至少要留下两像素的空间。
建议
◆ 如果窗体上有多于一个的按钮,把最重要的按钮放在窗体的左下角。

一般情况

下面是一些你在设计的时候容易忘记的细节,如果你在设计应用程序的时候,仔细阅读一下以下的事项,你也许就不会忘记了。
原则
◆ 当应用程序的日期、时间、数字和星期的格式改变的时候,系统应该做出相应的改变。
◆ 如果你要使用分类,你最使用户最多只能建立15个分类。
◆ 如果你的应有程序支持私人信息,那么在一些Security应用程序中,如果隐藏被选中,应该隐藏这些私人纪录。
◆ 编制相应的代码,使你的应用程序支持全局查询。
◆ 提供自己的About。
◆ 如果有可能的话,当应用程序重新启动的时候,应该让时回到先前的界面。
◆ 使你的应用程序和所有的数据库有相同和唯一的ID号。
◆ 最好使你的应用程序有备份和重新排列的功能。
◆ 在打开、切换和查找纪录时,你的应用程序不应该比内置的应用程序慢很多。
◆ 为你的应用程序创建一个小图标。
建议
◆ 在进行正常的操作的时候,不要老是停留在模式(modal)窗体上。因为当用户停留在模式窗体上的时候,Palm是不能弹出警告或则电池没电的报警的。在用户想进去修改一些东西,然后就退出来的情况下,可以考虑使用模式窗体。
◆ 不要嵌套使用窗体三层以上。
◆ 尽量在界面使用用户熟悉的的元件。
◆ 在用户没有特殊的要求或控件能够在速度和清晰程度上都很好的情况下尽量使用一些传统的控件。
◆ 在模式程序对话框中提供帮助。

窗体的布局

遵循以下一些简单的原则,就会使你的窗体界面符合标准窗体界面要求。
原则
◆ 所有主窗体应该充满整个屏幕。
◆ 每一个窗体都应该有一个标题栏,标题栏中应包含窗体名称或者这个窗体的主要信息。
◆ 确使所有的窗体用手指就能按到,而不要求助于输入笔。
◆ 模式窗体应该占据整个的宽度,并且要和屏幕的底部对齐。
◆ 非模式窗体上控件的布局如图10-2所示。





◆ 模式窗体上控件的布局如图10-3所示。





◆ 对于非模式窗体,应该使之占据整个屏幕,不要在控件和屏幕边缘之间留下空隙。
◆ 对于模式窗体,在控件和屏幕边缘之间应该至少留下3个像素的间隔。
◆ 在窗体上不同组的标签和控件应该按行列形式排放,不要设计委一个表格形式,并且使标签加粗和右对齐。
建议
◆ 把经常使用的控件放在窗体的左上角,不经常使用的控件放在右下角。但是对于按钮不能这样安排,应该使按钮在窗体的底部对齐。原则上应该让用户觉得是在看一页书。如果你是为不习惯于从左到右从上到下的用户设计界面,那你因该重新考虑界面的设计。
◆ 在屏幕上只显示用户需要的信息。不要把用户并不十分想有的信息杂乱的堆积在一起。而是把用户想得到的一些相关信息,集中起来放在另一个窗体中。这样,用户如果想看的话,就可以按一个按钮去阅读,这比杂乱的放在同一个窗体上要好得多。
◆ 要尽量多用标签,这样更便于用户操作。

操作流程
在这一节里,我们来讨论Palm的一种好的设计流程。Palm的操作流程和前面讨论的按钮的设计密切相关。设计的好的界面,应该让用户在许多应用场合不用按很多按钮就能完成想要的操作。对于一些比较匆忙的用户来说,他只需一面点击按钮,一面想着程序的操作流程就可以熟练使用应用程序了。如图10-4所示:





分类

如果你的系统需要处理数据库记录,把这些记录分为15个或则少于15个组是很有必要的,你可以考虑使用内置的数据库分类来完成这个工作,这样的话,正如我们在前面的章节中所看到的,对Palm用户来说不但很方便,而且也十分快捷和简单。

如果在你的系统中,你需要支持分类,你应该显示弹出式菜单以便你的用户显示分类信息。这种弹出式菜单最好放置在屏幕的右上角,紧靠着窗体的标题。
当系统中某一窗体处在激活状态时,如果你按下Hard Case按纽时内置的程序会在分类中自动滚动。如果你要使用分类的话,建议也使用这种方法。当某一窗体正常打开,运行标志位(lunch flags)也提示你,应用程序已经处在激活状态,那么应该跳到列表中的下一个分类中去。
滚动

在Palm操作系统中,通常有三种形式的滚动:有上下箭头的重复按钮、滚动条、上升和下降按钮(up and down buttons)。

总的来说,屏幕上的向上和向下按钮应该向上和向下移动一行,而硬件按纽应向上或者向下卷动一页。如果想用笔来定位的话,滚动条就显得更易使用。
对象的优先顺序

在设计一个Palm系统时,你必须仔细考虑用户想要这个系统来做什么事,也就是说用户在大多数时间内在这个系统上做什么。这儿有一个例子,当一个在Palm Computing工作的人来创建一个电话列表的应用程序的时候,他就会主要考虑用户想对电话列表进行什么样的操作,比如增加一个新的纪录、编辑纪录、删除纪录和查询纪录这些数据库常用的功能。然后他就会更深一层的考虑,是那种功能用户用得更多,很显然,在电话列表应用程序中,查询电话列表相对于其他几个功能来说,用户用得更多,同时他也会考虑到,删除电话纪录是一个用得比较少的功能,所以他把删除纪录的功能隐藏在编辑屏幕后面的子屏幕上。这样的话,我们就得到一个如图10-4所示的设计方案,图中的箭头表示屏幕之间的切换转移,方框表示屏幕。请注意,这个流程和电脑上一些设计的比较好的应用程序的流程不一样,在电脑上,浏览主要是通过菜单实现的,Palm上的菜单主要是用来完成一些不常用的功能(比如在系统中处处都用到的键盘、剪切、复制、粘贴、参数选择、关于等等),而不是主要为了浏览的目的。Palm中的浏览功能主要是通过屏幕上按钮来实现的,从Palm用户的角度来看,这种方式更快(只需按很少的按钮)和更清楚(按钮总是在屏幕上)。
主窗体

当开始设计一个应用程序的时候,你必须首先考虑的问题是这个应用程序的主要功能,因为这个功能是你的用户在大多数时间里使用的。如果你的应用程序比较简单的话,主窗体可能是应用程序的唯一窗体。仔细考虑你的Palm OS应用程序的结构,在主窗体外,最好再增加一个显示详细信息的窗体、一个添加新记录的窗体和一个修改记录的窗体,这样在屏幕上实现各个功能时会比较方便。

如果你的应用程序有多个主要部分,这时可以把过大的功能模块分成几个功能小块,每个小块组成一个窗体。如果一个应用程序所需达到功能不尽相同,并且不是很多,那么Palm是最好的工具。举个例子来说,如果要实现保存文档、显示日历和显示待做事项这三种功能,为这三种功能分别建立一个应用程序比把他们堆积在一起好的多。在PC平台上,开发者有可能更致力于把他们集合起来。从这个典型的例子中,我们也可以看到,在不同的开发平台上,对于同一个问题,解决的最好方法是不一样的。

如果你的应用程序中有的功能需要按三次或则三次以上的按钮才能实现,很显然,这就表明你的应用程序比较臃肿,如果是这样的话,你可以考虑将这个应用程序分成一些内部相关联的小应用程序。

WHAT’S NEXT

在这一章里,我们仔细讨论了Palm操作系统的外部界面。在下一章里,我们讨论Palm系统所有现成可用的工具;接着,我们以设计一个计算器为例,来探讨在代码编写、应用程序组织以及用户界面设计方面,怎样才能利用这些方法来设计一个好的应用程序

本文地址:http://com.8s8s.com/it/it32756.htm