没有开发者或者设计师会故意破坏应用的设计。所有的应用程序创建者都对自己的应用寄予美好的愿望,但是很多错误是在他们无意识的状态下破坏app的设计。以下是应用开发者和设计者经常犯的几个错误,不过这些错误是很容易避免的。

糟糕的app icon

通常情况下,用户对应用的第一印象来自于icon。当用户看到应用的icon时,他们经常会做这些猜想:它是安全的吗?我可以信任它吗?这款应用可靠吗?应用是否是由专业人士开发?它值得我投入时间吗?

很多时候,当一个应用程序的想法出现在脑海里时,icon通常是最好才被后想起的,但它却是用户对应用的第一印象。通常我会建议你花点钱雇一名好的icon设计师,不过也建议你雇佣一个好的app设计师。如果你想自己设计icon,那么要确保你的icon不会吓跑用户。

对于不同的开发者和设计者来说,每个人似乎都有他们自己关于什么是好的icon的想法。

在App Store的“Camera” 类别中,你会看到一些icon非常引人注目,而另一些icon则似乎被隐蔽了,默默无闻地藏在某个角落。很明显,让icon脱颖而出的是其视觉上的吸引力,但是哪些元素让icon更具视觉吸引力呢?

1.专注于一个独特的形状。是否有一个形状,你可以用在自己的icon中,从而提高icon的可辨认度。

2.用色上精挑细选。确保你使用的颜色能满足某个目的,并保证它们彼此之前能相互协调。

3.避免使用摄影作品。在一个小尺寸的icon上,用户很难看清摄影作品的细节。

4.避免使用大量文本,保证其易读性。

确保你的应用已经遵守了上述几项,从而避免给用户带来不专业的感觉。

强迫用户注册

比如,朋友给你推荐了一款非常优秀的应用,而你也非常有兴趣使用它。下载应用--打开,而弹出的第一个屏幕却要求你先注册,很肯定的一点,这不是你期望的第一体验。用户下载应用后肯定希望能立刻体验它,如果你使用计算器应用都需要注册,那么这个设计是非常愚蠢的。

不过,有些应用出于功能方面的要求需要首先进行注册,这种情况下,要确保有一个很好的指导过程,并且注册要求应该切合应用的实际需求。如果不是这种情况,那么你可以侥幸首先展示应用,如果用户希望解锁更多功能,比如邀请朋友和跟踪目标,那么再要求用户注册。

过小的控件

这一点就如同让一个手指粗大的人穿针引线一样,几乎是不可能实现的。对于儿童来说,我们需要简化元素并将之放大,对于应用来说也一样,大尺寸控件更易于用户与之进行交互。

在此前的iOS版本中,计算器应用中控件尺寸已经比较合适了,不过iOS 7使用了更大一点尺寸的控件。

难以阅读的文本

对用户来说,滚动阅读要比眯着眼阅读容易的多。很多时候,你想从屏幕上获得尽可能多的信息,比如股票图表,但对于文本来说,滚动方式可以让你更快地进行阅读。不过,阅读速度依然依赖于文本阅读的难以程度。使用更大尺寸的文本没有什么不妥。就像上边提到的控件部分,更大一点的尺寸并不仅仅适用于儿童,当不在4英寸屏幕上进行阅读时,大一点的字体会让阅读变得更加容易。

如果你不确定应该使用哪个字号的文本,那可以使用 Dynamic Type 。这样用户可以决定哪个字体大小最适合他们,而你也无需为如何恰到好处地展示内容而担心。

承载过多品牌

思考一下,用户使用你的app所要付出的代价:

1.他们需要从App Store下载你的应用,它展示应用的名称和icon。

2.他们需要通过查看应用名称和icon在手机上打开应用。

3.他们需要观看展示app logo和名称的加载视图。

等到他们真正要使用应用时,你的品牌已经通过三次不同的机会曝光给他们。除此以外,真的没有更多的需求要你在应用中填塞商标或品牌。对于网站来说,给品牌更多曝光机会似乎无可厚非,因为你不知道用户是如何到达你的网站的。但是对于应用来说,用户到达应用只有一个方法,就是点击打开应用。

令人困惑的动画

动画可以让应用更加简单简洁,不过不适当的使用也会让应用变得难以理解或者令用户迷失。把动画用在设计当中非常尤其重要,不过问题在于很多时候它们并没有任何目的。在本文中,我们不深究纷繁难懂的动画。

仅仅只是部分例子

在app设计过程中,开发者和设计师犯过很多破坏设计的错误,不过上述是最明显的一部分,并且也很容易避免。深入理解设计规则和移动应用特性可以帮你打造更好的用户体验。

