【译】UI设计基础(UI Design Basics)--启动与停止(Starting and Stopping)(五)
2.4 启动与停止(Starting and Stopping)
2.4.1 立即启动(Start Instantly)
通常来讲,用户不会花超过两分钟的时候去评价一个新的应用。在这段有限的时间里立即展示给用户有用的内容时,你就能激起新用户的兴趣,同时也可以给所用用户带来非常好的体验。
重要:不要在应用安装结束后让用户重启设备。重启设备费时,还会让用户觉得你的应用看起来不可靠并且很难用。
如果你的应用有内存使用或者其他问题,导致不重启很难运行的话,你必须先声明这些问题。想要了解如何开发一款性能良好的应用,请参考 Use Memory Efficiently.
- 尽量避免闪屏或者其他启动体验。最好是用户一启动就马上可以使用你的应用。
推荐 不推荐
- 避免要求用户提供启动设置信息。应该:
- 专注在80%用户的需求上。当你这样做的话,大部分的用户不需要提供任何设置,因为应用已经默认设置成他们期望的那样。如果有功能只有一少部分用户需要,或者大部分用户可能只需要使用一次,那就别管它了。
- 尽可能地从其他地方获取更多的信息。如果你能使用内置应用或者设备中的用户信息,那就向系统查询这些数据,别要求用户再重新输入一遍。
- 如果必须要求用户设置信息,在用户进入你的应用后再提醒用户设置。然后,尽可能保存这些信息(通常保存你的应用设置中)。这样用户就不会在还没来得及享受你的应用就被强制进入设置页面。如果后面用户需要改变这些信息,他们可以随时进入应用的设置界面中修改。
- 尽可能的推迟用户登录请求。最好是用户在没登录的状态,也能浏览大部分的页面和使用某些功能。例如:App Store就不会要求用户登录,直到用户决定购买东西。用户通常会抛弃那些还没使用就强制他们登录的应用。
如果用户必须登录,那么就在登录界面简短,友好地解释为什么需要登录以及登录对用户有什么好处。
- 谨慎使用新手引导。(介绍应用的特征以及如何使用)在你考虑使用新手引导前,你应该先尽最大的努力完善你的应用,使它的功能直观易于寻找。新手引导并不是一个好的应用应该有人设计。如果你仍觉得有必要做,那么遵循下面的这些建议,设计一个简洁,有针对性并且不妨碍用户的新手引导。
- 只给用户开始使用必须的信息。一个好的新手引导应该告诉用户第一步该做什么或者是简洁明了地示范大部分用户感兴趣的功能。如果你在用户还未浏览你应用时就给用户太多的信息,让用户记住一些当前并不需要用到的细节,会让用户觉得你的应用很难使用。如果在某些特定的场景下需要额外的帮助,那么就等用户使用到这些功能的时候再显示。
- 使用动画和可交互的方式来引导和帮助用户学习如何操作。尽量少用文字除非它能提升用户体验。不要期望用户会阅读大段的文字。例如,一些简单任务当你可以使用动画的方式演示如何操作就不要使用文字去描述。而当你在引导用户做一些复杂操作的时候,你就可能需要增加一些悬浮的窗口,简洁地描述每个阶段用户需要做的操作。另外,尽量避免使用屏幕快照的方式,因为屏幕快照是不可交互的,而且很容易跟你的实际UI产生混淆。
- 让用户能够轻松的关闭或者跳过新手引导。有些用户看完新手引导后可能就不想再看了,有些用户甚至根本就不想看。所以要记住用户的选择,不要每次打开应用都强制用户设置一遍。
- 不要太早要求用户给你应用评分。过早要求评分很容易让用户觉得很烦,同时也会减少你收到的有价值反馈。为了获得更有价值的反馈信息,在邀请用户评分前,确保用户已经有一些建议了。例如,你可以在用户访问过一定数量的页面或者已经完成一定数量的任务后,再邀请用户评分。
- 通常,建议在设备当前的方向启动你的应用。当然,如果你的应用只支持一个方向,那么就始终以这个方向运行,必要的话,让用户旋转设备。例如,一个游戏或者多媒体播放只支持横屏显示,那么就以横屏模式启动,即使设备当前处于竖屏状态。这样的话,就算用户竖屏的时候启动应用,他们也知道要转成横屏来使用。
- 提供运行首页。iOS会在应用启动的时候先显示一张图片。这样会让用户觉得你的应用很快,同时也会让你有更多的时间加载内容。更多相关内容,请参考 Launch Files.
- 如果可以,不要在用户首次使用的时候就让他们阅读免责声明或者确认用户协议。你可以在App Store上显示这些信息,这样用户在安装你的应用前就可以知道这些信息。If you must provide these items within you app, be sure to integrate them in a way that harmonizes with you UI and balances business requirements with user experience needs.(这句完全不知道要如何描述清楚,就原文搬过来吧。)
- 在应用重启后,恢复到上次用户离开时的状态,这样用户就可以继续上次的操作。用户无须记住达到上次位置所需要的操作步骤。了解更多关于如果保存和恢复应用的状态,请参考 Preserving Your App’s Visual Appearance Across Launches.
2.4.2 随时准备停止(Always Be Prepared to Stop)
- iOS应用并不存在关闭或者退出的选项。用户切换到另外一个应用,返回主屏幕或者将设备调整在休眠模块就停止应用的使用。
当用户从你的应用切换出去,iOS的多任务系统就把它放到后台,取而代之的是刚打开的应用。为了应对这种场景,你的应用应该注意以下几点:
- 随时并且尽快保存用户数据。因为在后台的应用随时有可能被终止或者退出。
- 尽可能详细地保存应用停止时的当前状态。这样用户再切换回你的时候就不会丢掉他们的信息。例如,当你的应用正在显示一些滚动的数据,这时候保存当前的滚动的位置。了解更多保存和恢复应用状态的有效方式,请参考:Preserving Your App’s Visual Appearance Across Launches.(上面有提过)
有些应用可能需要保持在后台运行。例如,用户可能希望在使用一个应用的时候同时还能听歌,接着以想用另一个应用来检查代办事项或者玩一下游戏。了解如何处理多任务,请参考Multitasking.
- 不要强制退出应用。用户可能会认为你的应用崩溃了。如果应用没有出现预想的功能,你需要向用户解释出现这种状况的原因,并告诉他们要如何处理。下面有两个很好方法处理这种情况:
- 如果应用中的所有功能都不能使用,那么应该是屏幕上解释为什么会出现这样的情况,以及该如何处理。有这样的反馈信息,用户就会明白并不是你的应用出错了,同是这样做也能稳定住用户的情绪,让他们渥是否要采取纠正措施,或者切换到别的应用。
- 如果只是应用的某些功能不可用,那么只要在用户要使用这些功能的时候提示即可。这样用户就能够继续使用其它功能。需要注意的是,如果你使用的是提示框,一定要在用户尝试进入这些不可用的功能时才提示!
【译】UI设计基础(UI Design Basics)--启动与停止(Starting and Stopping)(五)的更多相关文章
- 【译】UI设计基础(UI Design Basics)--导航(Navigation)(六)
[译]UI设计基础(UI Design Basics)--导航(Navigation)(六)
- 【译】UI设计基础(UI Design Basics)--自动适配与布局(Adaptivity and Layout)(四)
2.3 自动适配与布局(Adaptivity and Layout) 2.3.1 开发成自动适配(Build In Adaptivity) 用户通常希望在自己的所有设备,各种场景中使用他们喜欢的a ...
- 【译】UI设计基础(UI Design Basics)--为iOS设计(Design for iOS)(二)
2.1 为iOS设计(Design for iOS) iOS体现以下主题: 遵从:UI帮助用户理解界面内容并与内容交互,但绝不会与内容相互冲突. 清晰:文本在任何尺寸下都是清晰易读,图标精确易懂,装饰 ...
- 【译】UI设计基础(UI Design Basics)--iOS应用解析(iOS App Anatomy)(三)
2.1 iOS应用解析(iOS App Anatomy) 几乎所有的iOS应用都会用到UIKit框架中的组件.了解这些基础组件的名称,角色,功能可以帮你在应用界面设计时做出更好的决策. UIKit提 ...
- iOS10 UI设计基础教程
iOS10 UI设计基础教程 介绍:本教程针对iOS初级开发人员,基于iOS 10系统,使用Swift 3.0语言讲解如何进行UI设计.本教程内容涵盖UI基础构成.UI元素.自动布局.自适应UI.UI ...
- 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(六)Picker View视图 学习笔记
想对PickerView进行操作,只能在代码中操作. 下面 ,再添加三个label组件,然后将所有组件配置到代码中(看代码),然后要实现对PickerView的操作,就要实现它的DataSource协 ...
- 重大发现: windows下C++ UI库 UI神器-SOUI(转载)
转载:http://www.cnblogs.com/setoutsoft/p/4996870.html 在Windows平台上开发客户端产品是一个非常痛苦的过程,特别是还要用C++的时候.尽管很多语言 ...
- 转: windows下C++ UI库 UI神器-SOUI
转:http://www.cnblogs.com/setoutsoft/p/4996870.html 前言 在Windows平台上开发客户端产品是一个非常痛苦的过程,特别是还要用C++的时候.尽管很多 ...
- Android窗口管理服务WindowManagerService显示Activity组件的启动窗口(Starting Window)的过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8577789 在Android系统中,Activ ...
随机推荐
- OpenCV 2.4.9
2014.4.25 感谢那些參加开发.发送错误报告以及通过其它方式帮助我们的全部人和公司. 源代码如今已经可以从SourceForge和Github上下载了. 2.4.9版本号的帮助文章也更新到如今的 ...
- linux下ntfs硬盘的加载
问题: # mount –t ntfs /dev/sdb1 /mnt/ mount: unknown filesystem type ‘ntfs’ 这是由于Cent ...
- HTML表单介绍
表单语法结构如下: <form action="url" method="get|post" name="value" enctype ...
- WPF FindName()没找到指定名称的元素
1.FindName()说明,可以用来获取已经注册名称的元素或标签 // // 摘要: // 查找具有提供的标识符名的元素. // // 参数: // name: // 所请求元素的名称. // // ...
- angularjs hover
<ul class="pdl-15"><li ng-repeat="order in vm.selectOrders" ng-class=&q ...
- 查询两个日期(时间)以内的数据,between and 或 and 连>= <=,to_date()
between and 方法 select * from kk.kkhmd where larq between(to_date('2008-9-3','yyyy-mm-dd')) and (to_d ...
- 关于get和set访问器以及属性和字段变量的区别问题
属性是对一个或者多个字段的封装. 类里面为什么要用一个共有的属性来封装其中的字段,也可以这样说用共有属性来封装私有变量,其中的好处应该大家都说的出来,就是为了实现数据的封装和保证了数据的安全 ...
- ashx页面 “检测到有潜在危险的 Request.Form 值”的解决方法(控制单个处理程序不检测html标签)
如题: 使用web.config的configuration/location节点. 在configuration节点内新建一个location节点,注意这个节点和system.webserver那些 ...
- SQLSERVER 触发器 将一个服务器上的数据库中数据插入到另一个服务器上的数据库中怎么做
首先要执行 sp_addlinkedserver '服务器ip' 然后开始写语句 insert into ip.库名字.dbo.table select * from iserted
- 玩转CSLA.NET小技巧系列一:跳转页面丢失session,如何解决
很少写代码,最近在写代码被登录难倒了,这丫的一直在跟我较劲 每次登录完跳转到首页后还是未登录状态 if (ModelState.IsValid) { bool isSuccess = FI.Finan ...