写点什么

iOS 上手 Vision Pro 还未摸到门道?快来听听淘宝 Vision Pro 的最佳实践

  • 2024-10-12
    北京
  • 本文字数:3001 字

    阅读完需:约 10 分钟

大小:1.45M时长:08:27
iOS 上手 Vision Pro 还未摸到门道?快来听听淘宝 Vision Pro 的最佳实践

今年 4 月,淘宝 Vision Pro 版上线,为电商行业带来了全新的购物体验。通过将商品以 3D 立体的方式投影到现实世界中,用户可以近距离、多角度地观察商品,甚至可以实现 1:1 比例的真实模拟。这种“身临其境”的购物体验,无疑将改变我们传统的消费习惯。

 


对于 iOS 开发者来说,Vision Pro 代表着一个充满机遇的全新领域。淘宝作为国内领先的电商平台,率先将 Vision Pro 应用于购物场景,为开发者提供了宝贵的经验。淘宝 XR 工程技术团队核心开发蒋志远在接受 InfoQ 采访时分享了他们在 Vision Pro 开发方面的心得体会。蒋志远指出,Vision Pro 作为一个全新的平台,其实也给开发者带来了巨大的挑战。而淘宝团队则在没有任何前例可循、不断探索的情况下,成功上线了淘宝 Vision Pro 版本。

 

采访嘉宾:蒋志远,来自淘宝 XR 工程技术团队,曾经负责过淘宝 iOS 客户端性能、架构和创新业务,现在负责淘宝 Vision Pro 版本的软件架构工作。重新设计了 淘宝 Vision Pro 版本的软件架构,支持了淘宝 Vision Pro 版本开发上线的全流程。在即将召开的 QCon 上海 2024_ 全球软件开发大会暨智能软件开发生态展_InfoQ 技术大会上,蒋志远将分享更多关于淘宝在 visionOS 上的最佳实践细节。

 


InfoQ:从常规 iOS 开发转为 VR/MR 方向,您感觉这中间过渡大吗?进入 Vision Pro 开发领域,技能 Gap 主要有哪些?

 

蒋志远:Vision Pro 的开发得益于苹果的跨平台策略,它大量采用了与 iOS 相同的基础技术,并且基础 SDK 的 API 与 iOS 相差无几。因此,对于 iOS 开发者而言,转向 Vision Pro 的学习曲线相对平缓。你可以将开发 iOS 应用的经验直接应用于 Vision Pro 应用的开发。这正是 Vision Pro 相对于其他 VR/MR 头显设备的优势所在。

 

在开发 Vision Pro 应用时,主要分为两种类型:纯 2D 应用和结合 3D 内容的应用。对于前者,开发者无需额外学习;而对于后者,则需要对 3D 内容开发流程有所了解。独立开发者可能需要解决 3D 模型的获取、格式处理、3D 内容控制等问题,并需要具备一定的游戏开发知识,如渲染技术和数学变换等。尽管苹果已经提供了简洁的 API,但这些知识仍然是必要的。

 

InfoQ:构建 Apple Vision Pro 应用有两种基本方法:改造现有应用以使其与 Vision Pro 兼容,以及从头开始为 Vision Pro 的空间计算环境构建新应用。那么淘宝选择的是哪一种?为什么这么选?

 

蒋志远:在 Vision Pro 上,现有的 iPhone 和 iPad 应用可以通过兼容模式运行,这意味着即使不做任何修改,我们的 App 也能在 Vision Pro 上运行。这里假设你指的是使用现有代码对 Vision Pro 进行适配。这要求代码具有很高的兼容性,尤其是考虑到 Vision Pro 在 UI 上的显著变化和平台差异性。如果您的 App 已经很好地适配了 iPad 的 UI 并正确处理了多窗口逻辑,尤其是使用 SwiftUI 开发的 App,那么迁移到原生 Vision Pro 的难度会相对较小。然后,您可以针对 Vision Pro 平台微调 UI,并利用新的内容特性。

 

如果情况并非如此,我建议针对 Vision Pro 从头开始开发一个应用。因为面对这个全新的领域,我们更倾向于贴近平台,充分利用 Vision Pro 的潜力,提供全新的用户体验。

 

InfoQ:开发过程中,您认为最大的难点是什么?(某个功能的实现过程、遇到的问题以及解决方法)

 

