近段读完并分享了Allan copper的 About face3 : The essentials of interaction design,推荐没看过的程序员朋友可以抽时间看看。感觉上这本书对交互设计讲得比较透彻,首先拿出了方法--目标导向的交互设计,再介绍了交互设计的过程框架,最后介绍交互设计的细节。比较易读,不仅有大量的细节规则,还会让读者对交互设计的方法和框架有一些认识。

第一部分:目标导向的交互设计

1. 设计的定义:了解用户的需求和期望,了解商业,了解技术限制,设计出可行,满足用户,满足商业要求的产品。简单说设计是用户,技术和商业三个要素的折中。看下图,Novell, Apple, Microsoft分别擅长技术,用户,商业,但都只是设计的一个方面。

2.  设计,一般不是解决可用性(Usability)的问题,而是要满足设计的目标。设计的目标包括很多维,包括商业目标(产品干什么),用户个人目标(用户的感觉),用户的人生目标(用户的荣耀和财富)。产品功能,任务往往是不稳定的,而用户目标是稳定的,甚至会稳定几百年。比如从北京到江南,快速舒适就是用户的目标,几百年前的产品是京杭运河的高档楼船或马车,现在是高铁,都能满足当时的用户目标。
3.   产品设计要倾向满足用户的精神感知模型。比如现在各路电视盒子的UI就比老式的电视控制界面更接近感知模型。不要暴露布尔逻辑给用户,那不是感知模型。
4.   除了用户目标,还要了解用户角色。用户一般很忙碌,却很聪明。设计最好针对的80%的中间用户,不要太偏向专家或新手。开发者容易偏向高级用户,喜欢开发一些命令行工具,那是给专家的(Linux :))。销售一般偏向菜鸟,巴不得你多开发一点用户向导之类的东西,那玩意减少他们支持的工作量。
5.   综合目标导向的设计方法,过程可见下图,关键是用户目标和用户的角色。设计的过程是非常具体的,不像代码容易抽象和重复使用。
第二部分:目标导向设计的模式和框架
6.   软件产品的模式,注意你的产品类型,注意不同类型交互的特点:平台型的软件,例如Word, Visual studio, 需要足够的可视空间,工具栏,不要太拥挤,需要丰富的信息反馈。 临时型软件,希望用户尽可能快地脱离主界面,干该干的事情。例如QQ, Skype, Winamp, 游戏模拟器等。守护型软件,类似守护进程,简单地窗口方便用户随时管理。例如虚拟光驱类的软件。  
7.   用户喜欢的状态:流,这是用户在使用产品的时候进入的一种温和的沉醉状态。诀窍是不要过多用提示打扰用户,把工具放在用户的手边,不要让用户等待太久。例如0.1秒的等待,用户会认为是同步的。用户会认为1秒也是可以的。10秒的等待,用户期望有进度条。更长的等待需要有异步,后台进程或线程。
8.   替用户消除额外工作。额外工作是对用户完成目标无关的工作。技巧有,设置不要太多,太复杂,界面复杂的话控件应该放在其他的Tab页里。保存用户的输入状态。不要问用户太多问题,让用户去做,让用户去Undo。
第三部分:交互设计的细节规范
9.   关于磁盘文档:管理磁盘文件不是用户的目标。传统的文件模型强化了实现模型:一份文件在硬盘,另一份数据在内存。应该简化,用“文档”的概念去操作数据。文档应该自动保存。苹果的软件在这方面相当不错,例如itunes。
10. 对话框。对话框的缺陷是无法表现对话框之间的联系。现代对话框设计要尽量避免过多的对话框和难以管理的对话框关系。Mac程序一般在这方面不错,很多软件的第一观感是单窗口的。MDI和SDI,MDI也是比较老式的表达方式,优点是可以方便得在多个文档视图里操作数据,缺点是不同的菜单和过多的对话框,不够直观。来看一个糟糕的例子:
11.  菜单。相比工具栏,菜单有完全的文本按钮名,适合新手用户。由于用户不能非常快地用鼠标操作菜单,最常用的功能最好不要放在菜单里。注意实现的时候菜单的Enable/Disable状态要同步好。
12.  工具栏。工具栏应该持有图标按钮,适合熟练用户快速操作,工具栏不应该用文本按钮,而用Tooltip描述文本。由于菜单和工具栏的不同特性,微软的解决方案是合并两者的长处创建了"Ribbon"这种复杂菜单,而苹果的风格是尽量简化菜单,全局菜单动态加载为当前软件的菜单:
13.  简单控件。普通的动作控件主要包括Button, 菜单项,工具栏图标,HTML超链接。选择控件包括Check Box(复选框),Radio Box(单选按钮),Combo Box(下拉选择项),动态按钮(在同一个位置动态变化的按钮,例如播放器的播放和暂停键)。各有利弊:复选框,单选按钮会占用不少的屏幕空间,下拉选择占用空间少,主流。动态按钮占用控件少,但需要用户花时间熟悉。
14.  列表控件。一些好的交互经验:在每个条目前面加上图标;如果需要多选条目,卷动的时候会乱掉,最好在每个条目前加上复选框;如果条目很多,分页;尽量能让每个条目可编辑。
15.  树形控件。一般树形结构复杂且难以理解。如果不是确定的典型树结构,最好不用这种展示。(iOS用列表,展开项到另一页,不会去在一个页面上绘制复杂的树)
16.  文本控件。一些好的交互经验:不要让文本输入控件在水平方向卷动;在输出的地方允许输入;校验用户输入(可以给一个timer, 在每次输入后检查一下);考虑一些新颖的输入方式,例如需要输入1.0-7.5范围内的浮点值,可以考虑做仪表盘控件滑块。
17.   错误,警告,确认信息。告诉用户错误不是一件好事,更好的做法是深入考虑,在实现阶段让错误无法发生。别太严格,别打断用户的任务,可以给一些声音反馈。普通消费类软件可以考虑用非模式的泡泡提示错误,如果要用错误对话框,那么要礼貌说明错误,有何选择,缺省选择,哪些数据会丢失:
18. 拖放操作。 拖放时画出源对象;目标对象也要绘制一些特殊的状态,支持对拖放位置的鼠标卷动。
19.   鼠标选择和操作。一些好的或规范的用户体验:在对象上单击鼠标为选中;按下鼠标为准备动作,松开鼠标键开始执行;不要让用户在粗略鼠标操作和精细鼠标操作中来回切换,例如点选和卷动混在一起,可以用手势;只使用基本的鼠标键;选择对象可以用一个容限值,3-5个pixel比较合适。
20.   其他细节规范:查询和检索可以使用标签(tag); Undo/Redo非常重要,这个功能可以让用户放心得使用功能而不必担心编辑错误和状态丢失。
这20条基本是这本书浓缩的东西。本文没有展开讨论用户角色和访谈的相关章节,有兴趣的朋友可以关注用户角色的相关部分。

