定义你的App

在这个阶段需要明确app的主要使用目的和目标受众。在开发初期要对app进行明确的定义,从而帮你把一个想法或者功能列表变成清晰明了的产品。在整个开发过程中用app定义描述来决定潜在功能和交互行为是否有意义。步骤如下:

1.列出所有你认为用户可能喜欢的功能

集思广益,尽量捕捉所有跟主要产品理念有关的任务,不要担心列表太长,后期你会进行大量删减。

假设你最初是想开发一款grocery-shopping app,可以帮人们在杂货店购物,随后你列出了相关的任务,也就是产品潜在的功能,这是你认为用户可能感兴趣的地方。比如:

创建列表

获得食谱

注释食谱

比较价格

定位商店

获得和使用优惠券

查看烹饪演示

...

...



2. 弄清目标用户是谁

弄清楚你的用户与其他iOS 用户有什么区别?在你想象的场景中,用户最需要的是什么?拿 grocery-shopping app举例,你可能会问你的客户:

经常在家做饭,还是更喜欢现成的

使用优惠券还是觉得优惠券不值得兑换

喜欢搜罗特别的烹饪原料,还是很少冒险尝试基本材料以外的

跟着食谱做还是把食谱作为灵感的来源

经常性地购买小包装,还是偶尔购买大包装

经常购买某些特定的品牌,还是将就下选择最方便的

...

...

经过一番思考,假设你使用三个特征来描述目标用户:喜欢尝试不同的食谱,经常处于匆忙状态中,节俭。

3.通过定义用户来筛选功能列表

在选定用户特征后,最终筛选出了几个功能,说明你走对路了,伟大的iOS app专注于帮用户完成任务。

你在Step 1中列出了多个app可能需要的功能,即便它们都是非常有用的功能,但并非你在Step 1定义的所有用户都会欣赏这些。当你针对目标受众检查app功能列表时,你推断你的app应当主要关注三个功能:创建列表,获得和使用优惠券以及获得食谱。

现在你可以细化app的定义陈述,app的使用目的什么,用户是谁。那么对于grocery-shopping app,它的描述可能是:是一个为喜欢烹饪,爱节俭的用户创建购物清单的工具。

4. 不要停在这里

在开发过程中要使用app定义描述来确定app的功能、控件以及措辞。比如:

当考虑添加新功能的时候,你要问问自己,从app的使用目的和受众看,新功能是否必不可少。如果不是,那就先放一边。当你考虑UI的外观和交互性时,你要问问自己,用户是否欣赏简洁的,流线型风格,或者一个更明显的主题风格。

把“用户希望用你的app做什么?”作为指导,比如说用户可能希望用app完成严肃性的任务,或者得到快速回复,或者深入更全面的内容,或者进行娱乐活动。

举个例子,即便你的grocery list app是简单的、易理解的、可以快速上手的,但你的用户可能也会欣赏跟美食、食材相关的主题UI图片。

当你考虑术语措辞的时候,要努力使之与目标用户的专业知识相匹配。即便你的用户可能不是专业厨师,但你要相信他们也希望看见适当的跟配料和技术相关的术语。

5.为任务量身定制UI

最好的iOS app会用清晰的目的和易用性来平衡定制UI。为了达到这种平衡,你应该在设计之初就开始考虑自定义。因为品牌、创意以及可销售性常常会影响定制的决定。

首先考虑用户多久使用一次,在什么情景下使用?

用phone app来举例。假定app使用的不是小键盘,而是一个漂亮的,仿真旋转式拨号盘。用户会因精致的渲染而欣赏它的品质,会因听到与众不同的声音而快乐。但对 于经常需要拨号的用户而言,最初的欣赏会变成挫折,因为使用老式拨号盘远没有小键盘效率高。在这款phone app中,漂亮的定制UI就是个障碍。

当你思考自定义如何增强或偏离app允许的任务时,可以参看以下指南。

总有定制化的理由。理想情况下,UI定制可使人们想要完成的任务变得简单,增强用户体验。你需要尽可能地让任务驱动定制的决策。

可能避免增加用户的认知负担。用户熟悉标准UI的外观和交互行为,所以不需要停下来思考如何使用它们。当看到外观和交互动作与标准UI不一致的元素,用户就失去了经验优势。除非app独特的元素可以让任务变得更简单,用户可能不会喜欢被强迫着学习新程序,且所得经验又不能用至其他app。

App自定义外观和交互性应保持一致。UI越是定制化,在app中保持外观和交互的一致性就越重要。如果用户花时间学习不熟悉的控件,他们会希望这些知识能应用在整个app中。

依从于内容。标准UI元素是如此的熟悉,以致于它们不会与内容争夺用户的注意力。当app使用定制UI时,要确保它们不会“掩盖”用户关注的内容。

比如,你的app主要用来观看视频,你可能会选择设计定制“playback”控件。但不管使用自定义控件还是标准的“playback”控件,都没有控件隐藏(开始观看视频控件隐藏)或者重现重要(观看过程中点击屏幕重现控件)。

重新设计标准控件前要三思。如果你不仅仅想自定义标准控件, 那要确定你重新设计的控件可以尽可能多地提供标准元素所能提供的信息。比如,一个自定义开关控件没能表现出对立的价值,那用户可能不会意识到这个控件有两种状态。 

确定自定义UI元素经过彻底的用户测试。在测试中要密切观察用户,看看他们是否知道自定义UI元素的用途,能否与之进行简单的交互。如果控件的hit target小于44 x 44 points,用户就很难激活它。



原型和迭代

在投入大量工程资源进行设计之前,为用户测试创建原型是个很好的方法。即使仅有几个同事对原型进行了测试,你也将从他们的反馈中获益。

在 设计的早期阶段,你可以使用纸上原型或者线框图来布置主要的视图和控件。你可以从测试线框图中得到有用的反馈。但它的局限性也可能误导测试者,因为他们很 难想象在线框图被真实内容实现后,用户体验会发生什么样的变化。如果人们可以在设备上与原型进行交互,那他们更有可能发现app缺失的功能,或者什么地方 的用户体验太过复杂。

创建一个可靠的原型,最简单的方法是使用基于storyboard的xcode模板来创建最基本的一个程序。然后用适当的占位符内容进行填充(<u>storyboard</u>文件可以捕获整个APP的UI,包括不同界面之间的切换)。接着在设备上安装原型,这样测试者就能尽可能地获得真实的用户体验。

你不需要提供大量的内容,或者在原型app中应用每个控件,但要确定所提供的内容足够实现逼真的体验。要针对典型用户体验和不寻常的边缘用户体验进行平衡。比如,如果你的app可能处理很长的项目列表,那你要避免创建一个仅显示一两个列表项目的原型。

用户交互测试方面,只要测试者可以点击屏幕上任意区域进入下一个逻辑视图,或者执行主要任务,他们将能提供建设性的反馈。

当你利用xcode模板来构建原型时,不仅可以使用许多免费的功能,且能够简单地根据反馈调整设计。在确定设计和提交需要实现的资源之前,你应该能够测试几个迭代原型