移动应用界面设计模式 - 搜索、排序、筛选

标签: 移动应用 界面 设计模式 | 发表时间:2012-05-08 13:23 | 作者:C7210
出处:http://ucdchina.com/rss/all

 

去年年底,我们曾经学习过一篇“ 具有引导性的移动应用界面设计模式”,其英文原文来自O'Reilly动物园的一本新书,"Mobile Design Pattern Gallery",就是封面上是个大公鸡的那本儿。今次这篇则是来自于本书的第四章——搜索、排序和筛选。貌似国内引进版也由XX出版社在做着了,真心不关我事,自己走起。接下来果断精分,进入原文作者人格。

很多信息类服务站点都是通过分类的方式来组织相关内容信息的,例如交通工具方面的卡车、货车、SUV等;而Greensheet这样的网站则是直接将售卖信息一股脑的堆在一个又一个的页面中,如果我(英文原文作者)想找点儿什么,真的必须挨个看下去。谢了,我还不如直接在手机上用 Craigslist应用呢。

在使用Craigslist的过程中,我就琢磨着,作为普通用户,我们确实可以很明显的受益于那些在信息的搜索、排序和筛选方面做的很到位的UI设计模式。在本文中,我们将一起了解一下,有哪些设计模式可以帮助我们按照用户所期望的方式将数据信息更加有效的组织和呈现出来

搜索

首先为各位推荐两本这方面的好书,"Search Patterns: Design for Discovery"和"Designing Search: UX Strategies for eCommerce Success" (前者国内有引进,即 《搜索模式》一书)。然后我们接茬来看移动应用当中与搜索相关的设计模式。

  • 显性搜索
  • 自动完成
  • 动态搜索
  • 指定搜索范围
  • 已保存的/最近的搜索条目
  • 搜索表单
  • 搜索结果

显性搜索

作为最普通和最常见的搜索模式,显性搜索依靠显性的动作行为及表现方式来执行搜索任务、展示搜索结果。在这种模式中,搜索按钮会出现在输入框的右侧,或直接嵌入虚拟键盘中 (这种情况下可以将“取消”按钮放在搜索栏中)。搜索结果通常会直接呈现在搜索栏下面的区域当中。在设计方案里,可以考虑将线性搜索与自动完成模式搭配使用。

mobile-apps-ui-design-patterns-search-sort-filter-walmart

mobile-apps-ui-design-patterns-search-sort-filter-target

在这种模式中,提供显性的搜索按钮,同时还可以为用户提供用来取消当前搜索行为的操作方式。当搜索正在执行时,提供明确的状态反馈。

自动完成

可以说,这是随着Web 2.0那波儿大潮所涌现出的一种最经典最实用的搜索模式。用户在输入关键词的同时,系统会即时提供一些根据当前已输入文字所猜测出来的搜索结果,如果用户发现其中的某个条目正是自己想要的,那么直接点击就可以完成搜索。当然,在没有恰当的候选条目或是用户觉得不手动输入完整关键词就活不下去的情况下,这仍然是一个能够正常完成搜索功能的普通模式。

mobile-apps-ui-design-patterns-search-sort-filter-android-google-play

理想情况下,系统应该随着用户的输入而立刻提供搜索结果,但在实际当中,用来反馈系统工作状态的视觉提示也是必要的。上图右侧,Netflix直接将状态提示做在了关键词输入框内部靠右端的位置;另一种常见的做法是将其放置在搜索结果所要出现在的位置。

mobile-apps-ui-design-patterns-search-sort-filter-Fidelity

TripAdvisor提供了一种更为出色的自动完成模式,他们直接将即时呈现的搜索结果按照热门的旅行目的地、宾馆酒店等类型进行了归类。LinkedIn的做法也有几分类似,他们会优先显示那些与当前用户有直接联络关系的搜索结果。

mobile-apps-ui-design-patterns-search-sort-filter-auto-complete-trip-advisor

通过视觉提示向用户反馈系统当前的工作状态;可以考虑在搜索结果中对当前已输入的字符进行着重显示。

