一、大白话谈搞好交互

一、大白话谈搞好交互

大家好,本人做安卓开发几年,下面我从一个app开发者的角度谈谈对app交互设计的几点浅理解。大白话谈交互,不喜勿喷。

  • 一,搞好交互,深入理解手机“视图”的概念
  • 二,搞好交互,深入理解软件中“事件”的概念
  • 三,搞好交互,深入理解软件硬件的依赖关系
  • 四,搞好交互,深入研究好使用场景
  • 五,搞好交互,选择好方案,定好大方向

什么是“交互”

“交互”字面理解,就是交流互动。就是用户与手机进行交流从而实现某种功能达到某种目的的作用。交互是人机两者双向的作用。

在PC时代,交互从操作系统上讲,就叫输入(in)与输出(out)。从思想概念上,把两者分割开来,即输入设备(如键盘鼠标)只能输入不能输出,输出设备不能输入(显示屏),设备用途功能非常单一。而移动互联网时代,最伟大的进步就是把输入和输出都放到了一个屏幕上,即手机屏幕既作为输出设备又作为输入设备使用。从而就变得复杂,一方面需要在这块尺寸不大的屏幕上显示手机上有序丰富的信息,另一方面又得方便用户手指操作,又要保证两者不冲突,从而产生了“交互”这个岗位学科。

一,搞好交互,深入理解“视图(View)”

“视图”英文或编程里叫View,就是屏幕上一个可以与用户交互的一块区域。也可以说是人机交互的基本单位。
“视图”最核心的两大功能,一通过横向纵向平铺和垂直叠加展示页面元素,向人反馈展示信息。二通过用户手指点击触摸等事件改变页面元素驱动程序向前进行以实现某种功能。

1.1展示分类

根据智能手机功能分类

展示分类 说明
通知状态栏(notifaction&bar) 提示用户新消息
app图标和快捷方式(app icon) 标明为app显示新消息条数
普通页面(activity) app普通页面
桌面控件(Widget) 桌面漂浮框


手机系统一般是通过触摸状态栏下拉,来显示通知栏的。通知主要分为两类普通消息式,自定义控制式。如下图。要注意的一点是,通知只能做点击事件处理,其他长按拖拽等事件已经被系统占据,app不可使用。


app图标和快捷方式。要注意的两点是,有些app可以没有图标入口,一般作为病毒app使用。二,普通app可以主动添加快捷方式,抢占用户入口,非常重要。


普通页面,是交互设计最主要的舞台。最常见的页面控件就是自上而下,自左向右的平铺,但更为复杂的更需要技巧的是页面元素的垂直叠加。如页面上下或左右滑动切换翻页,还有游戏引擎绘制。

桌面控件(Widget),很多人对此不太了解。大家可以理解为桌面一块可以交互的区域。但是它又有自己的特性。1,桌面显示,级别高。2,只能设置点击事件,长按触摸被系统占用。3,可以手动控制显示区域大小。Widget我们常见的是时间widget,Widget做的最惊艳的是yahoo新闻
![手机时间widget]

1.2区分对话框(Dialog)与吐丝(Toast)

两者有很多共性,两者可以同为提示框,都可以在页面上半透明显示,都可以自动取消,都可以自定义样式,那两者有什么本质区别呢?从交互设计上讲,两者最根本的区别在于,Dialog可以接收手指触摸等事件从而中断用户操作页面元素,而Toast不接收触摸事件,不妨碍用户操作页面元素。

二,搞好交互,深入理解“事件(Event)”

“事件”大家最常见的就是点击事件,但除了手指的点击,还有手指的拖拽,长按等事件,还有手机的晃动,声音的监听,光线的感应,推送等。一句话只要是可以被手机所感知的,可以触发手机的开始运行相应程序的人物行为,都可以称为事件。
事件监听(Listener),软件向系统注册事件监听者,来驱动程序向前跑。

2.1事件分类

事件类别 说明
屏幕触摸(Touch) 包括屏幕的点击,长按,拖拽等事件。
推送(push) 手机启动本地服务(server)通过长链接接收后台服务器(service)一条消息
系统和软件(system&app) 如时间,开机,震动,电话,短信等事件
视觉和声音(sight&voice) 如拍照,录像,录音等事件

屏幕触摸(Touch),乔布斯之所以伟大,我感觉不是他搞出了苹果系统,而是从废弃了诺基亚多机械硬件键盘点击事件到现代智能手机的屏幕触摸事件极致运用。屏幕除了可以点击外,还可以上下左右滑动。准确控制屏幕上每个元素,同时手机上的显示控件可以随意的横向纵向排列,垂直叠加显示,丰富了显示信息极大的降低了用户使用难易程度,以至于宝宝一岁多就可以用智能手机玩简单的小游戏。
系统和软件(system&app),这是操作系统层设计,传统事件,为实现手机等工具类的基本功能所有的事件。
视觉和声音(sight&voice),除了传统基本的录像录音打电话外,还是人工智能的入口。视觉也就是摄像头,可以有二维码识别事件,人脸人物识别,声音识别。
听筒扩展了人的耳朵,摄像头扩展了人的眼睛。

举例,微信大家都很熟悉,微信有个播放语音时,有个需求就是可以前后声筒可以切换。微信之前的交互设计想到的也是点击事件,通过按钮单机图文说明提示的方式实现。需要多次切换,就得多次点击,麻烦费力。现在微信把这一切换改为了依托于前置感光事件来实现,用户不需要刻意地去切换,只需把手机放在耳边就是前声筒出声,拿开就是后声筒响应,非常方便。我感觉这改进是质变的。

所以说,事件是人向手机发起命令的基本方式,总结手机可以接收的事件分类关系,才可以交互设计出更符合人体工业设计的产品。