蒋志远:在开发过程中,我们遇到了各种预料之中和预料之外的问题。Vision Pro 作为一个全新的平台,自然也存在各种挑战。并且苹果在很多细节方面并没有提供详细的文档,我们需要在没有任何经验可借鉴的情况下不断的摸索。

 

淘宝在原生的 visionOS 平台上开发,虽然原生平台已经给了很多能力,但是还有很多能力没有提供,我们自建了很多框架能力来弥补原生平台的不足。还有在如何协调好原生平台和自建的能力方面,我们也付出了很多的努力。

 

InfoQ:从当前实践角度来看,目前的三维显示、三维交互技术是否还存在一些对 VR/MR 发展造成掣肘的地方?

 

蒋志远:目前市面上的三维显示方案主要有两种:以 Vision Pro 为代表的视频透视(VST)方案,还有光学透视(OST)方案。VST 方案对摄像头的质量和图像拼接能力要求较高;而 OST 方案则对光学显示技术有较高要求。两者各有优势和局限。

 

实际上,这些技术的限制主要源于芯片技术,即如何在体积和算力之间找到最佳平衡点。XR 设备作为可穿戴设备,其设计要求是轻便舒适。例如,OST 设备为了实现轻便的眼镜形态,牺牲了一定的算力;而 VST 设备为了提供完整的 XR 体验,往往体积较大且重量较重。

 

在 Vision Pro 上,由于隐私问题,应用无法访问摄像头信息,唯一感知世界的方式是使用苹果的 ARKit,这在一定程度上限制了我们的发挥。我们希望能够继续探索 XR 隐私问题,找到应用感知世界和用户隐私之间的平衡点。

 

InfoQ:Vision Pro 的价格高昂,您认为个人开发者在 Vision Pro 实物调试过程中,除了高昂的硬件成本,还会面临哪些其他的技术门槛或限制?是否有一些开源工具或社区资源,可以帮助个人开发者更方便地进行 Vision Pro 的开发和调试?

 

蒋志远:Xcode 提供的模拟器已经能够满足我们大部分开发需求。然而,对于图像密集型的游戏或应用,模拟器的性能可能无法与真机相媲美。如果需要快速开发 Vision Pro 应用,目前开源的 iOS 能力库大多可以迁移到 Vision Pro 上。您可以在 GitHub 上搜索相关资源,如 Lookin、FLEX 等。

 

InfoQ:淘宝 Vision Pro 版本的开发过程中,您团队在实物调试方面有哪些独特的经验和教训?

 

蒋志远:苹果直接销售的 Vision Pro 没有外部接口,因此调试时需要一个低延迟且高速的局域网环境。如果您开发的是图形密集型应用,或者觉得无线调试速度慢且卡顿,可能需要购买官方推出的 Developer Strap,这是目前唯一支持有线调试 Vision Pro 的解决方案。

 

由于 Vision Pro 在 Xcode 中移除了 View Hierarchy 功能,调试视图时可能需要借助 Lookin 等工具进行辅助。

 

InfoQ:您认为未来的 Vision Pro 应用会呈现出怎样的趋势?是否可以预测下 Vision Pro 在电商领域的发展?

 

蒋志远:我认为 Vision Pro 应用在短期内将主要聚焦于沉浸式观影、效率工具和低交互的放置类 3D 游戏。长期来看,随着 AI、空间感知和协作能力的增强,应用将更倾向于虚拟与现实紧密结合,如协作设计、数字助手、立体说明书等。对于企业用户,Vision Pro 将在关键工序提供支持,如基于空间的设备状态监测、新人虚拟实操培训、增强人工视觉能力等。

 

对于传统电商应用,Vision Pro 提供了一个新的维度来展示商品。在手机上购物通常只能通过文字和图片了解商品,而 Vision Pro 可以通过 3D 技术将商品直观地展示在用户面前。开发者将充分利用这一新维度,以更沉浸、更高效的方式展示内容,如沉浸式逛店、线上车展、商品展览、AI 导购等。

 


InfoQ:对想入门 VR/MR 开发的程序员,您有哪些建议给他们?

 

