-
Notifications
You must be signed in to change notification settings - Fork 32
feat: implement XR
API
#81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Try to cross-reference the WebXR/OpenXR API to see if we can find a middle ground between them and visionOS specifics. It would be nice to be able to use this API across XR devices. |
@matthargett Looks like equivalent for WebXR is
WebXR returns |
b86a6ed
to
77f00b4
Compare
{ | ||
"name": "FBReactNativeSpec_visionOS", | ||
"type": "modules", | ||
"ios": {}, | ||
"android": {}, | ||
"jsSrcsDir": "src/private/specs/visionos_modules" | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I needed to generate separate set of Codegen specs for visionOS because the built-in one was overwritten when I used Yarn 4 (with Yarn v1 it was working fine) I'm guessing the issue comes from the order of how node_modules are discoevered by codegen.
If codegen finds react-native-visionos
first, then react-native
generated spec overwrites it later, but if it finds it second then everything is working fine.
cc: @Saadnajmi - you mentioned that rn-macos overwrites some Codegen specs of Alert module - maybe you will also run into this or maybe it's only related to adding new modules
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is there a way to fix this in yarn or RN codegen so it resolved in a human-observable order, rather than inode creation order(UNIX-based) or something else random on Windows? This is a class of support issue that can devolve into "works fine on my machine" :/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you using yarn 4 with the node_modules linker? curious
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes! With node_modules linker, I'm not sure why there is a discrepancy between those versions but it kind of makes sense as @callstack/react-native-visionos
is higher in the node_modules folder than react-native
(therefore the overwrite). I think creating a separate spec for OOT platform-specific modules is a safer bet
@@ -7,7 +7,7 @@ | |||
<key>UIApplicationPreferredDefaultSceneSessionRole</key> | |||
<string>UIWindowSceneSessionRoleApplication</string> | |||
<key>UIApplicationSupportsMultipleScenes</key> | |||
<false/> | |||
<true/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Todo: check how this affects rest of the app
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
on RNM, turning this on meant going through a different code path for intializing the window / scene, so the window set by RCTAppDelegate stopped showing. I guess on this fork, y'all have already gone full custom SwiftUI entry point though.
4e296d7
to
f241740
Compare
149ed11
to
c572fac
Compare
c572fac
to
5e78af5
Compare
5e78af5
to
d44ac88
Compare
fix: address issues with scale, ScrollView prop feat: move min_visionos_version_supported to Helpers feat: implement `visionos_hoverStyle` prop chore: update README.MD fix: refactor visionos_hoverStyle to take a string and new arch support docs: add link to rn-tester's README.md (#5) chore: change VisionOS to visionOS (#13) chore: use `min_supported_versions` for third-party-podspecs (#18) chore: remove not necessary ifs TARGET_OS_VISION, minimise code diff (#22) feat: add visionos support add warning when using InputAccessoryView update platform naming fix: remove keyboard listerners and mark as unsupported (#25) * fix: remove keyboard listerners and mark as unsupported * chore: replace warn with warnOnce feat: support building visionOS with dynamic frameworks enabled (#28) chore: sync Podfile.lock with upstream, remove unnecessary #endif feat: add visionOS as separate target to fix iOS tests (#31) * feat: add visionOS as separate target to fix iOS tests * fix: disable multiple windows support * feat: add visionOS App Icon * fix: creating Release build Update README.md (#36) * Update README.md * fix: update README link * feat: add caution section * fix: bring back info about Hermes Add platform guidelines to README (#37) * Add platform guidelines to README * fix: link to docs Rename react-native package to @callstack/react-native-visionos (#35) * rename react-native package to @callstack/react-native-visionos * fix typo * Make JS and TS tests independent of react-native package name * change name in template * replace more refs in e2e tests * revert tests changes * disable js e2e tests for visionos * bring back react-native for other platforms compat * ci: run js, no e2e js Fix codegen issues for RNTester after renaming package (#40) feat: make hermes build for visionOS (#26) * [WIP] feat: make hermes build for visionOS * feat: point to callstack/hermes-visionos fork, update README * fix: remove USE_HERMES from project.pbxproj feat: align unnecessary compiler conditionals (#51) chore: sync Podfile.lock feat: implement OOT release script (#43) * feat: implement OOT release script * docs: add readme on Release process * fix: remove header file Co-authored-by: Michał Pierzchała <thymikee@gmail.com> * add reference --------- Co-authored-by: Michał Pierzchała <thymikee@gmail.com> feat: add visionOS template (#34) * Update CLI to v12.1.1 * feat: implement visionos react-native template * feat: modify template look * feat: add `@callstack/out-of-tree-platforms` to metro config * fix: metro config * feat: update supported platforms --------- Co-authored-by: szymonrybczak <szymon.rybczak@gmail.com> task(StatusBar component): show warn when using StatusBar (#49) * task(StatusBar component): show warn when using StatusBar * pr suggestions docs: update CMake instructions (#55) Fix iOS native tests (#58) * fix: remove unnecessary libevent.podspec * fix: make OCMock build for visionOS fix: remove unnecessary YogaKit pod (#61) feat: add warning while building Hermes that at least CMake 3.28.0 is required (#63) fix: RCTAlertController transparent background override added cornerRadius for hover style (#66) * added corner radius for hover style * fix: implement proper handling for old arch, reformat code --------- Co-authored-by: Oskar Kwaśniewski <oskarkwasniewski@icloud.com> chore: sync Podfile.lock fix: don't warn users about the Keyboard API (#71) feat: implement visionos cli commands (#64) fix: use isVision instead of isVisionOS (#76) fix: release build bundle (#74) fix: remove duplicated isVision key (#78) fix: change resolver option name (#79) fix: RCTDeviceInfo UIApplicationDidChangeStatusBarOrientationNotification method fix: update README.md with corrected capitalization (#84) fix: upstream sync ifdefs fix: providing unsupported value to hoverStyle crashed the app (#88) fix: pointer events (#114) fix: hoverEffect for bridgeless mode (#92) refactor: remove unused RCTForegroundWindow (#94) fix: properly retrieve window when clicking DevMenu action (#95) sync with upstream chore: sync Podfile.lock docs: add how is it different from iOS version section (#91) docs: move to documentation website (#119) Update README.md (#121) * Update README.md * Update README.md Co-authored-by: Kacper Rożniata <56474758+krozniata@users.noreply.github.com> --------- Co-authored-by: Kacper Rożniata <56474758+krozniata@users.noreply.github.com> Update getting started link in Readme. (#123) Co-authored-by: christinamartinez <christina.martinez@faithlife.com> chore: remove hover effect & add cursor: pointer (#122) * chore: remove hover effect * fix: set cursor pointer by default, update tests * feat(iOS): Implement cursor style prop --------- Co-authored-by: Saad Najmi <sanajmi@microsoft.com> chore: resync with upstream fix: change versio of @callstack/out-of-tree-platforms feat: make SwiftUI React Native entry point (#68) * feat: add Swift entrypoint [wip] add module maps to some RN modules to allow for swift c++ imports feat: implement RCTReactController and RCTSwiftUIAppDelegate feat: introduce new method to RCTAppDelegate * feat: modify template to use SwiftUI * fix: dimensions, use RCTMainWindow() * fix: fallback to DarkMode on visionOS * fix: use KeyWindow() in RCTPerfMonitor feat: update docs (#80) * feat: update docs * Update README.md Co-authored-by: Michał Pierzchała <thymikee@gmail.com> * Update README.md Co-authored-by: Michał Pierzchała <thymikee@gmail.com> * Update README.md Co-authored-by: Michał Pierzchała <thymikee@gmail.com> * Update README.md Co-authored-by: Michał Pierzchała <thymikee@gmail.com> * Update README.md Co-authored-by: Michał Pierzchała <thymikee@gmail.com> --------- Co-authored-by: Michał Pierzchała <thymikee@gmail.com> feat: add UIApplicationSceneManifest to template Create custom resolver and utils package for out-of-tree platforms (#32) * rename react-native package to @callstack/react-native-visionos * wip: metro setup for other platform * fix(flow): add .ios.visionos as support platform * fix some flow errors * fix flow * revert Platform.select change * revert KeyboardAvoidingView change * fix type * change kBundlePath to ios.visionos * fix: remove redundant isVisionOS * use custom resolver options to read platform for OOT * fix types * remove formatting * add/remove platform checks * document variant behavior * use visionOS Keyboard mock * use visionOS KeyboardAvoidingView mock * use visionOS InputAccessoryView mock * test: add test for metroPlatformResolver * move implementation to user space * create out-of-tree-platforms package and bring back resolver options * revert flow changes * revert sourceExts changes * update links * add comments * fix visionos typo * adjust lockfile * revert loadMetroConfig change * remove podfile lock * revert scripts changes Fix build step for `@callstack/out-of-tree-platforms` (#46) * feat: setup @callstack/out-of-tree-platforms to build properly * feat: add build packages step to `oot-release.js` script * chore: format package.json fix(#48) local build of @callstack/out-of-tree-platforms (#50) feat: Automate releases to GitHub (#83) fix: adjust oot-release script for stable releases (#85) fix: hermes xcode build scripts (#133) feat: release scripts chore: sync with upstream chore: sync with upstream chore: sync with upstream prevent keyboard api in ScrollView (#143) chore: sync with upstream feat: include privacy info manifest (#144) chore: sync with upstream fix: local commands parameters (#134) fix: add missing index.flow.js file to out-of-tree-platforms package feat: implement `XR` API (#81) * feat: implement Spatial API * feat: make RCTSpatial decoupled from RCTMainWindow() * feat: implement XR module docs: add image to README, annotate nightly APIs fix: export XR library from typescript feat: add multi-window support (#117) * feat: add multi-window support * feat: introduce WindowManager fix: RCTReactViewController properly check props to update fix: use clearColor instead of systemBackgroundColor for visionOS (#125) feat: allow to use WindowHandlingModifier outside of RCTMainWindow fix: deep and universal links when app is running (#140) Co-authored-by: Thiago Brezinski <thiagobrez@gmail.com> fix: remove window init feat: add support for ornaments & dev menu trigger (#149) * feat: add support for ornaments * feat: add ornaments support to second window fix: allow to manually move dev menu to avoid conflicts (#150) fix: remove unnecessary diff after upstreaming changes (#151) Make CMake 3.29.0 as minimum required version (#155) fix: move visionOS codegen specs, sync with upstream chore: sync with upstream fix: remove template Move template to a separate repo fix: update oot-release scripts chore: remove unnecessary diff (#159) fix: react-native-config chore: sync with upstream chore: sync with upstrteam Move to GH Actions (#158) * Revert "feat: implement visionOS CI (#54)" This reverts commit ae6f903. * fix: implement GH actions CI chore: sync with upstream chore: remove automatic cursor pointer (#161) Download VisionOS SDK (#163) chore: sync with upstream chore: remove oot-platforms package (#165) chore: sync with upstream
fix: address issues with scale, ScrollView prop feat: move min_visionos_version_supported to Helpers feat: implement `visionos_hoverStyle` prop chore: update README.MD fix: refactor visionos_hoverStyle to take a string and new arch support docs: add link to rn-tester's README.md (#5) chore: change VisionOS to visionOS (#13) chore: use `min_supported_versions` for third-party-podspecs (#18) chore: remove not necessary ifs TARGET_OS_VISION, minimise code diff (#22) feat: add visionos support add warning when using InputAccessoryView update platform naming fix: remove keyboard listerners and mark as unsupported (#25) * fix: remove keyboard listerners and mark as unsupported * chore: replace warn with warnOnce feat: support building visionOS with dynamic frameworks enabled (#28) chore: sync Podfile.lock with upstream, remove unnecessary #endif feat: add visionOS as separate target to fix iOS tests (#31) * feat: add visionOS as separate target to fix iOS tests * fix: disable multiple windows support * feat: add visionOS App Icon * fix: creating Release build Update README.md (#36) * Update README.md * fix: update README link * feat: add caution section * fix: bring back info about Hermes Add platform guidelines to README (#37) * Add platform guidelines to README * fix: link to docs Rename react-native package to @callstack/react-native-visionos (#35) * rename react-native package to @callstack/react-native-visionos * fix typo * Make JS and TS tests independent of react-native package name * change name in template * replace more refs in e2e tests * revert tests changes * disable js e2e tests for visionos * bring back react-native for other platforms compat * ci: run js, no e2e js Fix codegen issues for RNTester after renaming package (#40) feat: make hermes build for visionOS (#26) * [WIP] feat: make hermes build for visionOS * feat: point to callstack/hermes-visionos fork, update README * fix: remove USE_HERMES from project.pbxproj feat: align unnecessary compiler conditionals (#51) chore: sync Podfile.lock feat: implement OOT release script (#43) * feat: implement OOT release script * docs: add readme on Release process * fix: remove header file Co-authored-by: Michał Pierzchała <thymikee@gmail.com> * add reference --------- Co-authored-by: Michał Pierzchała <thymikee@gmail.com> feat: add visionOS template (#34) * Update CLI to v12.1.1 * feat: implement visionos react-native template * feat: modify template look * feat: add `@callstack/out-of-tree-platforms` to metro config * fix: metro config * feat: update supported platforms --------- Co-authored-by: szymonrybczak <szymon.rybczak@gmail.com> task(StatusBar component): show warn when using StatusBar (#49) * task(StatusBar component): show warn when using StatusBar * pr suggestions docs: update CMake instructions (#55) Fix iOS native tests (#58) * fix: remove unnecessary libevent.podspec * fix: make OCMock build for visionOS fix: remove unnecessary YogaKit pod (#61) feat: add warning while building Hermes that at least CMake 3.28.0 is required (#63) fix: RCTAlertController transparent background override added cornerRadius for hover style (#66) * added corner radius for hover style * fix: implement proper handling for old arch, reformat code --------- Co-authored-by: Oskar Kwaśniewski <oskarkwasniewski@icloud.com> chore: sync Podfile.lock fix: don't warn users about the Keyboard API (#71) feat: implement visionos cli commands (#64) fix: use isVision instead of isVisionOS (#76) fix: release build bundle (#74) fix: remove duplicated isVision key (#78) fix: change resolver option name (#79) fix: RCTDeviceInfo UIApplicationDidChangeStatusBarOrientationNotification method fix: update README.md with corrected capitalization (#84) fix: upstream sync ifdefs fix: providing unsupported value to hoverStyle crashed the app (#88) fix: pointer events (#114) fix: hoverEffect for bridgeless mode (#92) refactor: remove unused RCTForegroundWindow (#94) fix: properly retrieve window when clicking DevMenu action (#95) sync with upstream chore: sync Podfile.lock docs: add how is it different from iOS version section (#91) docs: move to documentation website (#119) Update README.md (#121) * Update README.md * Update README.md Co-authored-by: Kacper Rożniata <56474758+krozniata@users.noreply.github.com> --------- Co-authored-by: Kacper Rożniata <56474758+krozniata@users.noreply.github.com> Update getting started link in Readme. (#123) Co-authored-by: christinamartinez <christina.martinez@faithlife.com> chore: remove hover effect & add cursor: pointer (#122) * chore: remove hover effect * fix: set cursor pointer by default, update tests * feat(iOS): Implement cursor style prop --------- Co-authored-by: Saad Najmi <sanajmi@microsoft.com> chore: resync with upstream fix: change versio of @callstack/out-of-tree-platforms feat: make SwiftUI React Native entry point (#68) * feat: add Swift entrypoint [wip] add module maps to some RN modules to allow for swift c++ imports feat: implement RCTReactController and RCTSwiftUIAppDelegate feat: introduce new method to RCTAppDelegate * feat: modify template to use SwiftUI * fix: dimensions, use RCTMainWindow() * fix: fallback to DarkMode on visionOS * fix: use KeyWindow() in RCTPerfMonitor feat: update docs (#80) * feat: update docs * Update README.md Co-authored-by: Michał Pierzchała <thymikee@gmail.com> * Update README.md Co-authored-by: Michał Pierzchała <thymikee@gmail.com> * Update README.md Co-authored-by: Michał Pierzchała <thymikee@gmail.com> * Update README.md Co-authored-by: Michał Pierzchała <thymikee@gmail.com> * Update README.md Co-authored-by: Michał Pierzchała <thymikee@gmail.com> --------- Co-authored-by: Michał Pierzchała <thymikee@gmail.com> feat: add UIApplicationSceneManifest to template Create custom resolver and utils package for out-of-tree platforms (#32) * rename react-native package to @callstack/react-native-visionos * wip: metro setup for other platform * fix(flow): add .ios.visionos as support platform * fix some flow errors * fix flow * revert Platform.select change * revert KeyboardAvoidingView change * fix type * change kBundlePath to ios.visionos * fix: remove redundant isVisionOS * use custom resolver options to read platform for OOT * fix types * remove formatting * add/remove platform checks * document variant behavior * use visionOS Keyboard mock * use visionOS KeyboardAvoidingView mock * use visionOS InputAccessoryView mock * test: add test for metroPlatformResolver * move implementation to user space * create out-of-tree-platforms package and bring back resolver options * revert flow changes * revert sourceExts changes * update links * add comments * fix visionos typo * adjust lockfile * revert loadMetroConfig change * remove podfile lock * revert scripts changes Fix build step for `@callstack/out-of-tree-platforms` (#46) * feat: setup @callstack/out-of-tree-platforms to build properly * feat: add build packages step to `oot-release.js` script * chore: format package.json fix(#48) local build of @callstack/out-of-tree-platforms (#50) feat: Automate releases to GitHub (#83) fix: adjust oot-release script for stable releases (#85) fix: hermes xcode build scripts (#133) feat: release scripts chore: sync with upstream chore: sync with upstream chore: sync with upstream prevent keyboard api in ScrollView (#143) chore: sync with upstream feat: include privacy info manifest (#144) chore: sync with upstream fix: local commands parameters (#134) fix: add missing index.flow.js file to out-of-tree-platforms package feat: implement `XR` API (#81) * feat: implement Spatial API * feat: make RCTSpatial decoupled from RCTMainWindow() * feat: implement XR module docs: add image to README, annotate nightly APIs fix: export XR library from typescript feat: add multi-window support (#117) * feat: add multi-window support * feat: introduce WindowManager fix: RCTReactViewController properly check props to update fix: use clearColor instead of systemBackgroundColor for visionOS (#125) feat: allow to use WindowHandlingModifier outside of RCTMainWindow fix: deep and universal links when app is running (#140) Co-authored-by: Thiago Brezinski <thiagobrez@gmail.com> fix: remove window init feat: add support for ornaments & dev menu trigger (#149) * feat: add support for ornaments * feat: add ornaments support to second window fix: allow to manually move dev menu to avoid conflicts (#150) fix: remove unnecessary diff after upstreaming changes (#151) Make CMake 3.29.0 as minimum required version (#155) fix: move visionOS codegen specs, sync with upstream chore: sync with upstream fix: remove template Move template to a separate repo fix: update oot-release scripts chore: remove unnecessary diff (#159) fix: react-native-config chore: sync with upstream chore: sync with upstrteam Move to GH Actions (#158) * Revert "feat: implement visionOS CI (#54)" This reverts commit ae6f903. * fix: implement GH actions CI chore: sync with upstream chore: remove automatic cursor pointer (#161) Download VisionOS SDK (#163) chore: sync with upstream chore: remove oot-platforms package (#165) chore: sync with upstream
fix: address issues with scale, ScrollView prop feat: move min_visionos_version_supported to Helpers feat: implement `visionos_hoverStyle` prop chore: update README.MD fix: refactor visionos_hoverStyle to take a string and new arch support docs: add link to rn-tester's README.md (#5) chore: change VisionOS to visionOS (#13) chore: use `min_supported_versions` for third-party-podspecs (#18) chore: remove not necessary ifs TARGET_OS_VISION, minimise code diff (#22) feat: add visionos support add warning when using InputAccessoryView update platform naming fix: remove keyboard listerners and mark as unsupported (#25) * fix: remove keyboard listerners and mark as unsupported * chore: replace warn with warnOnce feat: support building visionOS with dynamic frameworks enabled (#28) chore: sync Podfile.lock with upstream, remove unnecessary #endif feat: add visionOS as separate target to fix iOS tests (#31) * feat: add visionOS as separate target to fix iOS tests * fix: disable multiple windows support * feat: add visionOS App Icon * fix: creating Release build Update README.md (#36) * Update README.md * fix: update README link * feat: add caution section * fix: bring back info about Hermes Add platform guidelines to README (#37) * Add platform guidelines to README * fix: link to docs Rename react-native package to @callstack/react-native-visionos (#35) * rename react-native package to @callstack/react-native-visionos * fix typo * Make JS and TS tests independent of react-native package name * change name in template * replace more refs in e2e tests * revert tests changes * disable js e2e tests for visionos * bring back react-native for other platforms compat * ci: run js, no e2e js Fix codegen issues for RNTester after renaming package (#40) feat: make hermes build for visionOS (#26) * [WIP] feat: make hermes build for visionOS * feat: point to callstack/hermes-visionos fork, update README * fix: remove USE_HERMES from project.pbxproj feat: align unnecessary compiler conditionals (#51) chore: sync Podfile.lock feat: implement OOT release script (#43) * feat: implement OOT release script * docs: add readme on Release process * fix: remove header file Co-authored-by: Michał Pierzchała <thymikee@gmail.com> * add reference --------- Co-authored-by: Michał Pierzchała <thymikee@gmail.com> feat: add visionOS template (#34) * Update CLI to v12.1.1 * feat: implement visionos react-native template * feat: modify template look * feat: add `@callstack/out-of-tree-platforms` to metro config * fix: metro config * feat: update supported platforms --------- Co-authored-by: szymonrybczak <szymon.rybczak@gmail.com> task(StatusBar component): show warn when using StatusBar (#49) * task(StatusBar component): show warn when using StatusBar * pr suggestions docs: update CMake instructions (#55) Fix iOS native tests (#58) * fix: remove unnecessary libevent.podspec * fix: make OCMock build for visionOS fix: remove unnecessary YogaKit pod (#61) feat: add warning while building Hermes that at least CMake 3.28.0 is required (#63) fix: RCTAlertController transparent background override added cornerRadius for hover style (#66) * added corner radius for hover style * fix: implement proper handling for old arch, reformat code --------- Co-authored-by: Oskar Kwaśniewski <oskarkwasniewski@icloud.com> chore: sync Podfile.lock fix: don't warn users about the Keyboard API (#71) feat: implement visionos cli commands (#64) fix: use isVision instead of isVisionOS (#76) fix: release build bundle (#74) fix: remove duplicated isVision key (#78) fix: change resolver option name (#79) fix: RCTDeviceInfo UIApplicationDidChangeStatusBarOrientationNotification method fix: update README.md with corrected capitalization (#84) fix: upstream sync ifdefs fix: providing unsupported value to hoverStyle crashed the app (#88) fix: pointer events (#114) fix: hoverEffect for bridgeless mode (#92) refactor: remove unused RCTForegroundWindow (#94) fix: properly retrieve window when clicking DevMenu action (#95) sync with upstream chore: sync Podfile.lock docs: add how is it different from iOS version section (#91) docs: move to documentation website (#119) Update README.md (#121) * Update README.md * Update README.md Co-authored-by: Kacper Rożniata <56474758+krozniata@users.noreply.github.com> --------- Co-authored-by: Kacper Rożniata <56474758+krozniata@users.noreply.github.com> Update getting started link in Readme. (#123) Co-authored-by: christinamartinez <christina.martinez@faithlife.com> chore: remove hover effect & add cursor: pointer (#122) * chore: remove hover effect * fix: set cursor pointer by default, update tests * feat(iOS): Implement cursor style prop --------- Co-authored-by: Saad Najmi <sanajmi@microsoft.com> chore: resync with upstream fix: change versio of @callstack/out-of-tree-platforms feat: make SwiftUI React Native entry point (#68) * feat: add Swift entrypoint [wip] add module maps to some RN modules to allow for swift c++ imports feat: implement RCTReactController and RCTSwiftUIAppDelegate feat: introduce new method to RCTAppDelegate * feat: modify template to use SwiftUI * fix: dimensions, use RCTMainWindow() * fix: fallback to DarkMode on visionOS * fix: use KeyWindow() in RCTPerfMonitor feat: update docs (#80) * feat: update docs * Update README.md Co-authored-by: Michał Pierzchała <thymikee@gmail.com> * Update README.md Co-authored-by: Michał Pierzchała <thymikee@gmail.com> * Update README.md Co-authored-by: Michał Pierzchała <thymikee@gmail.com> * Update README.md Co-authored-by: Michał Pierzchała <thymikee@gmail.com> * Update README.md Co-authored-by: Michał Pierzchała <thymikee@gmail.com> --------- Co-authored-by: Michał Pierzchała <thymikee@gmail.com> feat: add UIApplicationSceneManifest to template Create custom resolver and utils package for out-of-tree platforms (#32) * rename react-native package to @callstack/react-native-visionos * wip: metro setup for other platform * fix(flow): add .ios.visionos as support platform * fix some flow errors * fix flow * revert Platform.select change * revert KeyboardAvoidingView change * fix type * change kBundlePath to ios.visionos * fix: remove redundant isVisionOS * use custom resolver options to read platform for OOT * fix types * remove formatting * add/remove platform checks * document variant behavior * use visionOS Keyboard mock * use visionOS KeyboardAvoidingView mock * use visionOS InputAccessoryView mock * test: add test for metroPlatformResolver * move implementation to user space * create out-of-tree-platforms package and bring back resolver options * revert flow changes * revert sourceExts changes * update links * add comments * fix visionos typo * adjust lockfile * revert loadMetroConfig change * remove podfile lock * revert scripts changes Fix build step for `@callstack/out-of-tree-platforms` (#46) * feat: setup @callstack/out-of-tree-platforms to build properly * feat: add build packages step to `oot-release.js` script * chore: format package.json fix(#48) local build of @callstack/out-of-tree-platforms (#50) feat: Automate releases to GitHub (#83) fix: adjust oot-release script for stable releases (#85) fix: hermes xcode build scripts (#133) feat: release scripts chore: sync with upstream chore: sync with upstream chore: sync with upstream prevent keyboard api in ScrollView (#143) chore: sync with upstream feat: include privacy info manifest (#144) chore: sync with upstream fix: local commands parameters (#134) fix: add missing index.flow.js file to out-of-tree-platforms package feat: implement `XR` API (#81) * feat: implement Spatial API * feat: make RCTSpatial decoupled from RCTMainWindow() * feat: implement XR module docs: add image to README, annotate nightly APIs fix: export XR library from typescript feat: add multi-window support (#117) * feat: add multi-window support * feat: introduce WindowManager fix: RCTReactViewController properly check props to update fix: use clearColor instead of systemBackgroundColor for visionOS (#125) feat: allow to use WindowHandlingModifier outside of RCTMainWindow fix: deep and universal links when app is running (#140) Co-authored-by: Thiago Brezinski <thiagobrez@gmail.com> fix: remove window init feat: add support for ornaments & dev menu trigger (#149) * feat: add support for ornaments * feat: add ornaments support to second window fix: allow to manually move dev menu to avoid conflicts (#150) fix: remove unnecessary diff after upstreaming changes (#151) Make CMake 3.29.0 as minimum required version (#155) fix: move visionOS codegen specs, sync with upstream chore: sync with upstream fix: remove template Move template to a separate repo fix: update oot-release scripts chore: remove unnecessary diff (#159) fix: react-native-config chore: sync with upstream chore: sync with upstrteam Move to GH Actions (#158) * Revert "feat: implement visionOS CI (#54)" This reverts commit ae6f903. * fix: implement GH actions CI chore: sync with upstream chore: remove automatic cursor pointer (#161) Download VisionOS SDK (#163) chore: sync with upstream chore: remove oot-platforms package (#165) chore: sync with upstream
Summary:
This PR introduces the
XR
API.Example:
To-Do
Opening immersive space might fail in two scenarios: 1. App doesn't support multi window, user cancels the operation.
Demo
CleanShot.2024-01-26.at.11.01.58.mp4