[go] Fix DevMenu window bounds on macOS (#23318)# Why Partially fixes ENG-9201 # How By not manually setting `bounds` to `[[UIScreen mainScreen] bounds]` the DevMenu automatically resizes
[go] Fix DevMenu window bounds on macOS (#23318)# Why Partially fixes ENG-9201 # How By not manually setting `bounds` to `[[UIScreen mainScreen] bounds]` the DevMenu automatically resizes when resizing the Expo Go window on macOS # Test Plan Run Expo Go on iOS and macOS <table> <tr><th>iOS</th><th>macOS</th></tr> <tr> <td> <video src="https://github.com/expo/expo/assets/11707729/065d746f-7def-4f9e-ad39-e5cc3e0e1c8c"/> </td> <td> <video src="https://github.com/expo/expo/assets/11707729/b3f1e6e7-42e3-4def-89f5-78941e6f49ad" /> </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).
show more ...
[exmanifests][ios] Convert to swift (#21298)
[Expo Go][iOS] No remote home app loads in release builds (#20416)# Why Per ENG-7047, we need to disable remote loading of home app, and checking for home app updates, for release builds. Upda
[Expo Go][iOS] No remote home app loads in release builds (#20416)# Why Per ENG-7047, we need to disable remote loading of home app, and checking for home app updates, for release builds. Updates and loading from the packager will still work in debug builds. # How Add `#ifdef DEBUG` in several places in `Exponent/Kernel/AppLoader/EXAppLoader.m` # Test Plan - CI should pass - Test Expo Go builds locally and verify that updates are not loaded, and that nothing else is broken # 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).
[expo-manifests] Rename RawManifest -> Manifest (#14194)
[expo-updates] Factor out raw manifests into their own package (#14183)
[ios] Migrate all remaining native code
[ios] Fix bug where we attempt to validate manifest instance rather than JSON as a JSON object (#13442)
[go][ios][android] Fix recent project feature with new manifest wrappers (#12805)
[Expo Go] Set iOS dev menu above LogBox (#12154)* set iOS dev menu above LogBox * Apply suggestions from code review
[Android][fix] Remove JSONBundleConverter usage for passing manifest from Android to JS (#11678)# Why `Expo Go` is unable to load any project on Android now. Recent change in app manifest shape
[Android][fix] Remove JSONBundleConverter usage for passing manifest from Android to JS (#11678)# Why `Expo Go` is unable to load any project on Android now. Recent change in app manifest shape is responsible for that, namely, new `config plugin system` (for `ncl` project this file: https://github.com/expo/expo/blob/master/apps/native-component-list/app.config.js is adding some array with strings/objects alternately). That is causing https://github.com/expo/expo/blob/fec8b1534e8d27584a685c01a3a12ff432b3fbbd/android/expoview/src/main/java/host/exp/exponent/utils/JSONBundleConverter.java#L72-L81 to throw an error. # How There's no way to convert `JSONArray` with different entries to `Bundle` data type as the latter does not allow arrays/lists containing different data types, only homogenous entries are allowed. I've removed this conversion altogether and replaced all `<someBundle>.putBundle("manifest", JSONBundleConverter.JSONToBundle(manifest))` with `<someBundle>.putString("manifest" manifest.toString())`. I've tried to find any place in the code that would read the `"manifest"` fields from the bundle, but failed to do so cc @lukmccall, as there are changes in the `DevMenu` module. From now on, `manifest` field in `initialProps` is replaced by `manifestString` that has to be deserialised upon access. Fortunately this field is not used anywhere in our codebase. # Test Plan - [x] I've succeeded in launching `ncl` and `test-suite` again on Android and observed no regressions. - [x] I've checked that DevMenu shows all the things in the header properly. - [x] I've checked both Android & iOS behaviours.
[ios][home] Add three finger gesture to open the dev menu + some refactoring (#7891)# Why Fixes #7644 and brings us closer to the separate `expo-dev-menu` package that can live without kernel.
[ios][home] Add three finger gesture to open the dev menu + some refactoring (#7891)# Why Fixes #7644 and brings us closer to the separate `expo-dev-menu` package that can live without kernel. Also fixed https://twitter.com/bantingGamer/status/1251154340129062917 # How - Added `EXDevMenuManager` singleton that manages the dev menu. Most parts of it were in kernel or some others classes strongly connected with kernel. Now, kernel is just its delegate. - Refactored `EXKernelDevMotionHandler` to `EXDevMenuMotionInterceptor` which is much clearer and makes it possible to uninstall the interceptor (these interceptors are kinda hacky, I tried not to do them this way but well, RN does the same ). - Added `EXDevMenuGestureRecognizer` for long press gesture, with minimum press duration set to 0.5s and with light impact haptic feedback. - Added `EXDevMenuGestureInterceptor` that swaps the default implementation of `UIView#gestureRecognizers`, but only for `UIWindow`s. This is needed to make three-finger gesture work everywhere in the app. - Renamed `EXMenuViewController` to `EXDevMenuViewController` (all dev menu classes should be prefixed by `EXDevMenu`) and again, removed some connections to kernel. - Added UI in user settings to select dev menu gestures (can select them separately). - Fixed an issue with dev menu view being below modals in the view hierarchy. # Test Plan So far I've tested it only with published experience. I'm gonna do smoke tests on dev apps later. I mostly focused on testing whether: - the dev menu works in general (after refactoring) - three-finger gesture works on the initial screen of the app, on the modals and on the dev menu itself - all combinations of selected gestures work as expected - selected gestures persist after killing and relaunching the client
[ios][android][devmenu] Dismiss keyboard when opening dev menu (#7806)# Why Fixes #7613 # How - **Android**: Cleared the focus in the current activity, this automatically dismisses the ke
[ios][android][devmenu] Dismiss keyboard when opening dev menu (#7806)# Why Fixes #7613 # How - **Android**: Cleared the focus in the current activity, this automatically dismisses the keyboard. - **iOS**: There is no easy way to get the view that is the first responder, so I just made the dev menu view be the first responder, so the other view will lost its focus and the keyboard will be dismissed. # Test Plan Tested by opening NCL on the example with text input, pressed on the text input to give him a focus (keyboard shows up) and then shaked the device to open dev menu. Result: keyboard has been dismissed, dev menu has shown up.
[ios][home] Redesign DevMenu on iOS (#6793)# Why Part of #6521 # How - Refactored JS code responsible for rendering DevMenu and converted it to TypeScript. - Redesigned DevMenu to be a b
[ios][home] Redesign DevMenu on iOS (#6793)# Why Part of #6521 # How - Refactored JS code responsible for rendering DevMenu and converted it to TypeScript. - Redesigned DevMenu to be a bottom sheet instead of a modal to improve user experience. - Upgraded `react-navigation-stack` to `^2.0.15`. - In/out DevMenu animations are now controlled by JavaScript side (less native code). - Moved Kernel's module methods related to DevMenu to separate `DevMenuModule` file (I think it makes the code using it clearer). - `Nux` wasn't clear to me what it is and what it does, so I suggest renaming it to `Onboarding`. - Prepared some stuff to be used on Android as well (Android support will come in a separate PR). - Removed legacy menu gesture from both native code and from home user settings. - Published dev home with those changes. # Test Plan - [x] Test on experience in debug mode - [x] Test on experience in production mode - [x] Test on snacks - [x] Test on older SDKs - [x] Test on simulators - [x] Test that onboarding shows up once you open the experience for the first time or you didn't accept it yet (clicked `Got it` button). # Demo Expanding/collapsing demo on the left, onboarding screen on the right.  
[expo] Remove unused dev menu (#6249)# Why To clean up some technical debt. # How Removed `addDevMenu` functionality from Home and then all the leftovers from native side. # Test Plan
[expo] Remove unused dev menu (#6249)# Why To clean up some technical debt. # How Removed `addDevMenu` functionality from Home and then all the leftovers from native side. # Test Plan CI should build the apps.
[home][ncl][ios] Fix menu view status bar updating and set appropriate status bar color in ncl app
Clean up most of the implicit retain self warningsThere are some still left in vendored code or in places I wasn't sure about.Helps with https://github.com/expo/universe/issues/2581fbshipit-sour
Clean up most of the implicit retain self warningsThere are some still left in vendored code or in places I wasn't sure about.Helps with https://github.com/expo/universe/issues/2581fbshipit-source-id: 97d159f
make modals play well with expo menu (#2379)fbshipit-source-id: 251bdc0
Organize AppLoader, fix AppLoader testsfbshipit-source-id: e80e891
Clean up home diagnostics vcfbshipit-source-id: 5549cdb
Configure home `updates` behavior, use embedded bundle when availablefbshipit-source-id: c7acd02
Make button border not harshfbshipit-source-id: a475074
Fix menu when screen orientation changesfbshipit-source-id: ed91fb1
Support legacy long press gesturefbshipit-source-id: bf3aba5
Support legacy force touch gesturefbshipit-source-id: 91e2770
Add native legacy expo menu buttonfbshipit-source-id: bdd8749
12