Firefox OS,动画和灵魂的暗色立方贝塞尔曲线

我已经每天使用 Firefox OS 好几年了(哇,时间过得真快!)。虽然像 Project Silk 这样的努力使得性能稳步提升,但我经常注意到用户界面存在延迟。我假设延迟是因为硬件远远低于我使用 Android 和 iOS 设备时所习惯的“旗舰级”硬件。

去年,我为 Nexus 4 打造了 Firefox OS 并开始将其用作我的日常手机。很快,我意识到即使有了更好的硬件,我仍然需要等待 Firefox OS 执行一些基本的交互,即使该任务在计算上并不密集。我换成了 Nexus 5,然后是 Sony Z3 Compact,两者规格都比 Nexus 4 好,但我仍然遇到了相同的问题。

时间过去了,沮丧情绪加剧了。 无名恐惧的耳语…

数字分析

在阅读 Ralph Thomas 关于 基于物理模型创建动画 的帖子时,我开始思考 Firefox OS 中动画的实现方式,以及这与该问题是否存在关联。我分析了不同动画实例的数量,并按其持续时间进行了分组。我删除了进度指示器和启动关闭动画之类的元素。以下是 Firefox OS 中动画和过渡持续时间,按持续时间分组,针对过渡性交互,例如缩放、打开、关闭和滑动

  • 0.1 秒:15
  • 0.2 秒:57
  • 0.3 秒:79
  • 0.4 秒:40
  • 0.5 秒:78
  • 0.6 秒:8

有几个关键点。首先,动画持续时间分布非常广泛。其次,绝大多数动画的持续时间超过 300 毫秒!

实际上,在超过 80 个动画中,我们让用户等待超过半秒钟。这些缓慢的动画 拖慢了我们的速度,导致 Firefox OS 的整体体验下降。

我们是如何走到这一步的?

Firefox OS 的 UX 和交互设计师并没有聚在一起,故意设计出每次交互都缓慢地完成。实现这些动画的工程师也从未想过“这感觉很响应式…让我们把它放慢一些!”

我的理论是,当您设计和实现这些交互时,它们不会感觉缓慢,因为您一次只处理一个交互。在设计和开发动画时,我会寻找运动的流畅性、单个操作的美学以及视觉效果如何增强手头的任务,然后我会迭代持续时间和效果,直到感觉合适。

我们确实有 Firefox OS 响应性和用户感知性能指南,由 Gordon Brander 编写,您可以从下面的屏幕截图中看到。(点击图片查看更大、更清晰的版本。)但是,这些指南没有涵盖在初始感知因果关系和用户界面下一个可操作状态之间的亚秒级时间段。

Screenshot 2015-04-18 09.38.10

用户与我们开发人员和设计师的体验完全不同。用户在匆匆发送短信、试图捕捉到完美的镜头、输入用户名和密码或费力地逐个上传一堆图片时,会体验我们的动画。人们试图从 A 点到达 B 点。他们希望完成一项任务…嗯,实际上不止一项:根据 Tecmark 去年 10 月在英国进行的一项研究,智能手机用户每天要完成 221 项任务。所有这些动画加起来可不少!我断言,Gaia 中 203 个持续时间为 300 毫秒或更长的动画的总和,导致了我在深入研究之前所体验到的令人沮丧的缓慢感。

让它感觉更快

因此,我测试了这一理论,将 Gaia 中所有动画的持续时间更改为 200 毫秒,作为起点。结果如何?Firefox OS 的响应速度明显加快了。在任务之间移动和在操作系统中导航感觉很快,但并非突然。相机快速进入就绪状态。发短信感觉流畅多了,响应速度也快了许多。应用程序弹出来,而不是缓慢地从睡梦中爬起来。Rocketbar 更接近于名副其实(尽管我认为键盘应该在工具栏变为活动状态时向上动画)。

以下是一些动画在应用此补丁前后并排对比的演示