动态搜索

这种模式也可以被称为“动态筛选”,当用户在搜索栏中输入关键词时,已有的搜索结果会随之进行动态的筛选。看上去,这与前面的“自动完成”模式是差不多的,但实际上它们在交互模型方面有所区别。动态搜索模式的主要作用是对已有的信息列表进行提炼和筛选。

mobile-apps-ui-design-patterns-search-sort-filter-DYNAMIC-SEARCH-facebook

动态搜索模式用来对数据集进行即时的精炼和筛选,例如可以被用在地址簿或个人媒体库等方面的应用当中。但该模式不适于数据规模过于庞大的状况。

指定搜索范围

在某些情况下,可以让用户在执行搜索之前对搜索对象的类型和范围进行界定,从而得到更符合需求的搜索结果。Google和Photobucket的应用在指定搜索范围的操作形式上略有不同,但最终目的都是一致的。

mobile-apps-ui-design-patterns-search-sort-filter-scope-google-photobucket

采用类似做法的还有AllRecipes以及Dropbox的应用。在Dropbox中,默认的搜索范围是全部内容,但无论在搜索被执行之前,还是结束之后,用户都可以进一步选择搜索范围,例如搜文件或是文件夹。

mobile-apps-ui-design-patterns-search-sort-filter-scope-allrecipes-dropbox

根据产品自身的情况,合理的划分搜索类型,以便用户在执行搜索的时候进行选择。通常三到六个选项就够了,必要的时候可以通过表单来实现高级搜索功能。

已保存的/最近的搜索条目

优秀的移动应用界面设计都会尊崇一条最基本的可用性原则:尊重用户的付出。在搜索中,已保存的或是最近的搜索结果就是这条原则的良好体现。通过这两种模式,用户可以轻松的选择曾经搜索过的关键词,完全不必重新输入。

mobile-apps-ui-design-patterns-search-sort-filter-saved-recent-ebay-walmart

与这条可用性原则相关的设计模式还包括Trulia中的基于地理位置的搜索、Amazon的条码搜索、Google Shopper中的扫描及语音搜索,以及按照搜索日期进行分组的搜索历史记录。

mobile-apps-ui-design-patterns-search-sort-filter-saved-recent-local-based-bar-code

mobile-apps-ui-design-patterns-search-sort-filter-saved-recent-google-shopper

在保存搜索结果的模式中,用户通常还需要花费额外的步骤为搜索结果命名,作为将来查看时的索引方式。而“最近的搜索条目”则由系统自行保存及呈现。对于自己的产品,要考虑哪种方式更加适合。

搜索表单

用户可以在搜索表单中使用某些高级搜索选项,例如通过某种方式选定搜索范围等。另外,搜索表单当中通常还会包含一个在视觉呈现方式上很突出的搜索按钮。

mobile-apps-ui-design-patterns-search-sort-filter-search-form

mobile-apps-ui-design-patterns-search-sort-filter-search-form-2

尽量控制搜索表单中的交互元素数量,并按照正确的方式使用这些交互元素。在视觉上注意细节的把握,例如元素的对齐、文字标签的布局及字号等。

搜索结果

我们将搜索结果自身也看作整个搜索功能中的一个模式。搜索结果可以出现在与搜索操作相同的界面中,也可以存在于一个单独的搜索结果界面当中,看需求。搜索结果的呈现方式是多种多样的,包括表格(table)、列表(list)、缩略图等,另外还可以显示在地图当中。同一款应用可以同时使用几种不同的搜索结果表现形式,具体方式取决于搜索结果的类型及用户的设置。

mobile-apps-ui-design-patterns-search-sort-filter-result-1

mobile-apps-ui-design-patterns-search-sort-filter-result-2

mobile-apps-ui-design-patterns-search-sort-filter-result-3

很多应用都会在搜索结果中使用延迟加载技术(lazy loading),通过这种方式首先加载一部分搜索结果,同时另外一部分继续载入。通常有两种方式可以触发更多内容的加载,一是自动加载,二是由用户手动点击某个按钮或链接来执行。

