6个错误将杀死你的App
没有开发者或者设计师会故意破坏应用的设计。所有的应用程序创建者都对自己的应用寄予美好的愿望,但是很多错误是在他们无意识的状态下破坏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的更多相关文章
- VS2015调试UWP程序时提示错误DEP0700 : Registration of the app failed. Another user has already installed
在同一台windows10电脑上调试过一个工程以后,切换了账号再次调试出现错误 DEP0700 : Registration of the app failed. Another user has a ...
- 错误:无法访问android.app.Activity 找不到android.app.Activity的类文件
视频里面在工程ndk22/bin/classes中 运行javah com.cn.ndk22.Ndk22.Activity ,出现了.h文件 但是我在bin/classes目录中运行javah 时出 ...
- ios APP进程杀死之后和APP在后台接收到推送点击跳转到任意界面处理
https://www.jianshu.com/p/ce0dc53eb627 https://www.cnblogs.com/er-dai-ma-nong/p/5584724.html github: ...
- Electron 发生错误 "Cannot find module app"的解决方案
运行一个electron小demo出现的一个错误信息:Cannot find module app 原代码如下所示: var app = require('app'); var BrowserWind ...
- APP长时间后台运行
* 参考:http://www.nivalxer.com/archives/187 首先,我要说明的是在iOS中,一般应用程序在后台挂起之后仅拥有3分钟时间来处理相应的未完成事件,但是3分钟之后就会 ...
- 关于面试总结-app测试面试题
前言 现在面试个测试岗位,都是要求全能的,web.接口.app啥都要会测,那么APP测试一般需要哪些技能呢? 面试app测试岗位会被问到哪些问题,怎样让面试管觉得你对APP测试很精通的样子? 本篇总结 ...
- ASP.NET Core中显示自定义错误页面
在 ASP.NET Core 中,默认情况下当发生500或404错误时,只返回http状态码,不返回任何内容,页面一片空白. 如果在 Startup.cs 的 Configure() 中加上 app. ...
- 【转】 App架构设计经验谈:接口的设计
App与服务器的通信接口如何设计得好,需要考虑的地方挺多的,在此根据我的一些经验做一些总结分享,旨在抛砖引玉. 安全机制的设计 现在,大部分App的接口都采用RESTful架构,RESTFul最重要的 ...
- app上架流程的整理
app的上架流程 一.准备工作 首先需要有开发者账号,企业级的账号是299$,个人开发者账号是99$,没有的话可以登录http://developer.apple.com/自行申请 假如你已经有账号了 ...
随机推荐
- "流"派家族,一脉相承
(更多内容请关注本人微信订阅号:it_pupil) 你没进错,我们讲的是Java的输入输出流. 概述 ➤ 可以从其中读入一个字节序列的对象称作输入流.(输入流是一个对象,可以从这个对象中读取一个字 ...
- iOS 视频录制、压缩、上传
项目中实现功能 视频的录制.压缩.上传 首先调用系统的相机或相册 iOS录制的视频是mov格式的,安卓和PC不支持,因此要转换成MP4,并且要压缩. 获取到视频或者照片,处理的方法 下面两个方法是获取 ...
- USACO 刷水
BZOJ 1666 水.. BZOJ 1579 分层图最短路. BZOJ 1782 从一开始若某头牛停在U,那么U的子树的时间都会加一用BIT维护DFS序就行了 BZOJ 1572 贪心+堆 排序后查 ...
- 分析一个delphi程序
系统 : Windows xp 程序 : k4n6 程序下载地址 :https://pan.baidu.com/s/1pLANxyj 要求 : 注册机编写 使用工具 : OD & DeDe 可 ...
- C#多线程线程
“线程同步”的含义 当一个进程启动了多个线程时,如果需要控制这些线程的推进顺序(比如A线程必须等待B和C线程执行完毕之后才能继续执行),则称这些线程需要进行“线程同步(thread synchro ...
- DotNetBar 第2课,窗口设置 Ribbon Form 样式
1. 新增 windows 窗体时,选 Ribbon Form 2. 窗体继承 Office2007RibbonForm 3. 设计窗口下面,删除 删除styleManager1 组件 窗口效果如下 ...
- dis进行反编译
摘录自官方文档: https://docs.python.org/2/library/dis.html 回头自己也脑补下. 可以使用dis查看自己代码的复杂度之类的东西. 比如while 1 和whi ...
- PHP使用字符串名称调用类的方法
<?php class Game { function Play($id) { echo "Playing game $id\n"; } } $game = new Game ...
- Day22_IO第四天
1.合并流(序列流)-) { //不断的在a.txt上读取字节 fos.write(b1); //将读到的字节写到c.txt上 } fis1.close(); //关闭字节输入流 FileInputS ...
- linux和windows共享文件
开发板的文档上说可以使用nfs共享文件夹,提供的命令如下: mount –t nfs –o nolock 192.168.1.244:/usr/ /mnt/ 因此我在我的win10上设了共享文件夹,然 ...