优秀iPhone应用程序-Yoritsuki

为了把客户端做的更好,有必要多研究国外的优秀应用程序。客户端的易用性是一方面,视觉上也要美观,不然怎能体现出客户端的优势。使用默认的系统控件虽然能保证基本的易用性,如能完成功能之后,绘制自定义控件和加载动画效果会让应用程序看起来与众不同,iPhone如此优秀的显示能力和绘制界面的能力,不加以利用,岂不是浪费。

t022

不是每个人都将有机会享受带有花园的传统日本旅馆,而Yoritsuki可以模拟真实的场景,让用户体验到旅馆的四季和白昼的交替。根据系统时间的改变,会出现光影和雨雪之类的气候变化,花开花谢,溪水流动,并伴有鸟和昆虫的鸣叫声,视觉和音效上和真实的旅馆相差无几。

也可以自定义时间和设置场景中的动画和音效,但是纯粹为了娱乐,并没有多大的实际意义。

iphoenapp32

iphoenapp33

图标设计

t03

t_clock

t02 (1)

场景设计,可以随着系统时间的变化而相应地改变。

用户体验的泡沫

ux2

看到这个图时,我懵了。用户体验设计的概念被夸大了,囊括了交互设计、视觉设计和部分工业设计,还有什么设计是它不能容纳的。只要和用户有关系的设计都可以叫用户体验设计,那么建筑设计、动画设计和广告设计等等能成为用户体验设计吗?

物和人的关系可以是单向的,可以是双向的。单向的时候可以分为正向和反向。

  • 正向时,人创造物或者设计物。此时,人可以称为制造者、设计师或者艺术家等等。传统的工业设计、建筑设计和动画设计等等适用于此种情况。
  • 反向时,人接受物,人不能改变物体的状态。此时,人比较被动,可称为受众和观众等等。
  • 双向时,人与物的关系是相互的,物体可以提供人信息,而人也可以改变物的状态。此时人可以是参与者和用户等等。人可以被称作用户时,物体和人有频繁的信息交互。用户体验设计适用于此种情况。

体验是心理感受,心理感受包括了所有五官的感受。如果把用户两字去掉,体验设计几乎要等同于设计了。

纵观二十世纪八十年代的设计史,讨论的都是形式和功能的问题,消费者和受众不是产品成功与否的决定因素。当计算机大众化时有了交互设计的概念,用户体验决定市场占有率时,成了设计的目标,交互设计中有了以用户为中心的设计方法(UCD),那么UCD是目标导向性的设计。

ue1

用户体验设计包括了设计的三个维度:形式、行为和内涵。视觉设计主要关注形式,交互设计主要关注行为,用户体验主要关注内涵,用户体验设计是这三者的交集。

简洁的定义

我推导出的定义是:简洁是使用最少的元素有效地满足功能性要求。之所以要下定义基于以下原因:

  • 我们经常在讨论简洁,那什么是简洁?如果基本概念不清,那也无法执行。
  • 评价简洁的标准是什么?例如把我的博客上有文字不分标题、正文和链接都改成5号黑色宋体字好吗?更简洁了,连字体和色值都省了,但是效果并不好。Windows Phone 7使用极简设计,如何评价它?因此至少需要一个因素来衡量简洁是否合理。
  • 简洁的前提是什么?任何方法和原则的使用都是有条件的。

功能

简洁是相对的,用于判断界面A/B方案中的某个元素(如视觉和声音)是否存在的必要。这个元素的存在与否只对界面设计的形式有影响,并不影响功能,在满足基本功能的前提下讨论简洁。

有效与简洁

有效是形容词,用来描述满足功能的程序,也就是可用性。形式的可用性四要素:简洁性、可记忆性、可预见性和可见性,那么简洁和可用性的关系是什么?《和谐界面:交互设计基础》中对这点的论述中引用了屏幕复杂度(Screen Complexity)的概念:
公式
这个公式可以量化界面的复杂度,复杂度与简洁度是相反的概念,可以理解为简洁度,简化之后公式可以理解为:

  • C.界面简洁度
  • N.界面中元素的总数目
  • m.组件分类的数目
  • Pn.第n个组件的使用的频率
  • P.第n个组件的使用次数

可以得出以下结论:

  • 当N不确定时,由于N与C成正比,元素的数目N越少,复杂度C越低。
  • 当N恒定时,获取m和P的最佳组合值时C值最佳。N=n(1)×P(1)+n(2)×P(2)+n(3)×P(3)……n(m)×P(m),N等于每个组件使用次数的总和。
  • 当N恒定时,如组件m的数目过多时,界面更复杂。每个组件的使用率低,不利于用户对于界面的记忆,可用性降低。
  • 当N恒定时,如m过小时,界面更简洁。组件的使用率虽然高,但是元素之间没有区分,没有对元素进行分组,界面看起来呆板,可用性降低。

sj1

所以,简洁度过低或过高都不利于可用性,之后就可以推导出开篇的定义,那么Windows Phone 7使用极简设计导致元素组件分类少,可用性也较差。

sj2

根据N值确定合理的m值。当N值越大,m值并不是等比例变大,因为组件的分类过多,学习每个组件的时间一定,但会使得用户的记忆负担增加。(本人推测,有待验证)

sj3

当N恒定时,对于组件的使用次数越平均,如上图2比1平缓些,说明每个组件都得到更有效的使用,可用性也更高。(本人推测,有待验证)