Lyft 如何利用 iOS Live 活动来增强用户体验

Lyft iOS 工程师 Max Husar 解释说,为用户提供及时更新是改善移动体验的关键,尽管这会增加开发范围和工作量。 为了实现灵活性、可靠性和可重用性之间的平衡, Lyft 工程师使用 iOS ActivityKit 将动态内容添加到他们的应用程序中。 活动套件 Apple 在 iOS 16.1 和 iPadOS 17 中引入了该功能,可以使用较新设备上的动态岛或旧设备上的锁定屏幕来共享应用程序的实时更新。 ActivityKit 的基石是实时活动,它可以被视为通知的演变,因为它们不仅允许用户接收最新信息或启动应用程序,而且还可以在不通过按钮和切换启动应用程序的情况下执行功能。 正如 Husar 所解释的,Lyft 工程师将每个实时活动作为一种在主应用程序之上运行的迷你应用程序来处理。 这也反映了 Lyft 的组织结构,即多个团队同时在不同领域工作。 我们决定使用服务器驱动的用户界面 (SDUI) 构建完全由服务器驱动的实时活动内容。 我们已经在应用程序中与实时活动重叠的一些屏幕上使用了 SDUI 框架,因此重用基本模型和熟悉的模式可以帮助我们更快地前进。 主要的 局限性 实时活动来自内容更新允许的最大负载大小,即 4KB。 在 Lyft 的例子中,这需要调整他们的 SDUI 模型以及使用 protobuf 进一步减少有效负载大小的一些字节。 基于这种方法,Lyft 的 iOS 团队创建了多个与用户交互的组件,包括能够呈现格式化文本以及图像或计时器的 RichText 组件,以及用于向乘客显示 Lyft 汽车的速度的进度条接近。 […]