重新审视 Smart Bar:远见与短视

重新审视 Smart Bar:远见与短视

在之前对魅族 MX 2 的评测中,我们已经提到 Catch Note 和 Snapseed 这两个符合 Android 官方设计规范的应用却出现了完全不兼容 Smart Bar 的现象。在进一步深究这两个应用发生不兼容现象的原因时,我们看到 Smart Bar 在其实现方式和对 Android 设计规范的理解上都出现了一定的偏差。

应用兼容性

是的,Smart Bar 面临的最大问题是兼容性。让我们来看看 Smart Bar 的现状:

魅族在发布会上展示完美兼容 Smart Bar 的 Google 官方应用和第三方应用有一个共同特点——他们在屏幕下方的 Action Bar 里只放了图标控件(Icon)。而 Smart Bar 设计的初衷,或许就是为了更好地安置底部 Action Bar 里的图标。

但是从目前的状况看来,即使是按照官方规范做出来的应用,只要在底部 Action Bar 里出现了除了图标之外的任何控件(即使也是官方控件),Smart Bar 对其的兼容都会悲剧。下面是一些例子:

▲ 四次元,一款完全按照官方 Android 设计规范制作的优秀微博客户端,由于在底部 Action Bar 上放置了 Borderless Bottom(这是一种按钮控件),导致 Smart Bar 排版悲剧。

其实,四次元的小幅偏移情况已经算是比较好的了,还有更悲剧的情况:

▲ 上图是一款刚刚上市的当红照片处理应用 Snapseed(实际上,这是一个 Google 出品应用)。左侧是 MX 2 上的效果,右侧是在我的手机上的截图。可以看到 Smart Bar 直接将其滤镜选择区域遮挡。Snapseed 应用完全符合 Android 设计规范。这应该是一个全屏应用,在正确的情况下 Smart Bar 应该隐藏起来。然而实际上,Smart Bar 却没有隐藏,而是直接进行了前后遮挡。

不过这还不是重点所在。让我们想想别的事情:为什么在新的 Android 上,Google 会使用底部 Action Bar 的设计? 仅仅是为了让开发者往上面放四五个图标控件而已么?放其它官方控件可不可以?放非官方的自制控件改善体验可不可以?

Action Bar 的扩展性与自定义

如果你真的认为 Google 会在 Android 4.X 加入底部 Action Bar 的设计仅仅只是为了让开发者往上面放四个图标而已的话,那你就大错特错了。Action Bar 上可以放的东西远远不止图标。

▲ Catch Note 这个前后遮挡的例子非常的典型。Catch Note 是个完全符合官方 Android 设计规范的同时做到与众不同的应用。它最大的与众不同之处就是在底部 Action Bar 上放了一个自制控件。自制控件对于一个应用的个性化而言是不可或缺的——除非开发者仅仅满足于“和原生应用长得差不多”这种水平。

现在官方 Android 设计规范尚未完全普及,很多开发者仍然在摸索 Android 设计规范的合理利用方式,在模仿已有应用(Android 自带/Google 出品)的设计和造型。在这种前提下,我们现在接触到的符合 Android 设计规范的应用,大多数都和长得和官方提供的 Holo 主题应用类似,在底部 Action Bar 上只放了图标控件。所以在当前情况下,Smart Bar 对符合 Android 官方设计规范的应用兼容性还是不错的。

但是,Google 自己做的应用只会是最基本的样式,如果大家真的只是照着 Google 官方产品描,那是不太可能做出精品应用的。所以很多开发者开始摸索新的对 Action Bar 的利用方式。其中之一就是放置自制控件。也有开发者开始在 Action Bar 上放 Spinner(选择器/框架内导航),Borderless Bottom(四次元那样的带文字的无边框按钮控件)来延伸应用的操控性。而像 Catch Note 之类的团队,已经能够做出符合 Android 设计规范的同时又带有鲜明个性的应用——他们自己制作控件,并放在底部的 Action Bar 上。

悲剧的是,一旦 Smart Bar 遇到这种类型的 Action Bar,立刻就悲剧了。因为 Smart Bar 能够兼容的,仅仅是图标控件(Icon)而已。

认为在 Action Bar 上只能放图标控件,是对 Android 官方设计规范的一种曲解。

远见还是短视?

为什么 Smart Bar 现在看起来似乎很美好? 我们可以看看现在的 Android 应用开发者的状态:

  • 有一小部分开发者完全不了解/不想使用 Android 官方设计规范
  • 绝大多数开发者已经知道 Android 官方设计规范并且对其有所了解(阅读过 Android Design HIG 这样的官方文档)
  • 其中的大部分已经制作了他们的第一个符合 Android 官方设计规范的应用,或者已经将自己已有的应用升级以符合 Android 官方设计规范
  • 剩下一小部分,已经精通 Android 官方设计规范,做出了超越 Google 官方应用的产品。

Smart Bar 能做到不是“更好,至少也不会更差”,实际上是归功于现状。现在 Android 应用发展的趋势是“从长得像 iPhone 应用进化到学着官方 Android 设计规范制作应用”,在开发者们普遍只是学着官方应用的样子,只在 Action Bar 上放置图标控件的时候,Smart Bar 当然会有比较好的兼容性。

但是实际上,符合 Android 官方设计规范的应用中,只要在底部 Action Bar 中加入了非图标控件,“不是更好,至少也不会更差”就不攻自破。在国外,现在的趋势是,各种应用对 Action Bar 的利用越来越丰富,自制控件比比皆是。在这种情况下,Smart Bar 前后遮挡的不兼容现象就很容易发生。上面的 Catch Note 就属于这一类。

更重要的是,Android 官方设计规范真正规定的只是一种用户的使用体验,而不是程序的制造方式。也就是说,只要长得像 Action Bar,提供与官方 Action Bar 类似的操作体验,那么没人能看出你到底是不是真的用了官方提供的 Action Bar。利用这个特性,开发者可以自由的使用非标准控件,自定义控件甚至是自制控件,而应用依然可以符合 Android 官方设计规范,为用户提供一致的使用体验。目前,有不少这一类应用处于与 Smart Bar 上下叠加的状态,比如我们常用的 Evernote/印象笔记:

未来,越来越多已经精通官方设计规范的开发者,将不再满足于和 Google 一样只往 Action Bar 里放图标控件。而是会越来越多地探索在 Action Bar 上集成更多的控件。像 Catch Note 这样的,在 Action Bar 上利用自制控件实现个性化和更多功能的应用会大规模出现。到了那时,Smart Bar 的存在就只剩下限制这些控件的发挥和浪费空间两个作用了。

结语

就国内 Android 生态而言,Smart Bar 看起来似乎是具有远见的设计。但是就整个 Android 生态圈而言,Smart Bar 的存在反而制约了开发者对 Action Bar 的创造性利用,并且将国内开发者引导向了一个错误的方向。

当国外优秀应用都在积极地探索 Action Bar 的更多可能性时,魅族并没有完全理解 Android 官方设计规范的初衷,用并不聪明的 Smart Bar 给国内开发者对 Action Bar 的利用设下了只能放置图标控件的限制,从这个角度来看,不得不说使用 Smart Bar 是一个比较短视的举动。

当然,我们也知道当前版本的 Smart Bar 只是早期的实现形式。随着国内 Android 生态的发展,我们也希望看到魅族能让 Smart Bar 变得越来越聪明,为更多的可能性提供更好的兼容。至少,下一次在我打开 Catch Note 的时候,不要再看到前后遮挡这种尴尬场景了吧~

Smart Bar魅族
关注极客公园公众号
反馈