目标导向的交互设计:About face 3 -- The essentials of interaction design 读书分享相关推荐

  1. 软件观念革命:交互设计精髓_万字干货,交互设计精髓105条设计原则(附中英PDF资料)...

    <About Face: 交互设计精髓>称得上是交互设计的圣经,用"工作必备,常看常新"来形容也不为过.书中的每句话对平时的实践都有着指导意义.更难能可贵的是,这本圣经 ...

  2. 你不了解的10条交互设计原则

    交互设计,又称互动设计,(英文:Interaction Design, 缩写 IxD ), 是定义.设计人造系统的行为的设计领域.以人的需求为导向,理解用户的期望.需求,理解商业.技术以及业内的机会与 ...

  3. about face3 交互设计精髓 【理解目标导向设计】

    chap 1 目标导向设计 1.  产品开发的三个现代要素      ① 可行性:用什么来保持业务连续运转      ② 生存能力:能构建出什么?      ③ 期望性:人们需要什么 2.目标导向的设 ...

  4. 交互设计之理解目标导向设计

    一.目标导向设计 1.理解用户的期望.需要.动机和使用情境,更好的理解用户的目标,以及这些目标如何有助于设计适当的交互行为. 2.识别用户目标----关注用户目标而不是关注用户要完成的任务. 3.设计 ...

  5. 交互设计的114条原则

    1.交互设计不是凭空猜测. 2.用户界面应该基于用户的心里模型,而不是基于实现模型. 3.目标导向的交互反映了用户的心理模型. 4.用户不理解布尔逻辑. 5.不要全盘复制机械时代产品的用户界面,而一定 ...

  6. 交互设计入门(思维、方法、工具)

    在日常工作中,我们或许会遇到这样的情景: 说不清楚交互设计师和 UI 设计师的区别,被人觉得交互设计师就只有审稿或在产品经理出的原型基础上完善优化的份了:面对很多成熟的交互组件库和界面框架,觉得交互设 ...

  7. 游戏交互设计中的114条原则

    1.游戏中的交互界面设计不是凭空猜测.要符合用户习惯. 2.用户界面应该基于用户的心里模型,而不是基于实现模型. 3.目标导向的交互反映了用户的心理模型. 4.用户不理解布尔逻辑.他们不管为什么,只要 ...

  8. 交互设计专业书籍推荐(内有部分书籍电子版下载)

    整理前言: 什么书籍能帮助交互设计师更好学习交互设计,提升实战能力呢?曾经也读过很多关于交互设计与用户体验的国外书籍,但想针对实战的书籍确实比较少.交互设计是设计学科的一个分支,设计的最高境界为禅意最 ...

  9. 交互设计实用指南系列 – 我们眼中的交互设计

    交互设计(Interaction Design, 缩写 IxD 或者 IaD),是定义.设计人造系统的行为的设计领域.人造物,即人工制成物品,例如,软件.移动设备.人造环境.服务.可佩带装置以及系统的 ...

