怎么看iOS human interface guidelines中的user control原则
最近离开了老东家,整理整理思路,因为一直做的是微信公众号相关的产品对app的东西有一段时间没有做过了,所以又看了一遍iOS human interface guidelines,看到user control的时候有了一些感慨,所以用这篇文章记录下。可能有些同学没有看过相关的内容这里先把中文版(@喵大神经)的相关小节贴出来:
在iOS内部,是用户——而不是应用——在控制。应用可以对一系列用户行为提供建议,或对可能造成严重后果的行为发出警告,但不应该替用户做决定。好的应用会在让用户主导和避免不想要的结果中找到平衡。为了让用户感觉到是他们在控制,应用应该使用熟悉且可预知的交互元素,让用户二次确定有破坏性的行为,并且让即使在运行中的操作也能够被轻易取消。
上面这段话在不少人的理解上是我们的产品设计要以用户为中心,应用要跟随并且响应用户操作,让用户获得精神愉悦。我经历的两家公司都有这样的情况,我们按照某个我们在办公室里规划产品,作原型稿,讲解那些需求,我们认为自己知道用户需要什么,我们认为了解他们使用的场景,我们认为了解他们的目标。这里说一个我对产品使用场景理解错误的例子,在做音频课程(5-8min)的时候,我预期的家长使用场景是晚上入睡前躺在床上,听着音频学习。在音频播放控件的设计上,能实现的功能包括播放按钮,课程列表和进度条,当用户查看文字稿的时候音频组件会缩小,方便聚焦文字不被打扰。对了,进度条的拖动不灵敏,操作相当的麻烦。说到这里知道问题在哪了么?核心使用场景错误!!!针对这种碎片化时间内的阅读/听的内容主要的场景发生在走路,坐/开车的过程中,这种场景中用户因为需要对外部环境进行观察,无法聚焦到产品上,如果操作不够直观会发生很多预想不到的错误引发挫折感。这导致如果应用不能在这个场景中满足需求的话,用户时没有其他时间可以提供给你的应用的。比如王者荣耀,很多白领喜欢在午休时间玩,如果在这个场景中匹配玩家时间超过预期,服务器响应慢最终也会带来满满的挫折感。这里是要说的第一点实现user control的前提是了解使用场景,满足不同场景以及场景切换的顺畅进行。
第二点要说的是实现user control要平衡统一交互,这里不涉及到类似隐喻这类具体的设计方法,而是要我们从整体视角考虑产品的交互逻辑,在文案,按钮,色彩操作反馈上能清晰表达情感,避免不熟悉不确定,让用户感到陌生。在做原型的时候我们一直强调原型即产品,但是在工作中因为分工和排期的问题很容易出现原型的评审没有意义,评审过的东西依然可以修改,这个是工作流程的问题,没有明确任务截至期以及截止期过后的修改怎么操作,又何种的惩罚。如果你的身边有类似的情况,建议管理者想想措施,不然扯淡会是主旋律。上面说的是团队整体的问题,下面就是产品岗个人的问题,在一个新产品立项到第一个版本上线没有完整的文档纪录,没有全盘的思考,这些思考包括产品路线,目标用户,渠道管理,运营框架以及数据收集框架。这几点在刚开始没有明确的文档的情况下做产品是不是完全不行?不是,往往新产品的上线时间都很紧张,但是在上线后还不留一段时间做这些事情基本上就意味着永远不会有机会做了,别觉得自己有例外,要么文档内容不全,要么忘记。
最后一点,基本上说了你也不会停的。user control要求把控制权交给用户,作为产品经理也好,设计师也好,老板也好都只是旁观的建议者。因为产品的设计过程中参与多,很多人会像家长对待孩子一样的方式对待孩子,即宝宝应该这样,宝宝应该那样,仿佛已经设计好了一条直达哈佛的路线给孩子,就是不愿给孩子自己选择人生的方向,什么都要参与一下。产品时演化出来的,遥控器应该在用户手里而不是我们,强行认为是我们的话其实还是不是。
就说这些,又吐槽了不少内容。我是alvin,产品界的小学生。
怎么看iOS human interface guidelines中的user control原则的更多相关文章
- iOS 人机交互指导方针(iOS Human Interface Guidelines)
iOS 人机交互指导方针(iOS Human Interface Guidelines) 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名 ...
- 【译】iOS人性化界面指南(iOS Human Interface Guidelines)(一)
1. 引言1.1 译者自述 我是一个表达能力一般的开发员,不管是书面表达,还是语言表达.在很早以前其实就有通过写博客锻炼这方面能力的想法,但水平有限实在没有什么拿得出手的东西分享.自2015年7月以来 ...
- 《iOS Human Interface Guidelines》——Popover
弹出框 弹出框是当人们点击一个控件或屏幕上一个区域时显示的一个暂时的界面. API NOTE 在iOS 8及以后的系统中.你能够使用UIPopoverPresentationController来显示 ...
- 《iOS Human Interface Guidelines》——Multitasking
多任务处理 多任务处理让人们在屏幕上(以及合适的iPad模式)查看多个app,而且在近期使用的app中高速地切换. 在iOS 9中.人们能够使用多任务处理UI(例如以下所看到的)来选择一个近期使用的a ...
- 《iOS Human Interface Guidelines》——Search Bar
搜索栏 搜索栏接收用户输入用于搜索的文本(例如以下,带有占位文本). API NOTE 查看UISearchBar学习怎样在你的代码中定义搜索栏.查看UISearchDisplayController ...
- 《iOS Human Interface Guidelines》——Wallet
Wallet Wallet(钱包)帮助人们查看和管理Pass(凭证),这是一种相似于登机牌.优惠券.会员卡.奖励卡和各种票的物理凭证的数字替代.Wallet也同意人们加入信用卡.借记卡和储值卡来和Ap ...
- 《iOS Human Interface Guidelines》——System Button
系统button 系统button运行一个app特定的动作. API NOTE 在iOS 7中,UIButtonTypeRoundedRect被又一次定义成UIButtonTypeSystem.查看U ...
- 《iOS Human Interface Guidelines》——Edit Menu
编辑菜单 用户能够显示一个编辑菜单来在文本视图.网页视图和图像视图运行诸如剪切.粘贴和选择的操作. 你能够调整一些菜单的行为来在你的app中给用户给多的内容控制.比方你能够: 指定哪一个标准菜单命令对 ...
- 《iOS Human Interface Guidelines》——Segmented Control
分段控件 分段控件是一组线性段.每一个button相应的功能能够显示一个不同的视图. API NOTE 查看UISegmentedControl来学习很多其它关于在你的代码中定义一个分段控件的内容. ...
随机推荐
- MySQL Sniffer
MySQL Sniffer 是360开源的一个基于 MySQL 协议的抓包工具, 能实时抓取客户端端请求,并格式化输出操作语句,操作十分简单.对于问题的定位,操作的审核是个不错的利器. Github地 ...
- Jmeter+Badboy实战经验三 Jmeter关联相关知识
1. 什么时候需要使用关联? 有些参数是动态变化的,获取之后,再次操作的时候,参数的值已经发生了变化,这种情况下就会出现脚本不可运行的问题,就需要用到了关联 2. 关联是什么概念? 3.jmeter ...
- 1751: [Usaco2005 qua]Lake Counting
1751: [Usaco2005 qua]Lake Counting Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 190 Solved: 150[Su ...
- iOS程序进入后台,延迟指定时间退出
程序进入后台,延迟指定时间退出 正常程序退出后,会在几秒内停止工作:要想申请更长的时间,需要用到beginBackgroundTaskWithExpirationHandlerendBackgroun ...
- docker X509 证书错误的终极解决办法
最近在做Docker相关的东西,发现只要一pull镜像,就出现如下的ERROR x509: certificate signed by unknown authority. 调查后发现,是公司IT把h ...
- iOS切圆角的几个方法
这几天在研究到切圆角的方法,也找了下网上的资料 ---------- 切圆角尽量避免离屏渲染. 1.直接用视图中layer中的两个属性来设置圆角,这种方法比较简单,但是及其影响性能不推荐: @pro ...
- Servlet 与 Ajax 交互一直报status=parsererror
原因:servlet 返回的数据不是 Json 格式 1.JS代码为: var jsonStr = {'clusterNum':2,'iterationNum':3,'runTimes':4}; $. ...
- php基础语法(20161021)
上午: 数据库总结: 1.创建数据库 create database 数据库名称 删除数据库 drop database 数据库名称 2.创建表 create table 表名 ( 列名 类型(长度) ...
- Mybatis的@Options注解
mybatis的@Options注解能够设置缓存时间,能够为对象生成自增的key 第一个使用场景: 有一个表 CREATE TABLE instance ( instance_id BIGINT UN ...
- (14)jdk1.5开始的一些新特性:静态导入,增强for循环,可变参数,自动装箱/拆箱,枚举类型
Jdk1.5新特性之静态导入 jdk1.5新特性值静态导入 静态导入的作用:简化缩写 静态导入的作用:可以作用一个类的所有静态成员. 静态导入的格式:import static 包名.类名.静态的成员 ...