[dev-launcher][dev-menu][ios] Add support for Fabric (#22184)# Why Closes ENG-7955 This PR adds dev-launcher support for the new architecture. # How - Updates `expo-dev-launcher` an
[dev-launcher][dev-menu][ios] Add support for Fabric (#22184)# Why Closes ENG-7955 This PR adds dev-launcher support for the new architecture. # How - Updates `expo-dev-launcher` and `expo-dev-menu` podspecs to support `NEW_ARCH_ENABLED` flags - Add `EXDevLauncherBridgeDelegate` class that inherits from `RCTAppDelegate` and is responsible for creating the root view and bridge - Replace `DevMenuRCTCxxBridgeDelegate`with `DevMenuRCTAppDelegate` - Fix `EXDevLauncherBridgeDelegate` not able to relaunch DevLauncher - Add `ExpoDevLauncherBridgeDelegateHandler` to handle opening apps from `ExpoDevLauncherReactDelegateHandler` - Update `openDevMenuFromReactNative` to ensure the DevMenu is closed before opening the react-native dev menu # Test Plan Run `fabric-tester` and `bare-expo` on iOS <table> <tr><th>fabric-tester</th><th>bare-expo</th></tr> <tr> <td> <video src="https://github.com/expo/expo/assets/11707729/1176f862-4459-4a39-8c11-16f73b2dfe46"/> </td> <td> <video src="https://github.com/expo/expo/assets/11707729/5f603af5-d970-4144-ade6-0943b829d225" /> </td> </tr> </table> # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [ ] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [ ] This diff will work correctly for `expo prebuild` & EAS Build (eg: updated a module plugin). --------- Co-authored-by: Kudo Chien <[email protected]>
show more ...
[menu][iOS] Migrate to new modules API (#22263)# Why In order to add support for Fabric to expo-dev-client and related libraries we must migrate all related modules to the new API Related to
[menu][iOS] Migrate to new modules API (#22263)# Why In order to add support for Fabric to expo-dev-client and related libraries we must migrate all related modules to the new API Related to ENG-7955 # How Migrate ExpoDevMenu classes to use the new modules API # Test Plan Run dev client through bare expo <table> <tr> <td> <img src="https://user-images.githubusercontent.com/11707729/234351876-9402cba1-686a-4575-b2e7-6319e9c50439.png" /> </td> <td> <img src="https://user-images.githubusercontent.com/11707729/234351912-f60b5e59-f9b5-4358-9402-ac5e91794bb7.png" /> </td> </tr> </table> # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [ ] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin).
[menu] Improve bottom sheet behaviour (#21486)# Why Improves the behavior of the native bottom sheet. Closes https://github.com/expo/expo/issues/21356. # How - Started a collapse animati
[menu] Improve bottom sheet behaviour (#21486)# Why Improves the behavior of the native bottom sheet. Closes https://github.com/expo/expo/issues/21356. # How - Started a collapse animation when the menu action was pressed - Added a way for users to close or hide the menu from js - Added small padding on Android to improve user experience - Extensions can now decide if executing them should trigger collapse animation. It's set to true by default. # Test Plan - bare-expo ✅ - https://snack.expo.dev/@honeycomb-wallwisher/forlorn-soda ✅
[ios][dev-menu] fix reload crash when dev-menu turned off (#21279)# Why When Expo-dev-menu is turned off from AppDelegate.m using: ``` ExpoDevMenuReactDelegateHandler.enableAutoSetup = NO
[ios][dev-menu] fix reload crash when dev-menu turned off (#21279)# Why When Expo-dev-menu is turned off from AppDelegate.m using: ``` ExpoDevMenuReactDelegateHandler.enableAutoSetup = NO; ``` The application crashes when we try to use bare react-native reload. # How I noticed that Expo-dev-menu does not need to be setup if an app has explcitly requested for its disabling. # Test Plan <!-- Please describe how you tested this change and how a reviewer could reproduce your test, especially if this PR does not include automated tests! If possible, please also provide terminal output and/or screenshots demonstrating your test/reproduction. --> 1. Disable auto setup of expo-dev-menu by adding: `ExpoDevMenuReactDelegateHandler.enableAutoSetup = NO;` in your AppDelegate.m 2. Launch bare-expo app. 3. Try to reload via "r" or via Shake gesture -> "Reload". 4. You will see a crash. # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [x] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [x] This diff will work correctly for `expo prebuild` & EAS Build (eg: updated a module plugin).
[dev-menu] Integrate hermes inspector like expo go (#19301)# Why align the hermes inspector implementation as expo go #19175. close ENG-6295 # How - from the dev-menu, if the js engine i
[dev-menu] Integrate hermes inspector like expo go (#19301)# Why align the hermes inspector implementation as expo go #19175. close ENG-6295 # How - from the dev-menu, if the js engine is inspectable (hermes /v8), show *Open JS debugger*. otherwise, show the *Remote JS debugger* - change the menu label from *Local dev tools* to *Remote JS debugger* that would make more clear what it is. - [android] change the isJSInsectorAvailable detection from sending http request to dev-server to check engine type. that aligns with expo go implementation and shows the dev menu faster (without waiting for dev-server http response). - [ios] integrate dev-server's endpoint to open the js inspector. note that i still use the classic dev-menu-item extensions to register the command. that would align with android implementations. - align `JsInspector -> JSInspector` - also, support js inspector for v8 # Test Plan - ✅ ios bare-expo hermes + Open JS debugger - ✅ ios bare-expo jsc + Remote JS debugger - ✅ android bare-expo hermes (have to downgrade react-native because the vendored reanimated lead to a crash) + Open JS debugger - ✅ android bare-expo jsc + Remote JS debugger Co-authored-by: Eric Samelson <[email protected]>
[expo-dev-menu][expo-dev-launcher] Disable onboarding popup with URL query param (#19024)Add code to check for `disableOnboarding` in the URL and set `DevMenuPreferences.isOnboardingFinished=true`
[expo-dev-menu][expo-dev-launcher] Disable onboarding popup with URL query param (#19024)Add code to check for `disableOnboarding` in the URL and set `DevMenuPreferences.isOnboardingFinished=true` before the app launches. Additionally, if testing in Detox, you can pass in a launch param to disable the onboarding popup in iOS (but not in Android). Made this change in the `apps/bare-expo` Detox tests.
[dev-client] cleanup unused native code (#18405)
[dev-menu] add js api to register callbacks (#17528)Co-authored-by: Eric Samelson <[email protected]>
[dev-menu] Fix error on summoning dev menu first time (#17215)
[ios] Add missing React imports to expo-dev-menu (#17030)
[dev-menu][dev-launcher] update dev-menu extensions API (#16558)
[dev-launcher] remove dev menu from extra modules (#16562)
[dev-menu] Rebuild js
[dev-menu] update dev-settings to be passed as initial props (#16275)
[dev-menu] update initial props on android and ios (#16271)
[dev-launcher][dev-menu] move queryDevSessions into react app (#16276)
[dev-launcher] move session fns from dev-menu to dev-launcher i (#16124)
[dev-menu] refactor dev menu on iOS to simplify dev-launcher relationship (#16067)
[dev-menu] add ios functions for dev menu (#15917)
[ios] Fix lint issues in Swift files (#15640)
[expo-dev-menu][expo-dev-menu-interface] add deviceId parameter to dev sessions query (#15539)
[dev-launcher] update RN app (#15343)
[dev-menu][ios] Update reload key command (#14590)# Why Closes ENG-1971 A follow-up to the https://github.com/expo/expo/pull/14202 # How Changed the reload key command from `CMD + r` to j
[dev-menu][ios] Update reload key command (#14590)# Why Closes ENG-1971 A follow-up to the https://github.com/expo/expo/pull/14202 # How Changed the reload key command from `CMD + r` to just `r`. # Test Plan - bare-expo ✅
[dev-menu][dev-launcher] Make items order consistently across platforms (#13449)
[dev-menu][ios] Add websocket support (#12979)# Why Closes ENG-1144. # How Added web socket control support for dev-menu on iOS (very similar to the https://github.com/expo/expo/pull/12151
[dev-menu][ios] Add websocket support (#12979)# Why Closes ENG-1144. # How Added web socket control support for dev-menu on iOS (very similar to the https://github.com/expo/expo/pull/12151). # Test Plan - bare-expo ✅
12