最新文章

  1. Udacity机器人软件工程师课程笔记(七)-ROS介绍和Turtlesim包的使用
  2. 寒武纪开盘暴涨350%,市值突破1000亿,85后创始人身家超300亿!千亿盛宴背后隐忧不可忽视!...
  3. C# 准备开始学习 并行程序开发
  4. [PM Tools]软件项目进度跟踪表v4.0
  5. php7.3安装yaf扩展
  6. 百万数据报表读取:解决方案及原理分析
  7. Error: Cannot find module 'webpack-cli'--解决方案
  8. mybatis调用oracle存储过程例子.
  9. 前几行 python_调包侠神器2.0发布,Python机器学习模型搭建只需要几行代码
  10. BZ OJ 2818 Gcd (欧拉函数)
  11. 2022考研数据结构_1 绪论
  12. 词云图生成器使用帮助
  13. 硬件工程师成长之路(1)——元件基础
  14. Resize operation completed for file#
  15. pyecharts画世界地图时显示为中文之世界各国中英文国名对照
  16. 离散数学学习笔记——命题逻辑
  17. 基于RecyclerView的图片浏览器
  18. 华东师范计算机模拟考试题答案,《计算机入门》模拟卷C答案-华东师范大学
  19. 怎么搭建一个高性能服务器
  20. UEStudio设置为传统菜单

热门文章

  1. nyoj 3 多边形重心问题
  2. php五只猴子分椰子_(笔试题)分椰子
  3. Pytorch - Illegal instruction
  4. Unity3d导出的安卓包如何在真机上看log打印
  5. android listview替代,Android笔记——RecyclerView替代ListView
  6. 定位线程Segment fault (SIGSEGV)的方法
  7. 这样做数据可视化驾驶舱,高端大气,一目了然,领导不点赞都难
  8. checkbox选中属性
  9. 山东科技大学2020年6月1日作业题解
  10. couldnt find pybind11Config.cmake