Skip to content

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

Merged
merged 3 commits into from
Jan 31, 2024
Merged

feat: implement XR API #81

merged 3 commits into from
Jan 31, 2024

Conversation

okwasniewski
Copy link
Member

@okwasniewski okwasniewski commented Jan 25, 2024

Summary:

This PR introduces the XR API.

Example:

const {XR} = require('@callstack/react-native-visionos');
//...
const OpenXRSession = () => {
  const [isOpen, setIsOpen] = React.useState(false);

  const openXRSession = async () => {
    try {
      if (!XR.supportsMultipleScenes) {
        Alert.alert('Error', 'Multiple scenes are not supported');
        return;
      }
      await XR.requestSession('TestImmersiveSpace');
      setIsOpen(true);
    } catch (e) {
      Alert.alert('Error', e.message);
      setIsOpen(false);
    }
  };

  const closeXRSession = async () => {
    if (isOpen) {
      await XR.endSession();
    }
  };

  return (
    <View style={styles.container}>
      <Text style={styles.title}>Is XR session open: {isOpen}</Text>
      <Button title="Open XR Session" onPress={openXRSession} />
      <Button title="Close XR Session" onPress={closeXRSession} />
    </View>
  );
};

To-Do

  • Rename the API
  • Polish error handling
  • Return info if immersive space is open
  • Test out Old Architecture
  • Write docs

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

@matthargett
Copy link
Collaborator

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.

@okwasniewski
Copy link
Member Author

@matthargett Looks like equivalent for WebXR is navigator.xr.requestSession() we can rename the API to XR and methods to:

  • Spatial.openImmersiveSpace(ID) -> XR.requestSession(ID)
  • Spatial.dismissImersiveSpace() -> XR.endSession()

WebXR returns session object and it ends the session by calling .end() on this object. I think the closest we can get is XR.endSession()

CleanShot 2024-01-26 at 14 44 16@2x

@okwasniewski okwasniewski mentioned this pull request Jan 29, 2024
3 tasks
@okwasniewski okwasniewski linked an issue Jan 29, 2024 that may be closed by this pull request
Comment on lines +146 to +152
{
"name": "FBReactNativeSpec_visionOS",
"type": "modules",
"ios": {},
"android": {},
"jsSrcsDir": "src/private/specs/visionos_modules"
},
Copy link
Member Author

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

Copy link
Collaborator

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" :/

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

Copy link
Member Author

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/>
Copy link
Member Author

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

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.

@okwasniewski okwasniewski force-pushed the feat/spatial-api branch 5 times, most recently from 4e296d7 to f241740 Compare January 30, 2024 10:08
@okwasniewski okwasniewski marked this pull request as ready for review January 30, 2024 10:09
@okwasniewski okwasniewski force-pushed the feat/spatial-api branch 3 times, most recently from 149ed11 to c572fac Compare January 30, 2024 10:56
@okwasniewski okwasniewski changed the title feat: implement Spatial API feat: implement XR API Jan 30, 2024
@okwasniewski okwasniewski merged commit d2eb21b into main Jan 31, 2024
@okwasniewski okwasniewski deleted the feat/spatial-api branch January 31, 2024 15:37
okwasniewski added a commit that referenced this pull request Feb 2, 2024
* feat: implement Spatial API

* feat: make RCTSpatial decoupled from RCTMainWindow()

* feat: implement XR module
okwasniewski added a commit that referenced this pull request Feb 7, 2024
* feat: implement Spatial API

* feat: make RCTSpatial decoupled from RCTMainWindow()

* feat: implement XR module
# Conflicts:
#	packages/rn-tester/Podfile.lock

# Conflicts:
#	packages/rn-tester/Podfile.lock
okwasniewski added a commit that referenced this pull request Feb 13, 2024
* feat: implement Spatial API

* feat: make RCTSpatial decoupled from RCTMainWindow()

* feat: implement XR module
okwasniewski added a commit that referenced this pull request Mar 6, 2024
* feat: implement Spatial API

* feat: make RCTSpatial decoupled from RCTMainWindow()

* feat: implement XR module
okwasniewski added a commit that referenced this pull request Mar 6, 2024
* feat: implement Spatial API

* feat: make RCTSpatial decoupled from RCTMainWindow()

* feat: implement XR module
okwasniewski added a commit that referenced this pull request Jun 24, 2024
* 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
okwasniewski added a commit that referenced this pull request Jun 24, 2024
* feat: implement Spatial API

* feat: make RCTSpatial decoupled from RCTMainWindow()

* feat: implement XR module
# Conflicts:
#	packages/rn-tester/Podfile.lock

# Conflicts:
#	packages/rn-tester/Podfile.lock
okwasniewski added a commit that referenced this pull request Jul 15, 2024
* 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
okwasniewski added a commit that referenced this pull request Jul 29, 2024
* 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
okwasniewski added a commit that referenced this pull request Jul 29, 2024
* 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
okwasniewski added a commit that referenced this pull request Jul 31, 2024
* 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
okwasniewski added a commit that referenced this pull request Aug 5, 2024
* 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
okwasniewski added a commit that referenced this pull request Aug 23, 2024
* 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
okwasniewski added a commit that referenced this pull request Aug 23, 2024
* 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
okwasniewski added a commit that referenced this pull request Aug 26, 2024
* 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
okwasniewski added a commit that referenced this pull request Aug 26, 2024
* 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
okwasniewski added a commit that referenced this pull request Sep 11, 2024
* 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
okwasniewski added a commit that referenced this pull request Sep 12, 2024
* 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
okwasniewski added a commit that referenced this pull request Sep 16, 2024
* 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
okwasniewski added a commit that referenced this pull request Sep 16, 2024
* 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
okwasniewski added a commit that referenced this pull request Sep 17, 2024
* 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
okwasniewski added a commit that referenced this pull request Sep 17, 2024
* 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
okwasniewski added a commit that referenced this pull request Sep 24, 2024
* 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
okwasniewski added a commit that referenced this pull request Nov 18, 2024
* 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
okwasniewski added a commit that referenced this pull request Nov 18, 2024
* 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
okwasniewski added a commit that referenced this pull request Nov 27, 2024
* 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
okwasniewski added a commit that referenced this pull request Nov 27, 2024
* 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
okwasniewski added a commit that referenced this pull request Jan 7, 2025
* 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
okwasniewski added a commit that referenced this pull request Jan 7, 2025
* 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
okwasniewski added a commit that referenced this pull request Jan 23, 2025
* 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
okwasniewski added a commit that referenced this pull request Feb 24, 2025
* 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
okwasniewski added a commit that referenced this pull request Feb 28, 2025
* 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
okwasniewski added a commit that referenced this pull request Feb 28, 2025
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
okwasniewski added a commit that referenced this pull request Feb 28, 2025
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
okwasniewski added a commit that referenced this pull request Feb 28, 2025
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Create XR API
3 participants