蒋志远:我认为最重要的是明确自己想要开发的应用类型,然后有针对性地学习。XR 开发目前仍然依赖于特定平台。通用知识包括了解游戏开发的相关工具链、3D 模型相关知识、基础渲染知识以及 OpenXR 等。如果是针对 visionOS 的开发,Swift 和 SwiftUI 是一个很好的入门选择。

 

活动推荐

10 月 18 日 -19 日,QCon 全球软件开发大会将在上海举办。从云原生工程、架构、线上可靠性、大前端、技术管理等经典内容,到 AI Agent、AI Infra、RAG 等大热的 AI 话题,60+ 资深专家共聚一堂,深度剖析相关落地实践案例,共话前沿技术趋势。大会火热报名中,详情可联系票务经理  17310043226 咨询。

 


2024-10-12 17:137754

评论

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

TiCDC+Confluent同步数据到Oracle

TiDB 社区干货传送门

实践案例 集群管理 管理与运维 安装 & 部署 数据库架构设计

MobPush iOS SDK API

MobTech袤博科技

从反脆弱角度说一说:技术系统高可用性策略

小小怪下士

Java 程序员 系统设计 后端 秒杀

阿里面试:100个高频Spring面试题,助你一臂之力

Java你猿哥

Java spring 面试 Spring Boot 面经

面试官:kafka分布式消息系统,你真的了解吗?

做梦都在改BUG

Java kafka 消息队列 消息系统 消息中间件

深入理解Spring注解机制:注解的搜索与处理机制

Java你猿哥

Java spring Spring Boot ssm Spring注解

修复SSH在 MacOS Ventura 系统上不能使用RSA签名的问题

互联网搬砖工作者

二本4年Java经验,五面阿里艰苦经历(定薪45K),回馈一波心得体会

Java你猿哥

Java redis 面试 Spring Boot 面经

中国音乐市场增长超28%,首次成为全球第五大市场

曲多多(嗨翻屋)版权音乐

知识产权 娱乐 音乐 版权 娱乐产业

Docker等容器技术如何与移动开发相结合

FinClip

多平台小程序一站式管理分享

FinClip

保姆级教程!玩转 ChunJun 详细指南

袋鼠云数栈

大数据 开源

接招吧!最强“高并发”系统设计 46 连问,分分钟秒杀一众面试者

做梦都在改BUG

Java 系统设计 高并发

夺冠在即!2022 OceanBase数据库大赛12强集结

OceanBase 数据库

数据库 oceanbase

面试官:给你一段SQL,你会如何优化?

做梦都在改BUG

Java MySQL 数据库 sql 性能优化

如何在树莓派上使用MQTT协议

EMQ映云科技

树莓派 物联网 IoT mqtt 企业号 3 月 PK 榜

SSO认证是什么意思?有哪些优势?

行云管家

SSO认证

Visio 绘图注释工具:VSDX Annotator 激活版

真大的脸盆

Mac Mac 软件 注释工具

mysql-online-ddl是否需要rebuild

TiDB 社区干货传送门

Chaosd 模拟两地三中心集群的网络环境

TiDB 社区干货传送门

实践案例 管理与运维 故障排查/诊断 安装 & 部署

重磅消息!ChatGPT 联网,Milvus & Zilliz 正式嵌入用于向量检索!

Zilliz

非结构化数据 Milvus Zilliz 向量数据库 ChatGPT

实用性好的云管平台有哪些?咨询电话多少?

行云管家

云计算 云资源 云管理

BGA焊接问题解析,华秋一文带你读懂

华秋电子

可观测性之谷歌性能主管最新的有关LCP的文章

Yestodorrow

性能 可观测性 用户体验

【v6 认证】PCTA/PCTP/PCSD 我的备考经验

TiDB 社区干货传送门

社区活动 新版本/特性发布 TUG 话题探讨 6.x 实践

Nautilus Chain主网上线在即空投规则公布,如何获得更多的空投?

西柚子

对tidb-lightning导入机制的一点点研究

TiDB 社区干货传送门

故障排查/诊断 TiDB 源码解读

从零开始自己动手写阻塞队列

Java你猿哥

Java 线程 阻塞队列 实战

如何使用ShareSDK快速实现Android APP的社会化分享登录功能

MobTech袤博科技

iOS 上手 Vision Pro 还未摸到门道?快来听听淘宝 Vision Pro 的最佳实践_Android/iOS_Tina_InfoQ精选文章