出处:cocoachina

6个错误将杀死你的App的更多相关文章

  1. VS2015调试UWP程序时提示错误DEP0700 : Registration of the app failed. Another user has already installed

    在同一台windows10电脑上调试过一个工程以后,切换了账号再次调试出现错误 DEP0700 : Registration of the app failed. Another user has a ...

  2. 错误:无法访问android.app.Activity 找不到android.app.Activity的类文件

    视频里面在工程ndk22/bin/classes中 运行javah  com.cn.ndk22.Ndk22.Activity ,出现了.h文件 但是我在bin/classes目录中运行javah 时出 ...

  3. ios APP进程杀死之后和APP在后台接收到推送点击跳转到任意界面处理

    https://www.jianshu.com/p/ce0dc53eb627 https://www.cnblogs.com/er-dai-ma-nong/p/5584724.html github: ...

  4. Electron 发生错误 "Cannot find module app"的解决方案

    运行一个electron小demo出现的一个错误信息:Cannot find module app 原代码如下所示: var app = require('app'); var BrowserWind ...

  5. APP长时间后台运行

    *  参考:http://www.nivalxer.com/archives/187 首先,我要说明的是在iOS中,一般应用程序在后台挂起之后仅拥有3分钟时间来处理相应的未完成事件,但是3分钟之后就会 ...

  6. 关于面试总结-app测试面试题

    前言 现在面试个测试岗位,都是要求全能的,web.接口.app啥都要会测,那么APP测试一般需要哪些技能呢? 面试app测试岗位会被问到哪些问题,怎样让面试管觉得你对APP测试很精通的样子? 本篇总结 ...

  7. ASP.NET Core中显示自定义错误页面

    在 ASP.NET Core 中,默认情况下当发生500或404错误时,只返回http状态码,不返回任何内容,页面一片空白. 如果在 Startup.cs 的 Configure() 中加上 app. ...

  8. 【转】 App架构设计经验谈:接口的设计

    App与服务器的通信接口如何设计得好,需要考虑的地方挺多的,在此根据我的一些经验做一些总结分享,旨在抛砖引玉. 安全机制的设计 现在,大部分App的接口都采用RESTful架构,RESTFul最重要的 ...

  9. app上架流程的整理

    app的上架流程 一.准备工作 首先需要有开发者账号,企业级的账号是299$,个人开发者账号是99$,没有的话可以登录http://developer.apple.com/自行申请 假如你已经有账号了 ...

随机推荐

  1. winform中listview imagelist问题

    参考:http://www.it165.net/pro/html/201410/23603.html 关于imagelist失真问题: 1.颜色 将ColorDepth属性设置成Depth32Bit ...

  2. this指向

    以前不太理解面向对象的this指向问题,今天自己看着视频教程,加自己学了2个例子,终于明白点了. 我们在写对象程序的时候,我们希望保持this始终是指向对象的,但事实确常常事与愿违. 正常情况this ...

  3. 绝不在构造和析构函数中调用 virtual 函数

    看下面的这段代码,问 print调用的是基类还是派生类的版本? 答案是 基类... 可能大家会很惊讶,print不是virtual function 吗?为什么不是调用派生类的版本呢? 首先,当定义一 ...

  4. 胡说REST(REpresentational State Transfer)

    Roy T. Fielding的2000年在他的博士论文中提出REpresentational State Transfer这一软件架构风格,相比"表述性状态转移"等等类似的拗口的 ...

  5. Python笔记——类定义

    Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...

  6. isKindOfClass,isMemberOfClass

    - (BOOL)isKindOfClass:(Class)aClass; - (BOOL)isMemberOfClass:(Class)aClass; 特点: 1.isKindOfClass   判断 ...

  7. 项目中Gradle使用总结

    一.配置Gradle使用Maven仓库 项目过程中,我们可能会遇到maven的本地库和gradle使用的maven本地库,不是同一个库.现在总结下怎么配置使得maven和gradle都使用相同的mav ...

  8. lua userdata

    #define metatablename "studentlib.06-11-11" /** * utility functions */ static int pusherro ...

  9. tcp之快速重传与恢复

    本文为原创,转载请注明:http://www.cnblogs.com/gistao/ Background 写网络程序的都知道,tcp的窗口控制分为慢启动阶段和拥塞避免阶段,重传机制有快速重传/恢复和 ...

  10. LintCode Two Sum

    1. 数组numbers == null 及numbers.length == 0, 而不是用numbers[] 2. HashMap<Integer, Integer>而不是<in ...