阅读更多

13顶
0踩

移动开发

转载新闻 手机产品设计中的 15 大禁忌

2012-02-27 13:24 by 正式编辑 sherry617 评论(5) 有6186人浏览
在做手机产品设计的过程中,遇到很多看似很小且很容易被忽略的问题,正是这些小问题,一次次的撩拨用户的耐心,让用户对你的产品心生怨念。本文介绍了一些经验,供大家参考。


1.没有不可点击的效果

一般按钮会有四态:不可点击效果、可点击效果、聚焦状态、按下状态。如果你的按钮此时处于不可用状态,那么一定要灰掉,或者拿掉按钮,否则会给用户误导。

2.菜单层次太深

菜单项以5~7个为宜,如果有二级菜单,就要注意合理的菜单分类,不能有太多层级的菜单,否则很难预期,也很难找到,寻找和返回都会变得很麻烦。

3.文字长度不加以限制

手机界面很小,寸土寸金,一页只能显示下6~10个列表,一行只能显示下10~16个字,标题栏的字数以5个以内为宜,标签栏也以2~3个为宜,那么这时候出现文字过长的情况,一定要定义一下处理方式,如果是选择型的,一般是截断或者打点缩略;如果是内容阅读型的,可以折行。但最合理的方式还是精简文字内容,缩短文字长度。

4.文字表意不明

由于手机是碎片时间、片段式阅读,所以手机界面上的文字表意性要求的更高,更苛刻,一定要在用户瞟到的瞬间,准确的传达信息。除了表意清晰之外,还要求语言精简,避免啰嗦,使用用户的语言而不是程序的语言,产品文案体现产品性格。

5.交互流程分支太多

做交互的时候一定要有一个任务流程的概念贯穿始终,用户是为了完成某个任务而使用软件的,交互设计师除了关注界面元素、跳转逻辑和交互反馈之外,还要关注用户任务,分得清主要任务和次要人物,给主要任务一个畅通无阻的清晰流程,不要给予太多可能的分支,干扰主要流程。

6.相关的选项离得很远

相关选项一定要具有操作上的延续性,虽然手机屏幕看起来比电脑屏幕要小的多,但是手机在屏幕上移动的代价,却要比鼠标在电脑上移动的代价大的多,如果手机上相关选项离得很远的话,用户一是容易迷失,找不到下一步操作,二是需要移动手指,到屏幕另一端触发操作。

7.一次载入太多的数据

流量、电量、速度和稳定性是手机产品的四个硬指标,如果你的应用不能合理的帮助用户节约流量、电量,提升浏览速度和浏览体验,保证应用的稳定性能,就不要谈什么用户体验。你可以利用预加载缓存、批量载入、动态刷新、服务端数据压缩等方式来保证省、快、稳基础体验。

8.按钮可点击范围比看起来小

我们都知道移动端有个神器的数字“44”,根据食指最小点触距离7mm、拇指最小点触距离9mm,可以推导出做设计的时候,最小的点触距离是44*32 px。你可以设计一个精美的小图标,但是在定义它的点触大小的时候,却可以做放大处理,但你千万不要设计一个傻大的图标,点触范围却比图标要小,这样会给用户带来明显的误操作挫败感。

9.标签页跟内容没有从属关系

标签页跟内容需要有很好的联动关系,一般一个界面内有二级标签就足够复杂了,千万不要再有三级标签、四级标签。每个标签页都有自己特有的内容,当切换标签的时候,内容跟着切换。标签页如果是点击切换,内容部分可以整体刷新,标签页如果是滑动切换,内容页也要跟着滑动切换,千万不要一个点、一个滑。

10.把所有的操作都暴露出来

手机产品交互设计要经历缩减、隐藏、附加、组织的过程,千万不要妄图把什么功能、什么操作都暴露出来,以彰显强大。你需要把自己应用的所有功能所有操作做个优先级设定,那些常用的20%的功能,放在界面的主要位置上,其他80%的操作,放在次要位置或合理归类组织后,隐藏起来就可以了。

11.没有空数据界面设计

