|
Post by account_disabled on Jan 6, 2024 0:30:38 GMT -8
我们的应用程序感觉不那么原生。如果您的应用程序没有以每秒 60 帧的速度运行,用户会注意到。 我们提出了一种我们认为结合了两全其美的方法:从网络加载主要内容,但使用本机导航元素: 02-过渡-选择-预览 从一个页面转换到另一页面(从左到右),显示应用程序的哪些部分使用本机 UI,哪些部分使用 Web UI。(查看大图) 在 iOS 上,实现这一点确实非常简单。我们利用了导航控制器,它管理一堆视图,以及一个用于控制每个视图之间导航的导航栏。在我们的例子中,视图堆栈实际上只是一堆 Web 视图 - 任何时候发生导航时,我们都会实例化一个新的 Web 视图,将其推送到我们的并导航到新的 Web 视图,而不是在 Web 视图本身中导航UINavigationController到。 该视图。目的地。使用 Web 视图堆栈还意味着每当用户返回时,他们不必等待页面重新加载,这对他们的体验来说非常好。如果将来我们决定用本机视图替换某个功能,我们只需将本机视图推送到堆栈上,而不是该功能的 Web 视图版本。 在 Android 上,导航控制器的等效项是使 Whatsapp 号码列表 用Activity堆栈。我们决定不使用多个活动和片段,因为它们都需要极其复杂的生命周期管理。我们最终为应用程序管理了自己的 Web 视图堆栈,并编写了自定义本机动画以在每个视图之间进行转换。 许多其他应用程序利用本机导航元素来符合操作系统设计模式。查看 Basecamp 的 Android 应用程序的图片,该应用程序利用了本机导航栏: 03-basecamp-opt-预览 Basecamp 利用网络视图来获取有意义的功能。(图片:信号与噪。 声)(查看大图) 另外,将亚马逊的应用程序与其移动网站进行比较: 左边是亚马逊应用程序中的产品描述页面。 右侧是在浏览器中查看的相同产品,它显示与应用程序相同的内容,但样式和本机导航栏略有不同。 左边是亚马逊应用程序中的产品描述页面。右侧是在浏览器中查看的相同产品,它显示与应用程序相同的内容,但样式和本机导航栏略有不同。(查看大图) 通过这种方法,我们找到了一个最佳点,即拥有平台熟悉的体验,同时仍然利用网络上出色的核心购物体验。 这可能会让很多人感到惊讶,但 Facebook 应用程序的开发人员也在不断寻找最佳点,在每个功能有意义时利用本机或网络。根据Facebook 工程师撰写的一篇文章:“对于我们预计会更频繁更改的应用程序区域,我们将继续使用 HTM。
|
|