2.2事件传播方向,事件截获与事件冲突

屏幕事件传播方向是当页面控件平铺时由外向内,页面控件叠加时由上而下。根据这一系统设计原理,页面控件可以截获事件,避免事件向下一级传播,从而对事件进行有效控制。
事件冲突,对面有些事件冲突可以避免,有些不可避免。例如,一个Button按钮的点击与双击是冲突的,双击事件的设立会影响点击的时效性。

三,搞好交互,深入理解软件硬件的依赖关系

软件硬件,一起组成了我们互联网的大千世界。就像我们人,既有肉体又有思想灵魂一样。

3.1 权限的高低

一个真理,就是所有的软件(app)功能都依赖于操作系统(system)的api接口的提供,所有系统的功能都依赖于硬件的支持。换句话说,就是所有的软件都需要向操作系统申请权限来实现某种功能,系统不给批准,软件神法也没有。操作系统做的再好,没有硬件的支持,操作系统就是废物。从商业上讲

3.2 速度的快慢

简单一句话,硬件的速度比软件快。以安卓浏览器为例,做同样的任务,速度的快慢依次为,手机硬件>手机系统>手机浏览器>H5,js

3.3 灵活性

越向硬件底层,其灵活性和可控性越差,需要的开发设计人员越少。而越向软件上层走,其可控性灵活性越高,内容越多,越丰富。

3.4 薪水的多少

做底层硬件的工资通常都比较低,而越向软件的上层,大牛的工资越高。因为他舞台广阔,大有可为。

从商业上讲,为什么像小米和360公司,除了做好app外,拼了命地做自己的手机系统?我个人认为他们是在获取普通app所不具有高级权限,在为自己的公司谋利益。如控制本公司的app不能卸载。

举例,问个问题,普通智能手机是否可以识别纸钞的真假?很多人认为现在的手机功能很强大,app市场上也有很多“验钞机”app,所以肯定可以。其实不可以,一句话,就是因为硬件不支持,手机硬件没有一个零部件是验钞机具有的。所以即使手机功能再强大,还是无法验钞。

四,搞好交互,深入研究好使用场景

4.1 想好使用场景

一个好的交互设计师,也是半个导演。只有深入理解客户的需求,才可以知道页面跳转,控件大小,事件的调用,才可以设计出优秀的交互。同样一个功能,在不同场景也应该有不同的展示和使用方式。
我理解的场景比如说,是时间的昼夜、用户忙闲、年龄的大小,工作的分类等等。
实践是真理的唯一标准。我们靠自己经验自己想象的情景,未必是真实的应用场景。作为方案的补救和自我的提升办法,一定要亲近用户,细心询问用户我们现有的交互设计是否完美的匹配他们的需求。
总之,一切的产品交互设计和开发都应该服务于用户的使用场景。

五,搞好交互,选择好方案,定好大方向

客户端与服务器之前的交互,服务器与服务器之前的交互,就是我们整个项目大楼的主体设计。商策好这一大方向,会在工作中让开发和测试同学事半功倍,也会让项目更为强健。反之,易出bug,让客户端易出问题,让客服为接用户问题反馈而忙得不可开交。

5.1主体交互注意事项

1,排除服务与服务之间往复调用。
2,忌讳服务器在客户端存数据关联表
3,尽量少使客户端与后台服务器频繁链接。
4,研究后多客户端同一账户登录,数据同步的问题。
5,坚持服务调服务远比客户端调服务数据更安全的理念。

5.2“同步异步”方案

同步非常好理解,通俗点说就是1->2->3步,只有第1步执行了,才可以执行第2步。只有第2步执行了,才可以执行第3步。一个人顺序干,就是同步。而异步是两个人干,一个人A让另一个人B干,B干完再告知A,这两个回合才叫异步。

同步图

Created with Raphaël 2.1.0 客户端 客户端 服务器 服务器 访问服务,下达任务 几秒处理完 返回处理结果


异步图

Created with Raphaël 2.1.0 客户端 客户端 服务器 服务器 访问服务,下达任务 任务重,开始计划去做 返回处理状态(处理中)

一段时间后:推送

Created with Raphaël 2.1.0 服务器 服务器 客户端 客户端 返回处理结果

或刷新

Created with Raphaël 2.1.0 客户端 客户端 服务器 服务器 访问服务,获取数据 已处理好的数据 返回已处理好的数据

同步异步,在我们项目中,通常是指客户端访问服务器,在服务器执行任务时所采取的方案。任务轻我们用同步,任务重我们用异步。什么是任务的轻和重,我们可以简单用时长来判断,超过10秒的服务任务,我们可以定义为重任务。轻任务较多,比如简单的注册,登录,退出等。重任务比如,支付宝转账,客户端支付账单提交成功后,需要后台人员审核,再把钱转过去。

5.3 访问与推送(push)

网络技术发展到现在,客户端A访问服务器B相对容易,用http协议短链接即可。而当服务器干完再返回给客服端时就变得很困难很复杂,因为客户端不一定处在活动状态。两种方式解决此问题,一种是简单傻瓜式,客户端定时每隔几秒去访问服务器,我们称之为轮询。另一种是在客户端上启动服务与服务器保持长链接,时刻等待服务器的处理结果。目前3种客户端推送状况

客户端 推送状况
苹果IOS 相对来说,IOS的推送状况好一些,一部手机一条与IOS官方的长链接。
安卓Android 相比IOS,安卓推送比较差,是一个app一条与本官网的长链接。费电!
H5 PC部分浏览器实现了websocket推送。而手机的浏览器没有推送功能。
微信小程序或公众号 因有微信长链接的支持,小程序的推送效果最好。

结束!

猜你喜欢

转载自blog.csdn.net/javaliuzian/article/details/79161378