我们在做设计的时候,往往是提供理想化的场景,用户已经进来了,他们怎么玩。但是,应用刚推出的时候,往往是没有用户的,甚至当应用有了一定用户基础的时候,新进来的用户打开应用的时候,应用仍然可能是一种没有数据的状态,这些情况下,用户都可能遇到空数据的界面。新手设计师往往不加设计,这时候用户就会看到一个空白界面,茫然失措。有经验的做法就是,提供一个情感化的界面,告诉用户当前没有内容;更具引导性的做法,就是引导用户去执行操作。

12.用户引导的滥用

去年就预言用户引导将要泛滥,很明显设计部门都喜欢用漂亮的引导界面告诉用户新增的功能或隐藏的应用,但不是所有的应用、所有的功能都需要花哨的引导的。如果是通用的功能、非重点的模块,根本就不需要引导;如果是功能告知,只需要轻量级的引导;如果是版本更新说明,可以采用说明书式的引导,但是要言简意赅。

13.无加载中状态

手机产品只要是需要联网,需要交换数据,都需要提供一个加载中状态的,无论是圆环状还是Toast还是对话框,你需要给开发人员一个全局的定义,并且要告知加载中是模态(前台加载)的还是非模态的(后台加载)。且要考虑到加载时间过长、网络开关没有打开、网络不通等情况分别怎么去处理。

14.未定义Back的逻辑

在为Android做设计的时候,会涉及到硬件交互,其中Back键的使用,是一门学问,Android官方有一些指导原则可以借鉴,但是具体开发的时候,还是会有很多特殊情况,比如单一实例的替换、键盘及一些中间状态,这种情况下,Back可能需要被定义一下,该回到前一个实例(那就需要变成多实例了)还是该回到初始状态(清空输入内容或恢复初始状态)。

15.无横屏模式的设计

由于横屏模式下,纵向空间变得格外宝贵,导航栏、标签栏、键盘都需要被压扁,横盘模式一定要考虑是简单拉伸适配还是重新设计,如果你的应用不适合在横屏模式下使用,就屏蔽横盘,如果你的应用包括应用widget都需要支持横盘模式(甚至是带侧滑键盘的横屏机器),就需要提供设计方案。如果是S60V5这种竖高的机器,甚至需要重新设计。

作为手机产品交互设计师,利用设计规避问题,提升产品用户体验,把体验转化成价值,是我们所追求的境界。

  • 大小: 21.9 KB
13
0
评论 共 5 条 请登录后发表评论
5 楼 alajl 2012-02-28 13:54
不错,说得挺在理的
4 楼 zhengyutong 2012-02-28 12:47
16.广告的大小和位置要适当。
3 楼 ctfzh 2012-02-28 09:43
说得有道理
2 楼 潘勤启 2012-02-27 18:38
 