我们可以使用延迟加载技术来代替传统的分页浏览模式,特别是在移动应用的上下文环境中,分页导航方式有悖于自然的交互模型,不符合用户直觉。另外,最好让用户了解搜索结果的条目总数,并为搜索结果提供合理的默认排序规则。

排序

为搜索结果选择一种最恰当的默认排序方式是很重要的,通常,我们可以根据自己产品的实际特性以及用户期望来对其进行设定。而改变搜索结果排序方式的设计模式大致有以下三种:

  • 排序切换
  • 排序选择器
  • 排序表单

排序切换

如果可选的排序方式不算太多,我们可以使用这种最简单的解决方案。将排序切换按钮放置在搜索结果的顶部或底部(具体位置根据界面中其他相关元素的布局而定),用户无需离开当前视图就可以轻松改变排序方式。

下图右侧的Target应用将四种排序方式整合到了三个切换按钮中,其中的“价格”是可以进一步切换成为升序或降序的。

mobile-apps-ui-design-patterns-search-sort-filter-onscreen-toggle

排序切换要有清晰明确的视觉呈现方式来表达“当前”的状态。

排序选择器

选择器模式算得上是切换模式的良好替代品。很多类型的UI控件都可以在这个模式中派上用场,具体的运用方式还要参考不同系统平台所提供的设计规范。例如,在Android应用中,菜单形式比较常见,而对于iOS来说,选择器(picker)和动作表单(actionsheet)都是比较合适的控件。

mobile-apps-ui-design-patterns-search-sort-filter-onscreen-selector-menu-android

相比于切换模式来说,选择器模式允许更长的文字标题以及更多的选项。上图中,Walmart的Android应用在搜索栏当中放置了一个按钮,用来打开排序弹出层。而下图中,Kayak的iPhone应用则将用于展开排序选择器的按钮放在了搜索结果的底部。

mobile-apps-ui-design-patterns-search-sort-filter-onscreen-selector-picker-ios-iphone

此外,Android中的组合框以及iOS中的弹出覆盖菜单都可以用在这种模式当中。

mobile-apps-ui-design-patterns-search-sort-filter-onscreen-selector-combobox-overlay

参考相关系统平台的设计规范,在排序选择器模式中使用最恰当的UI控件。对当前选中的排序方式,要以清晰的、容易辨识的视觉表现形式来突出显示。

排序表单

很多应用会在同一个界面中整合运用多种排序及筛选方式,这种方法通常被称作“精炼(refine)”,它很复杂,但却能帮助用户得到最精确的搜索结果。在移动应用中,“精炼”的方式大多承载于一个表单界面中,用户需要在里面根据自己的需求做出选择,并提交这些搜索条件。

 

源地址: http://beforweb.com/node/70

相关 [移动应用 界面 设计模式] 推荐:

移动应用界面设计模式 - 搜索、排序、筛选

- - 所有文章 - UCD大社区
去年年底,我们曾经学习过一篇“ 具有引导性的移动应用界面设计模式”,其英文原文来自O'Reilly动物园的一本新书,"Mobile Design Pattern Gallery",就是封面上是个大公鸡的那本儿. 今次这篇则是来自于本书的第四章——搜索、排序和筛选. 貌似国内引进版也由XX出版社在做着了,真心不关我事,自己走起.

儿童移动应用的界面设计基础知识

- - 曉生語錄
注:实习生wenli对本文皆有贡献 . 最近处于项目需要,开始研究儿童产品的界面设计. 在此之前,对儿童如何使用移动产品和如何设计知之甚少. 优质的移动应用,为儿童带来乐趣的同时可以帮助儿童认知事物. 越来越多的儿童使用移动设备,接触虚拟社区的时间甚至早于真实世界,如何设计儿童产品是一个非常值得深入研究的课题.

移动应用的三种空状态界面设计

