我们一起聊聊 React Native 进军混合现实

2024年 2月 4日 74.0k 0

本期共享的是 —— 一个 React Native Fork(复刻仓库)支持开发苹果 Vision Pro。具体而言,一个新的 React Native 开源复刻项目将 React Native 引入了苹果的 Vision Pro 头显产品,允许移动开发者为混合现实头显开发 App。

苹果 Vision Pro 是去年 6 月苹果公司在其年度全球开发者大会上官宣的混合现实头显,是一款集 AR(增强现实)和 VR(虚拟现实)功能于一体的 MR 头显(混合现实头戴式显示设备)。

简而言之,Vision Pro 类似于邓紫棋在其《启示录》专辑的里装备的那个眼镜,可以化身“头号玩家”飞升元宇宙。乐土,启动!

而就在昨天,全球第 1 台零售版 Vision Pro 才正式被抱出线下实体旗舰店,你我皆为苹果历史见证人。

理论上可以将移动 App 移植到苹果 Vision Pro 的 visionOS 操作系统。

毕竟,M.P. 在最近的 React Native 播客中估计,visionOS 高达 80-90%(以上)的代码与 iOS 系统相同。M.P. 是软件工程咨询公司 Callstack 的技术主管。Callstack 负责该项目的软件工程师 O.K. 如是说,这两者的基建其实都是 UIKit。

换而言之,当 Callstack 与 Rebecker Specialties 的创始人 M.H. “梦幻联动”,为 Vision Pro 创建 React Native App 时,它们发现没法在 visionOS 系统上使用该框架。因此 Callstack 决定创建一个 React Native 的分支。通过该分支,Callstack 构建了一个新的开源树外平台(out-of-tree platform),可以和 visionOS 系统“梦幻联动”。它允许开发者将 App 重新定位到 Vision Pro,并完全支持平台 SDK。

“苹果 Vision Pro 最显着的特点当然是这种沉浸式空间体验,其中一大坨 App 彼此相邻,”该复刻仓库的开发者 O.K. 如是说。“这就是我们将为 React Native 带来的愿景,这样用户可以轻松镜像 App,并充分利用苹果 Vision Pro 用户的空间。”

VisionOS 开发的怪癖

将 VisionOS 系统视为具有三种类型的空间内容会有所帮助:

  • 窗口
  • 3D 体积
  • 空间

窗口是包含传统视图和控件的矩形框,并且可以包含某些 3D 内容。体积更像是一个大立方体,可以展示任意角度的 3D 视觉体验。最后是空间……以及其他的一切。默认情况下,App 启动到共享空间,它们并行不悖,就像桌面上的多个 App 一样。

图片图片

“App 可以使用窗口和体积来显示内容,且用户可以将这些元素重新定位到它们喜欢的任意位置,”苹果 VisionOS 官网如是说。 “为了享受身临其境的体验,App 可以打开一个专属完整空间,其中只会显示该 App 的内容。在完整空间内,App 可以使用窗口和体积,创建无限的 3D 内容,打开通往不同世界的门户,甚至让大家完全沉浸在环境中。”

苹果 Vision Pro 是一款混合现实或扩展现实头显,而不仅仅是虚拟现实。混合现实更像是虚拟叠加层,允许用户与周围环境交互。O.K. 和 M.P. 在播客中共享道,这款头显允许用户使用手、声音和眼睛进行导航,所有这些都由系统层处理,不需要开发者进行编程。

Vision Pro 仍然供不应求 —— 截至 1 月份的播客,Callstack 仍然在抢购候补名单上 —— 所以 O.K. 只在模拟器上测评开发,但它表示,操作系统将突出显示用户查看的位置并选择元素,然后可以通过手指动作激活 —— 就像点击触控板一样。

备胎方案

O.K. 表示,该团队确实将 Flutter 视为 React Native 的备胎方案,但最终还是选择了后者,因为它是一个更成熟的框架,在苹果应用商店和 Google Play 内发布的 App 中抢占的市场份额更大。它补充道,React Native 平台将允许这些开发者将其移动 App 扩展到 visionOS 系统。

NativeScript 是创建 VisionPro App 的另一个备胎。它为多个 JS 框架提供 VisionOS 支持,包括 React 和 Vue,允许开发者将 JS 与苹果的 SwiftUI “梦幻联动”。虽然但是,相比之下,React Native 更容易、更快,M.P. 如是说。

构建树外平台

O.K. 将针对 visionOS 系统的 React Native 分支与微软 Windows 的 React Native 分支进行了比较。

“它允许我们采用众所周知的 JS 编写的相同的代码库,并在 MacOS 系统和 Windows 系统上运行,我们还允许它在 VisionOS 系统上运行,”它讲道。

它补充道,在构建 React Native VisionOS 框架时,团队利用了另一个框架 Swift UI 来弥合 React Native 和 Vision Pro 视觉方面之间的差距。

团队发现不可能甚至没有必要迁移所有 React Native 代码。举个栗子,某些 API 在 Vision Pro 上毫无卵用。

“检索当前用户屏幕信息的 API 对于此平台而言毫无卵用,因为屏幕距离我们的眼睛有且仅有一厘米,我们无法访问用户正在查看的屏幕;但对于视觉效果,我们使用窗口来显示东东,”它说道。 “这就是为什么大多数库开发者和维护者需要解决某些常见问题,才能让它们的库在此平台上奏效。”

只有使用原生代码的库才需要迁移;根据 O.K. 一月份详细介绍如何迁移库的帖子,纯 JS 库将开箱即用。当然,该框架旨在解决某些挑战。O.K. 自愿表示,任何致力于转换其库的开发者都可以向它寻求帮助。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论