1 楼 wjs0702cn 2012-02-27 15:27
这个有用!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • spring bean是什么

    Spring有跟多概念,其中最基本的一个就是bean,那到底spring bean是什么? Bean是Spring框架中最核心的两个概念之一(另一个是面向切面编程AOP)。 是否正确理解 Bean 对于掌握和高效使用 Spring 框架至关重要。 那么...

  • 菜鸟的成长之路——向bean中注入属性

    我们到现在为止,已经可以“控制反转”了,并且深入探讨了一下容器和应用上下文,利用容器或者应用上下文获取到bean了,那么bean是怎么进行配置的呢?这节课我们就来学习一下bean的属性注入。

  • java 抽象类 注入_Spring中抽象类中能不能进行 @autoware?

    之前做项目中,有时候会突发奇想,这个就是在菜鸟阶段想到的,所以对java思想理解的比较低,勿喷。当时还真发现一些有意思的东西,我们可以...有多个子类实现时,进行autoware注入,spring不知道which bean去注入;(...

  • 配置类不加@Configuration竟然也可以注册bean

    @Configuration这个注解我想大家都不陌生吧,在大家看来加了@Configuration注解的类只不过是一个配置类,用来代替xml配置文件的一个类,在这个配置类里面可以和@Bean注解一起使用,通过@Bean注解往spring容器注入...

  • 【菜鸟篇】搭建一个简单的springcloud项目

    1.建立一个父工程 <!--公共的一些配置--> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</...

  • 如果你每次面试前都要去背一篇Spring中Bean的生命周期,请看完这篇文章

    前言当你准备去复习Spring中Bean的生命周期的时候,这个时候你开始上网找资料,很大概率会看到下面这张图:先不论这张图上是否全面,但是就说这张图吧,你是不是背了又忘,忘了又背?究其原...

  • Bean 注入 Spring 容器的方式

    xml 方式 注解方式 @Configuration + @Bean @Import ...一提到Spring,大家最先想到的是啥?...是Spring中Bean的初始化流程?...今天我们就从Spring的IOC特性入手,聊一聊Spring中把Bean注..

  • 小菜鸟 SSM框架之 Spring复习-03(Bean的三种装配方式)

    Bean 的装配方式 Bean的装配可以理解为依赖关系的注入,Bean 的装配方式 即Bean 依赖注入的方式。 ...在Spring实例化Bean 的过程中,Spring 会首先调用Bean 的默认构造方法来实例化 Bean对象,然

  • Spring菜鸟小白学习笔记-----Spring属性注入------详细源码和解析!

    一个物欲横流的世界 是资本使你变坏还是? ---致多人运动运动员,时间管理家... 上一节我们说到 Spring工厂类,今天的代码也是基于上次的项目内的demo4和demo5不清楚的同学点下方链接去看下。 具体地址 学习笔记的...

  • 菜鸟学习7-15 Spring的依赖注入 XML文件配置以及注解配置

    在当前类中需要用到其他类的对象,由spring为我们提供,我们只需要在配置文件中说明 依赖关系的维护: 就称之为依赖注入。 依赖注入: 能注入的数据:有三类 基本类型和String 其他bean类型(在配置文件中或者注释...

  • spring 依赖注入和循环依赖问题

    在公司发现项目竟然有...其实也很好解释:当一个 bean A 依赖于另一个 bean B,而 bean B 也依赖于 bean A 时,就会发生循环依赖:Bean A → Bean B → Bean A当然,我们可以存在更多的 bean:Bean A → Bean B → Bean C

  • 菜鸟带你扩展spring标签,实现自定义bean

    比如dubbo中定义dubbo:service 等,shardingsphere在适配spring,在spring配置文件中定义分库分表策略等,今天主要分析如何扩展spring自定义标签以及实现demo。为后边自研分库分表中间件实现spring配置做铺垫。 首先...

  • spring中的依赖注入方法

    spring中依赖注入的两种方法

  • spring注入+策略模式切换业务实现(解决一个接口多个实现动态切换的问题)

    通过spring托管的service业务类,这个类是通过反射拿到的,经过实验发现这个类只能反射取得service实现了接口的方法,而extends类的方法一律不出现,debug后发现这个servie实例被spring替换成jdkDynmicProxy类,而...

  • 基础框架 Spring Bean的生命周期

    Bean的完整生命周期经历了各种方法调用,这些方法可以划分为以下几类: 1、Bean自身的方法:这个包括了Bean本身调用的方法和通过配置文件中的init-method和destroy-method指定的方法 2、Bean级生命周期接口方法:这...

  • JavaEE——Spring框架(Spring中的Bean)

    bean的本质就是Java中的一个类,Spring中的bean就是Spring对该类的引用,来创建bean对象,可以将Spring比作工厂,bean就是该工厂生产的产品。 1.2 配置文件 Spring支持的两种格式的配置文件:properties文件和XML...

  • 获取一个接口类的所有实现类(基于Spring实现)

    import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework....

  • Spring依赖注入的三种形式

    作用: 替换:,修饰配置类。作用: 替换:,修饰配置类。5.@Bean 含义:直接在配置类中注入方法,修饰方法,无需扫描注入类。4.@Import() 含义:导入其他配置类,写在主配置类中。方法返回值为class 方法名称为id。

  • 【Java Web】 -> Spring 5 ->IOC 操作 -> Bean 管理 ->关于 IOC 的一切就在这里了

    IOC Bean管理Ⅰ 什么是 Bean 管理Ⅱ Bean 管理的两种方式A. 基于xml配置文件的Bean管理a. 创建对象b. 注入属性① set 方法注入② 有参构造方法注入③ p 名称空间注入④ 注入特殊值???? 设置空值???? 设置特殊符号⑤ ...

  • node-v0.10.13-sunos-x86.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

Global site tag (gtag.js) - Google Analytics