快生活 - 生活常识大全

如何设计一个用户为中心的应用程序


  本篇文章记录了 Nearby Tweets 改版的完整设计过程。Web开发者和商家期望借此获取些灵感。用户则更有兴趣找寻这些设计中所蕴藏的东西。当然,我希望能在文章结尾了解到你的想法和反馈!OK,我们开始吧。
  故事的起因是这样地…
  这一切开始于对Nearby-Tweets的第一次迭代,目的是让当地的人与人、商家与商家之间能够通过一种简单的形式相互取得联系。
  但产品开发向来不可能十全十美,只有不断迭代——产品好坏取决于用户认 可。因此,借Uservoice的机会得尽我所能快地跟用户接触。通 过Uservoice,用户可以针对Nearby Tweets的改版进行投票。
  Nearby Tweets用户的主要需求
  默认地区
  保存关键字和地点
  令人懊恼的"抽屉"
  目录手册
  移动版本
  tweets自动刷新
  屏蔽用户
  屏蔽地区
  follow特性
  选择哪些功能实现
  尽管所有用户的请求都合理,但我得根据自己的资源和日程情况安排哪些可以实现。
  移动版本要再往后排了
  现在已经有web版了,所以对移动版持观望态度。因为需要更多资源和新一轮考虑,暂时没有精力。
  目录手册也要往后排
  市面上已经充斥了大量的Twitter目录手册应用。我的发展空间并不大,但在自动匹配地理位置领域,一直都是我的,现在是,将来也是。(参见Twellow,WeFollow, 和just tweet it)
  其余的功能,一个个来
  其余的功能需求都在我的日程上,在开始UI设计之前,我得把它们再梳理清晰一些。
  缩小设计范围
  为保持自己的路线,我为Nearby Tweets拟定了3个改版必备条件:
  获取用户反馈。在得到少量用户反馈后我迅速发布了Nearby Tweets的第一个版本,用这个有趣、有用的项目小试牛刀。通过这次改版我希望在设计过程中尽可能多地获取用户反馈。利用 Twitter,Uservoice等资源,进行私测和公测。
  把Nearby Tweets打造的更健壮。尽管焦点是第 一版的优势,但还是没有扩展的基础功能。这次Nearby Tweets将为用户偏好提供核心功能,以及高级搜索。
  保持 Nearby Tweets的简单。一直以来,我们努力保持Nearby Tweets的简单,并使它的体验更简化。
  接下来,我制定了设计目标
  允许用户随意查看Nearby Tweets,当需要时也允许他们调整。
  将概念转化为UI设计
  为保持Nearby Tweets的简洁,我拟定了2套UI设计概念:"Progressive disclosure" 和 "lazy registration"
  在UI设计上实施Progressive disclosure
  Progressive disclosure主张把高级和不常用的功能放在第二屏(不显眼的地方),使应用看起来简单易用,且不易出错——Jakob Nielsen
  需要指出的是,第二屏可以被理解为把功能隐藏起来。
  Tweet设置
  对每条tweet来说,"谁说了什么"和"是谁说的"才是重点,所以我保持tweet表现成这个样子。
  然而,用户还有其他需求,他们要求可以关注某人、屏蔽某人,甚至屏蔽地区。像这种高级功能就不能塞满tweet区域。Progressive disclosure的思想派上用场了。当用户把鼠标移动到每条tweet上时,上述3个功能才显示出来。就像这样:
  地区和关键字的修改窗口
  一个初次访问Nearby Tweets的用户也就是四处看看。所以在首页里只显示"Tweets nearby xxxxx about yyyyy."就已经足够了。
  但当用户想要搜索已经新地区和新关键字时怎么办?你会发现地区和关键字看上去像是可点的链接。当用户想修改这些信息时,点链接后会出现一个弹出层。
  与其让用户看到搜索框及其他一堆筛选条件,不知所措,还不如只给个"Change"按钮,目的明确。点击按钮后进行下一步操作。实际整个区域都是可 点的, 目的是为了增加用户的可点区域。
  你会注意在地区弹出层里有个名叫"use the map"的按钮。在UI里设置地图有两个目的:一来,给用户位置感;二来通过Progressive disclosure提供高级搜索功能。
  地区搜索利用交互地图完成
  初窥地图会发现它就在Nearby Tweets的后面,营造了一个用户地区的虚拟环境,将tweet作为搜索结果不断滚动显示。
  当用户搜索地区时,Nearby Tweets闪到一旁,地图就成主窗口了。这样做可以在地图不用时,巧妙地将它当作Nearby Tweets的背景,需要时再将其呼出。
  用户偏好
  作为Progressive disclosure的经典示范,用户可以添加保存地区、关键字,甚至更多偏好设置,目的都是让Nearby Tweets变的更好用。提高用户偏好,让我们看看它是怎么运作的。
  UI中的Lazy registration
  一个用户可能从不碰偏好设置,但仍能体会所有优点。要怎么做?Lazy registration是一种growing UI trend,它能读取用户之前的数据,自动完成已知信息的填写。
  被动偏好
  虽然Nearby Tweets不用注册,但它同样有一个偏好设置页面供用户配置。其中"lazy"这部分抽取的是用户喜好的集合。
  用户每次切换地区后,都会被自动保存
  用户每次搜索关键字后,都会被自动保存
  主UI允许用户屏蔽某人 或某地区
  默认地区
  虽然用户可以设置默认地区,但通常都没必要。Nearby Tweets能自动获取用户地区信息,根本不需要用户动手,除非他想自定义。
  处理用户需求
  默认地区
  Nearby Tweets也不是总能找到用户的位置,所以有时也需要手动覆盖掉默认地区。我想过很多方法解决这个问题,比如增加个"set to default"的选项在每个已保存地区旁边,但这可能会多出来很多链接,让界面变得冗余。
  我决定在用户偏好中保留"设置成默认"这个功能。在那我用空间来展示这个选项。每个已保存的地区都可以被设置成"默认地区"。如图:
  已保存的关键字和地区
  我用"当前的"替代"已保存的"是因为它更贴切。关键字和地区的保存像是书签,但工作原理像浏览器历史。
  Tweets的自动滚动
  在控制新tweets刷新频率时有些困难。我很矛盾:如果太慢,会有用户觉得Nearby Tweets是不是没在工作;但太快,用户又没法阅读,过犹不及。在经过一些用户的测试后我发现,3秒这个速度正好。
  并非每个人的阅读速度都一样,自动刷新频率可以当作用户偏好。据分析,除了3秒外,30秒、10秒、5秒和1秒也都很常见。
  屏蔽用户
  屏蔽地区
  如何屏蔽地区又是个难题,因为要去比较tweet所在的地区与被屏蔽的地区。问题在于当用户屏蔽了"俄亥俄 州哥伦布市", 但发布者的地区是"哥伦布"。虽然人可能清晰辨别这两个是同一地区,但在电脑里,"俄亥俄州哥伦布市"并不等于"哥伦布"。
  接下来如果我假设用户只想屏蔽精确匹配"俄亥俄州哥伦布市" 的地区,或者所有在"哥伦布"发布的tweets?为了使软件智能化,我让程序能够自动匹配城市名。然而,另一问题接踵而至,如果两个地区拥有同样的城市 名,就像"俄亥俄州哥伦布市" 和"佐治亚哥伦布"。那么,所有"佐治亚哥伦布"的用户想屏蔽来自"俄亥俄州哥 伦布市" 的tweets时,就会屏蔽掉所有名为"哥伦布"的地区。如果它已经成为一个问题,我想我不得不竖起耳朵,听取用户的声音。
网站目录投稿:罗敷