- - 互联网的那点事
本文作者 Craig Dennis,一名设计师,译者 @C7210. “空状态”是指移动应用界面在没有内容或数据时呈现出的状态. 长久以来,空状态界面一直是被忽视的,因为设计师们通常会将全部精力集中在怎样更好的呈现内容和数据上,只有开发人员才会比较频繁的与这类相对“意外”的状态打交道. 也正是因为这样的原因,空状态界面留给用户的印象大体上就是晦涩难懂的文案以及缺乏视觉设计风格.

【译文】移动应用界面设计7宗罪

- - 阿里巴巴(中国站)用户体验设计部博客 » 阿里巴巴(中国站)用户体验设计部博客
【译者注】本文是移动原型工具Proto.io的设计团队8月份在自家博客上发表的一篇“软文”,通过与移动设计界大牛们的对话,帮助大家了解在进行移动设计时应该特别注意的禁忌,顺便推了一下Proto这个工具. 大家可以回顾一下自己团队的应用正在触犯哪些禁忌,想必会有点意思. 读完本文,相信你能找到优化自家移动应用设计的方向.

使用 Fries 创建性感的 Android 风格移动应用界面

- - 博客园_梦想天空
Fries 是一个移动开发框架,让开发者仅使用 HTML,CSS 和 Javascript 快速创建出 . Android 应用程序界面. Fries 的灵感来自于流行的 . Ratchet(开发 iPhone 应用原型的优秀框架),作者把根据 Ratchet 的思路把一些很酷的东西引入到 Android 开发中.

Scala设计模式

- - ITeye博客
       我的话: 在国外网站上看到一篇文章,里面详细描述了很多设计模式,并且用Java及Scala两种语言描述,清晰的让我们看到各种常规的设计模式,在Scala中是如何在语言特性层面直接支持的. 基于文章很nice,我利用今天的空闲时间将其翻译,希望大家能一起学习,讨论. 翻译比较倡促,也就两小时左右,有何不当,请在下面留言指出.

Spring设计模式

- - 行业应用 - ITeye博客
springMVC通常采用属性注入的IOC方式和AOP织入方式相结合实现依赖注入 同时使用强制代理方式,代理类或者接口. 这里又涉及到单例模式(注入的类或者接口在容器中只存在一个)、工厂模式(通过反射实现类实例化过程的公用化)、楼上所说的装饰模式属于AOP织入的一部分. 想了解spring先从IOC和AOP开始吧.

“另类” 设计模式

- Sean Lee - 酷壳 - CoolShell.cn
下面这篇文章来自这里:http://www.lsd.ic.unicamp.br/~oliva/fun/prog/resign-patterns,这篇文章有点意思了,山寨了我们著名的Design Pattern. 这篇文章并不是很容易翻译,也许我翻译的不好,大家多指正. 另外,这篇文章将失去原有的趣味在于其使用了经典设计模式的单词很相似的单词,一走眼你还以为是正二八经的设计模式.

【译】屏幕设计模式

- 志强 - 所有文章 - UCD大社区
模式是广泛适用的解决一般问题的解决方案. 在开发应用程序过程中,无论是面对抽象还是实际问题,模式都大有用处. 而标准屏幕模式对于优秀的Web程序甚至企业级软件都很有帮助. 摘要/细节(Master/Detail). 摘要/细节模式可横向也可竖向. 该模式是满足用户既停留在一个页面又可浏览多个条目需求的典范.

设计模式之代理模式(Proxy)

- - 博客园_首页
这段时间一直忙于期末考试,好久没来博客园了,现在好了,终于考完了,也该过上正常的日子了. 开学就是大四的学生了,时间过的可是真快啊,转眼间大学四年已经接近尾声了. 回想大学这三年,成绩还可以吧(年级前10%),参加过各种竞赛(acm,数学建模等等),学生会也呆过(打了一年的酱油),好哥们也有那么五六个(希望以后能在一个城市发展,大学期间的宝贵财富啊),另外所谓的大学生创新实践项目也搞了一个(就算开阔一下视野吧,大学能生有什么创新呢.