写点什么

Lyft 如何利用 iOS 实时活动来提升用户体验

  • 2024-05-05
    北京
  • 本文字数:1106 字

    阅读完需:约 4 分钟

大小:534.24K时长:03:02
Lyft 如何利用 iOS 实时活动来提升用户体验

Lyft iOS 工程师 Max Husar 解释说,向用户提供及时更新是改善移动体验的关键,尽管这将增加开发范围和工作量。为了在灵活性、可靠性和可重用性之间取得平衡,Lyft 的工程师使用 iOS ActivityKit 将动态内容添加到他们的应用程序中。


ActivityKit 是苹果在 iOS 16.1 和 iPadOS 17 中引入的,它允许用户使用新设备上的灵动岛(Dynamic Island)或旧设备上的锁屏来共享应用程序的实时更新。ActivityKit 的基石是实时活动(Live Activities),可以将它视为通知的演进,因为它们不仅允许用户接收最新信息或启动应用程序,还可以在不通过按钮和切换启动应用程序的情况下执行功能。


正如 Husar 所解释的那样,Lyft 的工程师将每个实时活动(Live Activity)都当作一种在主应用程序之上运行的迷你应用程序来处理。这也反映了 Lyft 的组织架构,即多个团队同时在不同的领域工作。


我们决定使用服务器驱动的用户界面(SDUI)来构建完全由服务器驱动的实时活动内容。我们已经在应用程序中与实时活动(Live Activity)重叠的一些屏幕上使用了 SDUI 框架,因此重用基本模型和熟悉的模式有助于我们更快地前进。


实时活动(Live Activities)的主要 限制 来自内容更新允许的最大有效负载的大小,即 4KB。在 Lyft 的案例中,这需要调整他们的 SDUI 模型,并使用 protobuf 来进一步减少有效负载大小中的一些字节。


基于这种方法,Lyft 的 iOS 团队创建了多个与用户交互的组件,包括一个 RichText 组件,该组件能够呈现格式化的文本以及图像或计时器,以及一个进度条,用于向乘客显示 Lyft 汽车的近似速度。


此外,他们扩展了解决方案,以支持远程图像的显示,以便在匹配骑手后立即显示司机的个人资料图像和车辆图像。此任务要求使用 应用程序组(App Groups) 在应用程序和实现实时活动(Live activity)的扩展程序之间共享文件。即便如此,Lyft 的工程师还是找不到:


一种可靠且快速地同时显示两个图像(司机图像和汽车图像)的方式。我们一致认为,首先从用户体验(UX)的角度来看,司机的个人资料图像更为重要,并且我们可以通过将 base64 图像数据直接发送到 APN 更新有效载荷中来毫无延迟地显示它。


另一个限制来自于这样一个事实,即图像只能在应用程序处于活动状态或处于后台状态并有足够的后台处理时间时才能下载。


Husar 表示,总的来说,无论复杂程度如何,实时活动所采用的解决方案都是成功的,并且能够提升数百万用户的用户体验。


关于 Lyft 工程师如何在他们的应用程序中利用实时活动(Live Activities)的详细信息可以参考这里,所以如果你对此感兴趣,请不要错过原文。


原文链接:https://www.infoq.com/news/2024/04/lyft-live-activities-ios/


声明:本文为 InfoQ 翻译,未经许可禁止转载。

2024-05-05 08:006100

评论

发布
暂无评论
发现更多内容

Fil还有希望吗?目前Fil发展如何了?

区块链 IPFS Filecoin fil filecoin生态

短视频SEO营销系统软件开发资料

妙视亮眼贴系统开发案例分析,妙视亮眼贴开发源码

系统开发咨询1357O98O718

独家!精挑细选三个月的臻品Java面试题,无糟粕!高质量

白亦杨

Java 编程 程序员 架构师 计算机

技术分析| 即时通讯和实时通讯的区别

anyRTC开发者

音视频 WebRTC 即时通讯 实时通讯 实时消息

阿里内网流传的9w字图解网络(全彩版)GitHub现已下载量过百万

java小李

HTTP

通过创建GeoLine给地图添加烟花图效果

ThingJS数字孪生引擎

大前端 地图 物联网 可视化

系统性能优化-数据结构

Tensorflow serving with docker

毛显新

tensorflow Docker

从简历被拒到收割8个大厂offer,我用了3个月成功破茧成蝶

java小李

面试

LeetCode题解:61. 旋转链表,闭合为环,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

HarmonyOS学习路之开发篇——线程管理

爱吃土豆丝的打工人

多线程 HarmonyOS 线程管理

阿里云飞天论文获国际架构顶会 ATC 2021最佳论文:全球仅三篇

阿里云大数据AI技术

南山二脂系统开发功能,南山二脂源码案例设计

系统开发咨询1357O98O718

WebAssembly正逐渐成为FaaS的主力

吴脑的键客

Docker Faas webassembly

短视频营销系统开发内容

北鲲云超算在生命科学领域的使用场景中有什么作用?

北鲲云

java并发编程

十二万伏特皮卡丘

贝丽美牙系统开发(开发案例),贝丽美牙源码设计

系统开发咨询1357O98O718

我看 JAVA 之 并发编程【二】java.util.concurrent.locks

awen

Java AQS lock Condition LockSupport

阿里这份15w字Java核心面试笔记!GitHub凭借百万下载量位居榜首

java小李

面试 Java核心笔记

对话交互:封闭域任务型与开放域闲聊算法技术

OPPO小布助手

人工智能 深度学习 对话 智能助手 语义理解

纷多多拼团系统开发案例详解,纷多多拼团现成源码

系统开发咨询1357O98O718

短视频平台获客软件系统开发

香到爆!SpringBoot/SpringCloud全套学习脑图+面试笔记免费分享

java小李

SpringCloud Alibaba

IT自动化运维工具就用行云管家!省心省力省事!

行云管家

云管平台 IT运维 行云管家 自动化运维

柏益美康系统开发案例详解,柏益美康开发源码

系统开发咨询1357O98O718

阿里大牛耗时三年整理出来的4588页Java面试诛仙手册,已全面开源

java小李

Linux 面试

短视频SEO软件系统开发资料

发布两小时,霸榜GitHub!Spring Boot实战文档

java小李

Spring Boot

双特新零售系统开发(开发模式),双特新零售现成源码

系统开发咨询1357O98O718

Lyft 如何利用 iOS 实时活动来提升用户体验_软件工程_Sergio De Simone_InfoQ精选文章