我们可以在 Gaia 中做几件事来解决这个问题

  1. 我提交了一个错误,要求将此更改合并到 Gaia 中。200 毫秒的持续时间只是第一步,直到我们可以进行进一步的测试。最好出错在灵敏的一边,而不是迟缓的一边。我们得到了大多数 16 位开发人员的支持,他们必须审查这些更改,现在我们正与 UX 团队合作,在它可以合并之前获得他们的签字。 Kevin Grandon 通过 添加了一个 CSS 变量,我们可以在整个 Gaia 中使用它,这将使我们在将来实施这些类型的系统范围更改变得更容易,因为我们将不断学习。
  2. 我正在与 Firefox OS UX 团队合作,为动画定义全局一致的最佳实践。这些指南不会始终完全正确,但可以作为实施新动画的起点,确保默认值基于研究和经验。
如果您是 Firefox OS 用户,如果您遇到任何感觉缓慢的操作,请 报告错误。通过报告错误,您可以推动变革,并帮助改善所有 Firefox OS 用户的体验。

如果您是开发人员或设计师,您的动画最佳实践是什么?您在 Web 项目的动画方面收到了哪些用户反馈?请在下面的评论中告诉我们!

关于:Dietrich Ayala

更多 Dietrich Ayala 的文章…


12 条评论

  1. jorrete

    感谢您的文章!

    作为 Flame 用户,我发现 UI 振动交互(例如键盘按键)非常长。keon 是一款更小巧的设备,我认为键盘振动处于活动状态时,响应速度更快,这仅仅是因为它的振动时间更短。
    主硬件按钮在调用任务管理器时也感觉很慢。

    期待尝试这些更改!!!

    2015 年 4 月 27 日 上午 8:00

  2. André

    我的 Nexus 4 上也是这样。在键盘上按下键后,振动持续时间太长。在 Android 上,“感觉”好多了。更像是一种“点击”,而不是“振动”。

    2015 年 4 月 27 日 下午 10:22

    1. Dietrich Ayala

      感谢 André!这是一个很好的发现,我之前没有注意到。你能为此提交一个错误报告吗?

      2015 年 4 月 27 日 下午 10:23

      1. André

        谢谢!我已经为此创建了一个工单:https://bugzilla.mozilla.org/show_bug.cgi?id=1159441

        2015年4月29日 上午 09:36

        1. dietrich@mozilla.com

          太棒了,谢谢!

          2015年4月29日 上午 11:36

  3. mac

    问题不仅仅在于整体性能(响应速度方面),还包括键盘性能。我可以说键盘问题更严重。有一个关于键盘问题的bug,并附有视频链接,展示了 b2g 2.0 版本和更高版本之间的差异。请查看:https://bugzilla.mozilla.org/show_bug.cgi?id=1122274。在接收消息或通话进行时的动画也存在问题:https://bugzilla.mozilla.org/show_bug.cgi?id=1104324
    https://bugzilla.mozilla.org/show_bug.cgi?id=1106898

    2015年4月28日 上午 00:54

    1. dietrich@mozilla.com

      谢谢 Mac!是的,要做的不仅仅是这个补丁。希望这个补丁能使那些其他性能问题更加明显,这样我们就可以更快地修复它们。

      2015年4月28日 上午 12:37

  4. alex_mayorga

    ¡Hola Dietrich!

    那些 Nexus 和索尼的构建版本在哪里可以获取?

    ¡Gracias!

    2015年4月29日 上午 06:14

    1. dietrich@mozilla.com

      我自己构建了它们,按照 MDN 上的说明进行操作

      https://mdn.org.cn/en-US/Firefox_OS/Building_and_installing_Firefox_OS

      不幸的是,Mozilla 没有重新分发这些设备上的二进制文件的许可证(无线电库等),因此无法提供构建版本。

      2015年4月29日 上午 08:09

    2. André

      Nexus 4 的 Firefox OS 3.0 构建版本可从这里获取:http://forum.xda-developers.com/nexus-4/general/rom-firefox-os-2-2-nexus-4-t2894024

      2015年4月29日 上午 09:25

  5. Aleksandar Blagotić

    说到 UX,您可以在帖子图片上添加类似于灯箱的行为;)

    2015年4月29日 下午 01:53

    1. dietrich@mozilla.com

      好主意。我们正在重建 Hacks 的 WP 主题,所以我会把它列入清单 :)

      2015年4月29日 下午 01:54

本文的评论已关闭。