From e60099e9096b47580b959618ec982d303979ff7d Mon Sep 17 00:00:00 2001 From: Gabriel Donadel Dall'Agnol Date: Mon, 8 Jan 2024 19:19:41 -0300 Subject: [PATCH] upgrade react-native 0.73.2 (#26308) # Why Follow up https://github.com/expo/expo/pull/25998 for react-native 0.73 upgrade Closes ENG-11013 # How - update package versions - `react-native 0.73.1 -> 0.73.2` # Test Plan - bare-expo ios / android - Expo Go - fabric ios / android - ci passed # Checklist - [ ] 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). --- apps/bare-expo/ios/Podfile.lock | 454 +++++++-------- apps/bare-expo/package.json | 2 +- apps/eas-expo-go/eas.json | 2 +- apps/fabric-tester/ios/Podfile.lock | 534 +++++++++--------- apps/fabric-tester/package.json | 2 +- apps/jest-expo-mock-generator/package.json | 2 +- apps/native-component-list/package.json | 2 +- apps/native-tests/ios/Podfile.lock | 528 +++++++++-------- apps/native-tests/package.json | 2 +- apps/router-e2e/package.json | 2 +- apps/sandbox/package.json | 2 +- apps/test-suite/package.json | 2 +- .../diffs/template-bare-minimum/diffInfo.json | 2 +- .../template-bare-minimum/raw/45..49.diff | 14 +- .../template-bare-minimum/raw/45..50.diff | 65 ++- .../raw/45..unversioned.diff | 32 +- .../template-bare-minimum/raw/46..49.diff | 14 +- .../template-bare-minimum/raw/46..50.diff | 65 ++- .../raw/46..unversioned.diff | 32 +- .../template-bare-minimum/raw/47..49.diff | 14 +- .../template-bare-minimum/raw/47..50.diff | 61 +- .../raw/47..unversioned.diff | 32 +- .../template-bare-minimum/raw/48..49.diff | 16 +- .../template-bare-minimum/raw/48..50.diff | 71 ++- .../raw/48..unversioned.diff | 32 +- .../template-bare-minimum/raw/49..50.diff | 81 ++- .../raw/49..unversioned.diff | 48 +- .../raw/50..unversioned.diff | 105 ++-- home/package.json | 2 +- ios/Podfile.lock | 470 +++++++-------- package.json | 2 +- packages/expo-dev-launcher/CHANGELOG.md | 4 + .../assets/expo_dev_launcher_android.bundle | 2 +- packages/expo-dev-launcher/ios/main.jsbundle | 2 +- packages/expo-dev-launcher/package.json | 2 +- packages/expo-dev-menu/CHANGELOG.md | 4 + .../assets/EXDevMenuApp.android.js | 2 +- .../expo-dev-menu/assets/EXDevMenuApp.ios.js | 2 +- packages/expo-dev-menu/package.json | 2 +- packages/expo/CHANGELOG.md | 4 + packages/expo/bundledNativeModules.json | 2 +- packages/expo/package.json | 2 +- react-native-lab/react-native | 2 +- .../expo-template-bare-minimum/package.json | 2 +- .../package.json | 2 +- templates/expo-template-blank/package.json | 2 +- templates/expo-template-tabs/package.json | 2 +- yarn.lock | 355 +++++------- 48 files changed, 1615 insertions(+), 1470 deletions(-) diff --git a/apps/bare-expo/ios/Podfile.lock b/apps/bare-expo/ios/Podfile.lock index c6c3e6aba75a3..be06b789ba8c3 100644 --- a/apps/bare-expo/ios/Podfile.lock +++ b/apps/bare-expo/ios/Podfile.lock @@ -278,14 +278,14 @@ PODS: - ExpoModulesCore - UMAppLoader - EXUpdatesInterface (0.15.1) - - FBLazyVector (0.73.1) - - FBReactNativeSpec (0.73.1): + - FBLazyVector (0.73.2) + - FBReactNativeSpec (0.73.2): - RCT-Folly (= 2022.05.16.00) - - RCTRequired (= 0.73.1) - - RCTTypeSafety (= 0.73.1) - - React-Core (= 0.73.1) - - React-jsi (= 0.73.1) - - ReactCommon/turbomodule/core (= 0.73.1) + - RCTRequired (= 0.73.2) + - RCTTypeSafety (= 0.73.2) + - React-Core (= 0.73.2) + - React-jsi (= 0.73.2) + - ReactCommon/turbomodule/core (= 0.73.2) - fmt (6.2.1) - glog (0.3.5) - GoogleMaps (7.3.0): @@ -294,9 +294,9 @@ PODS: - GoogleMaps/Maps (7.3.0): - GoogleMaps/Base - GooglePlaces (7.3.0) - - hermes-engine (0.73.1): - - hermes-engine/Pre-built (= 0.73.1) - - hermes-engine/Pre-built (0.73.1) + - hermes-engine (0.73.2): + - hermes-engine/Pre-built (= 0.73.2) + - hermes-engine/Pre-built (0.73.2) - libaom (3.0.0): - libvmaf (>= 2.2.0) - libavif (0.11.1): @@ -356,26 +356,26 @@ PODS: - fmt (~> 6.2.1) - glog - libevent - - RCTRequired (0.73.1) - - RCTTypeSafety (0.73.1): - - FBLazyVector (= 0.73.1) - - RCTRequired (= 0.73.1) - - React-Core (= 0.73.1) - - React (0.73.1): - - React-Core (= 0.73.1) - - React-Core/DevSupport (= 0.73.1) - - React-Core/RCTWebSocket (= 0.73.1) - - React-RCTActionSheet (= 0.73.1) - - React-RCTAnimation (= 0.73.1) - - React-RCTBlob (= 0.73.1) - - React-RCTImage (= 0.73.1) - - React-RCTLinking (= 0.73.1) - - React-RCTNetwork (= 0.73.1) - - React-RCTSettings (= 0.73.1) - - React-RCTText (= 0.73.1) - - React-RCTVibration (= 0.73.1) - - React-callinvoker (0.73.1) - - React-Codegen (0.73.1): + - RCTRequired (0.73.2) + - RCTTypeSafety (0.73.2): + - FBLazyVector (= 0.73.2) + - RCTRequired (= 0.73.2) + - React-Core (= 0.73.2) + - React (0.73.2): + - React-Core (= 0.73.2) + - React-Core/DevSupport (= 0.73.2) + - React-Core/RCTWebSocket (= 0.73.2) + - React-RCTActionSheet (= 0.73.2) + - React-RCTAnimation (= 0.73.2) + - React-RCTBlob (= 0.73.2) + - React-RCTImage (= 0.73.2) + - React-RCTLinking (= 0.73.2) + - React-RCTNetwork (= 0.73.2) + - React-RCTSettings (= 0.73.2) + - React-RCTText (= 0.73.2) + - React-RCTVibration (= 0.73.2) + - React-callinvoker (0.73.2) + - React-Codegen (0.73.2): - DoubleConversion - FBReactNativeSpec - glog @@ -390,11 +390,11 @@ PODS: - React-rncore - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.73.1): + - React-Core (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) + - React-Core/Default (= 0.73.2) - React-cxxreact - React-hermes - React-jsi @@ -404,7 +404,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/CoreModulesHeaders (0.73.1): + - React-Core/CoreModulesHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -418,7 +418,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/Default (0.73.1): + - React-Core/Default (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -431,23 +431,23 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/DevSupport (0.73.1): + - React-Core/DevSupport (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) - - React-Core/RCTWebSocket (= 0.73.1) + - React-Core/Default (= 0.73.2) + - React-Core/RCTWebSocket (= 0.73.2) - React-cxxreact - React-hermes - React-jsi - React-jsiexecutor - - React-jsinspector (= 0.73.1) + - React-jsinspector (= 0.73.2) - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.73.1): + - React-Core/RCTActionSheetHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -461,7 +461,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTAnimationHeaders (0.73.1): + - React-Core/RCTAnimationHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -475,7 +475,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTBlobHeaders (0.73.1): + - React-Core/RCTBlobHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -489,7 +489,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTImageHeaders (0.73.1): + - React-Core/RCTImageHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -503,7 +503,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTLinkingHeaders (0.73.1): + - React-Core/RCTLinkingHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -517,7 +517,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTNetworkHeaders (0.73.1): + - React-Core/RCTNetworkHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -531,7 +531,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTSettingsHeaders (0.73.1): + - React-Core/RCTSettingsHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -545,7 +545,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTTextHeaders (0.73.1): + - React-Core/RCTTextHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -559,7 +559,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTVibrationHeaders (0.73.1): + - React-Core/RCTVibrationHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -573,11 +573,11 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTWebSocket (0.73.1): + - React-Core/RCTWebSocket (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) + - React-Core/Default (= 0.73.2) - React-cxxreact - React-hermes - React-jsi @@ -587,33 +587,33 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-CoreModules (0.73.1): + - React-CoreModules (0.73.2): - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety (= 0.73.1) + - RCTTypeSafety (= 0.73.2) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.73.1) - - React-jsi (= 0.73.1) + - React-Core/CoreModulesHeaders (= 0.73.2) + - React-jsi (= 0.73.2) - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.73.1) + - React-RCTImage (= 0.73.2) - ReactCommon - SocketRocket (= 0.6.1) - - React-cxxreact (0.73.1): + - React-cxxreact (0.73.2): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-debug (= 0.73.1) - - React-jsi (= 0.73.1) - - React-jsinspector (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - React-runtimeexecutor (= 0.73.1) - - React-debug (0.73.1) - - React-Fabric (0.73.1): + - React-callinvoker (= 0.73.2) + - React-debug (= 0.73.2) + - React-jsi (= 0.73.2) + - React-jsinspector (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) + - React-runtimeexecutor (= 0.73.2) + - React-debug (0.73.2) + - React-Fabric (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -624,20 +624,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.73.1) - - React-Fabric/attributedstring (= 0.73.1) - - React-Fabric/componentregistry (= 0.73.1) - - React-Fabric/componentregistrynative (= 0.73.1) - - React-Fabric/components (= 0.73.1) - - React-Fabric/core (= 0.73.1) - - React-Fabric/imagemanager (= 0.73.1) - - React-Fabric/leakchecker (= 0.73.1) - - React-Fabric/mounting (= 0.73.1) - - React-Fabric/scheduler (= 0.73.1) - - React-Fabric/telemetry (= 0.73.1) - - React-Fabric/templateprocessor (= 0.73.1) - - React-Fabric/textlayoutmanager (= 0.73.1) - - React-Fabric/uimanager (= 0.73.1) + - React-Fabric/animations (= 0.73.2) + - React-Fabric/attributedstring (= 0.73.2) + - React-Fabric/componentregistry (= 0.73.2) + - React-Fabric/componentregistrynative (= 0.73.2) + - React-Fabric/components (= 0.73.2) + - React-Fabric/core (= 0.73.2) + - React-Fabric/imagemanager (= 0.73.2) + - React-Fabric/leakchecker (= 0.73.2) + - React-Fabric/mounting (= 0.73.2) + - React-Fabric/scheduler (= 0.73.2) + - React-Fabric/telemetry (= 0.73.2) + - React-Fabric/templateprocessor (= 0.73.2) + - React-Fabric/textlayoutmanager (= 0.73.2) + - React-Fabric/uimanager (= 0.73.2) - React-graphics - React-jsi - React-jsiexecutor @@ -646,7 +646,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.73.1): + - React-Fabric/animations (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -665,7 +665,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.73.1): + - React-Fabric/attributedstring (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -684,7 +684,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.73.1): + - React-Fabric/componentregistry (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -703,7 +703,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.73.1): + - React-Fabric/componentregistrynative (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -722,7 +722,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.73.1): + - React-Fabric/components (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -733,17 +733,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.73.1) - - React-Fabric/components/legacyviewmanagerinterop (= 0.73.1) - - React-Fabric/components/modal (= 0.73.1) - - React-Fabric/components/rncore (= 0.73.1) - - React-Fabric/components/root (= 0.73.1) - - React-Fabric/components/safeareaview (= 0.73.1) - - React-Fabric/components/scrollview (= 0.73.1) - - React-Fabric/components/text (= 0.73.1) - - React-Fabric/components/textinput (= 0.73.1) - - React-Fabric/components/unimplementedview (= 0.73.1) - - React-Fabric/components/view (= 0.73.1) + - React-Fabric/components/inputaccessory (= 0.73.2) + - React-Fabric/components/legacyviewmanagerinterop (= 0.73.2) + - React-Fabric/components/modal (= 0.73.2) + - React-Fabric/components/rncore (= 0.73.2) + - React-Fabric/components/root (= 0.73.2) + - React-Fabric/components/safeareaview (= 0.73.2) + - React-Fabric/components/scrollview (= 0.73.2) + - React-Fabric/components/text (= 0.73.2) + - React-Fabric/components/textinput (= 0.73.2) + - React-Fabric/components/unimplementedview (= 0.73.2) + - React-Fabric/components/view (= 0.73.2) - React-graphics - React-jsi - React-jsiexecutor @@ -752,7 +752,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.73.1): + - React-Fabric/components/inputaccessory (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -771,7 +771,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.73.1): + - React-Fabric/components/legacyviewmanagerinterop (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -790,7 +790,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.73.1): + - React-Fabric/components/modal (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -809,7 +809,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.73.1): + - React-Fabric/components/rncore (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -828,7 +828,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.73.1): + - React-Fabric/components/root (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -847,7 +847,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.73.1): + - React-Fabric/components/safeareaview (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -866,7 +866,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.73.1): + - React-Fabric/components/scrollview (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -885,7 +885,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.73.1): + - React-Fabric/components/text (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -904,7 +904,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.73.1): + - React-Fabric/components/textinput (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -923,7 +923,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.73.1): + - React-Fabric/components/unimplementedview (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -942,7 +942,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.73.1): + - React-Fabric/components/view (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -962,7 +962,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.73.1): + - React-Fabric/core (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -981,7 +981,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.73.1): + - React-Fabric/imagemanager (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1000,7 +1000,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.73.1): + - React-Fabric/leakchecker (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1019,7 +1019,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.73.1): + - React-Fabric/mounting (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1038,7 +1038,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.73.1): + - React-Fabric/scheduler (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1057,7 +1057,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.73.1): + - React-Fabric/telemetry (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1076,7 +1076,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.73.1): + - React-Fabric/templateprocessor (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1095,7 +1095,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.73.1): + - React-Fabric/textlayoutmanager (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1115,7 +1115,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.73.1): + - React-Fabric/uimanager (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1134,42 +1134,42 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.73.1): + - React-FabricImage (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired (= 0.73.1) - - RCTTypeSafety (= 0.73.1) + - RCTRequired (= 0.73.2) + - RCTTypeSafety (= 0.73.2) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.73.1) + - React-jsiexecutor (= 0.73.2) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-graphics (0.73.1): + - React-graphics (0.73.2): - glog - RCT-Folly/Fabric (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) + - React-Core/Default (= 0.73.2) - React-utils - - React-hermes (0.73.1): + - React-hermes (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - RCT-Folly/Futures (= 2022.05.16.00) - - React-cxxreact (= 0.73.1) + - React-cxxreact (= 0.73.2) - React-jsi - - React-jsiexecutor (= 0.73.1) - - React-jsinspector (= 0.73.1) - - React-perflogger (= 0.73.1) - - React-ImageManager (0.73.1): + - React-jsiexecutor (= 0.73.2) + - React-jsinspector (= 0.73.2) + - React-perflogger (= 0.73.2) + - React-ImageManager (0.73.2): - glog - RCT-Folly/Fabric - React-Core/Default @@ -1178,31 +1178,31 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.73.1): + - React-jserrorhandler (0.73.2): - RCT-Folly/Fabric (= 2022.05.16.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.73.1): + - React-jsi (0.73.2): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-jsiexecutor (0.73.1): + - React-jsiexecutor (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-perflogger (= 0.73.1) - - React-jsinspector (0.73.1) - - React-logger (0.73.1): + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-perflogger (= 0.73.2) + - React-jsinspector (0.73.2) + - React-logger (0.73.2): - glog - - React-Mapbuffer (0.73.1): + - React-Mapbuffer (0.73.2): - glog - React-debug - react-native-netinfo (11.1.0): @@ -1221,8 +1221,8 @@ PODS: - React-Core - react-native-webview (13.6.3): - React-Core - - React-nativeconfig (0.73.1) - - React-NativeModulesApple (0.73.1): + - React-nativeconfig (0.73.2) + - React-NativeModulesApple (0.73.2): - glog - hermes-engine - React-callinvoker @@ -1232,10 +1232,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.73.1) - - React-RCTActionSheet (0.73.1): - - React-Core/RCTActionSheetHeaders (= 0.73.1) - - React-RCTAnimation (0.73.1): + - React-perflogger (0.73.2) + - React-RCTActionSheet (0.73.2): + - React-Core/RCTActionSheetHeaders (= 0.73.2) + - React-RCTAnimation (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1243,7 +1243,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.73.1): + - React-RCTAppDelegate (0.73.2): - RCT-Folly - RCTRequired - RCTTypeSafety @@ -1257,7 +1257,7 @@ PODS: - React-RCTNetwork - React-runtimescheduler - ReactCommon - - React-RCTBlob (0.73.1): + - React-RCTBlob (0.73.2): - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Codegen @@ -1267,7 +1267,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.73.1): + - React-RCTFabric (0.73.2): - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) @@ -1285,7 +1285,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.73.1): + - React-RCTImage (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1294,14 +1294,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.73.1): + - React-RCTLinking (0.73.2): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.73.1) - - React-jsi (= 0.73.1) + - React-Core/RCTLinkingHeaders (= 0.73.2) + - React-jsi (= 0.73.2) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.73.1) - - React-RCTNetwork (0.73.1): + - ReactCommon/turbomodule/core (= 0.73.2) + - React-RCTNetwork (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1309,7 +1309,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.73.1): + - React-RCTSettings (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1317,25 +1317,25 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTText (0.73.1): - - React-Core/RCTTextHeaders (= 0.73.1) + - React-RCTText (0.73.2): + - React-Core/RCTTextHeaders (= 0.73.2) - Yoga - - React-RCTVibration (0.73.1): + - React-RCTVibration (0.73.2): - RCT-Folly (= 2022.05.16.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.73.1): + - React-rendererdebug (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - RCT-Folly (= 2022.05.16.00) - React-debug - - React-rncore (0.73.1) - - React-runtimeexecutor (0.73.1): - - React-jsi (= 0.73.1) - - React-runtimescheduler (0.73.1): + - React-rncore (0.73.2) + - React-runtimeexecutor (0.73.2): + - React-jsi (= 0.73.2) + - React-runtimescheduler (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1346,48 +1346,48 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.73.1): + - React-utils (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-debug - - ReactCommon (0.73.1): - - React-logger (= 0.73.1) - - ReactCommon/turbomodule (= 0.73.1) - - ReactCommon/turbomodule (0.73.1): + - ReactCommon (0.73.2): + - React-logger (= 0.73.2) + - ReactCommon/turbomodule (= 0.73.2) + - ReactCommon/turbomodule (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - ReactCommon/turbomodule/bridging (= 0.73.1) - - ReactCommon/turbomodule/core (= 0.73.1) - - ReactCommon/turbomodule/bridging (0.73.1): + - React-callinvoker (= 0.73.2) + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) + - ReactCommon/turbomodule/bridging (= 0.73.2) + - ReactCommon/turbomodule/core (= 0.73.2) + - ReactCommon/turbomodule/bridging (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - ReactCommon/turbomodule/core (0.73.1): + - React-callinvoker (= 0.73.2) + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) + - ReactCommon/turbomodule/core (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) + - React-callinvoker (= 0.73.2) + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) - RNCAsyncStorage (1.18.2): - React-Core - RNCMaskedView (0.3.0): @@ -2003,13 +2003,13 @@ SPEC CHECKSUMS: EXStructuredHeaders: 3b8ec10c65a4607dc976b6cdfa5136d2ea2ece19 EXTaskManager: 81b2dfaaba6d9f9a4bc3e3e2a786a98004eb9e98 EXUpdatesInterface: 95d6bc086d7e043c1f33e30762ebc16a5cf4b153 - FBLazyVector: 2296bacb2fa157a43991048b0a9d71c1c8b65083 - FBReactNativeSpec: f68bc80cbb32aade878e9fa5884d4d7895e32334 + FBLazyVector: fbc4957d9aa695250b55d879c1d86f79d7e69ab4 + FBReactNativeSpec: 1e66a578650a10e698b177a414a17e25fc25f1d0 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 GoogleMaps: a146f275ee429d14822178c7a841c03366ec92a1 GooglePlaces: 0609463845250bbadafa1739938181e54dece439 - hermes-engine: 34df9d5034e90bd9bf1505e1ca198760373935af + hermes-engine: b361c9ef5ef3cda53f66e195599b47e1f84ffa35 libaom: 144606b1da4b5915a1054383c3a4459ccdb3c661 libavif: 84bbb62fb232c3018d6f1bab79beea87e35de7b7 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 @@ -2019,26 +2019,26 @@ SPEC CHECKSUMS: OHHTTPStubs: 90eac6d8f2c18317baeca36698523dc67c513831 Quick: d32871931c05547cb4e0bc9009d66a18b50d8558 RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0 - RCTRequired: 6dda55e483f75d2b43781d8ad5bd7df276a50981 - RCTTypeSafety: df0f2632f4e89938b9b9f6152b5e6c66fc6e969e - React: 5373769b4a544945831d9c5d455212186d68f763 - React-callinvoker: 2c54fb73b27fdf9bd7772f36dcda23d76e0e7d14 - React-Codegen: 65b426d1c3185df0e1d901ff56a23d94e1974791 - React-Core: f0e1e99728ebdb785286b0c4c55f0f923a9d826f - React-CoreModules: 1ee65dbd93429c1c6ec3de069d75f5fde05db5d5 - React-cxxreact: dc0f1968914a6c7da62b1287c1eb84dd3ab0a7bb - React-debug: 52cced4b9e280d03825d687925898cf65bd8712d - React-Fabric: 1805f148aedab4bf31c48c8c3bae6045aeb75275 - React-FabricImage: ee5ee9abe4ab05043fdce515e46f396b025a5028 - React-graphics: a1652cbea6f779a1cf2692987d9c94efcd6e4497 - React-hermes: 12499684a1005213e7ed71a94467ef72cf24320c - React-ImageManager: 5e50ba59059ca7547c8968f936e4ae7a50ff7384 - React-jserrorhandler: 27154e650959506a4455384f3aea134eba62335b - React-jsi: b03ac7f7af1371e3e81e8ac894af4e46454dee79 - React-jsiexecutor: ae30693413a40b7c72f25da2e794997754a780bf - React-jsinspector: 369048694e39942063c5d08e9580b43e2edd379a - React-logger: e0c1e918d9588a9f39c9bc62d9d6bfe9ca238d9d - React-Mapbuffer: 9731a0a63ebaf8976014623c4d637744d7353a7c + RCTRequired: 9b1e7e262745fb671e33c51c1078d093bd30e322 + RCTTypeSafety: a759e3b086eccf3e2cbf2493d22f28e082f958e6 + React: 805f5dd55bbdb92c36b4914c64aaae4c97d358dc + React-callinvoker: 6a697867607c990c2c2c085296ee32cfb5e47c01 + React-Codegen: c4447ffa339f4e7a22e0c9c800eec9084f31899c + React-Core: 49f66fecc7695464e9b7bc7dc7cd9473d2c60584 + React-CoreModules: 710e7c557a1a8180bd1645f5b4bf79f4bd3f5417 + React-cxxreact: 345857b5e4be000c0527df78be3b41a0677a20ce + React-debug: f1637bce73342b2f6eee4982508fdfb088667a87 + React-Fabric: 4dfcff8f14d8e5a7a60b11b7862dad2a9d99c65b + React-FabricImage: 4a9e9510b7f28bbde6a743b18c0cb941a142e938 + React-graphics: dd5af9d8b1b45171fd6933e19fed522f373bcb10 + React-hermes: a52d183a5cf8ccb7020ce3df4275b89d01e6b53e + React-ImageManager: c5b7db131eff71443d7f3a8d686fd841d18befd3 + React-jserrorhandler: 97a6a12e2344c3c4fdd7ba1edefb005215c732f8 + React-jsi: a182068133f80918cd0eec77875abaf943a0b6be + React-jsiexecutor: dacd00ce8a18fc00a0ae6c25e3015a6437e5d2e8 + React-jsinspector: 03644c063fc3621c9a4e8bf263a8150909129618 + React-logger: 66b168e2b2bee57bd8ce9e69f739d805732a5570 + React-Mapbuffer: 9ee041e1d7be96da6d76a251f92e72b711c651d6 react-native-netinfo: 3aa5637c18834966e0c932de8ae1ae56fea20a97 react-native-pager-view: d81ab2060b9caf57ca8c3a0d57467ff407cdb825 react-native-safe-area-context: 0ee144a6170530ccc37a0fd9388e28d06f516a89 @@ -2046,26 +2046,26 @@ SPEC CHECKSUMS: react-native-slider: 33b8d190b59d4f67a541061bb91775d53d617d9d react-native-view-shot: 6b7ed61d77d88580fed10954d45fad0eb2d47688 react-native-webview: 88293a0f23eca8465c0433c023ec632930e644d0 - React-nativeconfig: 37aecd26d64b79327c3f10e43b2e9a6c425e0a60 - React-NativeModulesApple: 9ca6d2eaa1dd5606588262195b46d0774bdec83a - React-perflogger: 5ffc4d6ccb74eaac7b8b2867e58a447232483d6d - React-RCTActionSheet: eca2174431ff2cc14b7fb847f92b89e081d27541 - React-RCTAnimation: a039b2416aa0a55e6fa7c8cd0a2e870bfffc4caa - React-RCTAppDelegate: be26c542774d36211b1562a9278c72f821887103 - React-RCTBlob: 0d4892d25e57fbbce13e221fff7e4c9567a2ace3 - React-RCTFabric: d11187cac1f4e0141738805f7011145c7786a369 - React-RCTImage: 5b70891cb2adb75bbdc5ad8e6cc56c48e95d90e5 - React-RCTLinking: 5fe4756ab016e9f200e93e771bd6e43ea05f8f50 - React-RCTNetwork: 877b4a85f71c63cf719574f187e3333c1e15a425 - React-RCTSettings: ae477a33a04389f5d42486004b09b04eeba64fd5 - React-RCTText: 08dd5d7173ed279d3468b333217afb22bb7948c3 - React-RCTVibration: 2f906cd58dfd44ff5e4ca4fc0edd8740dceda6be - React-rendererdebug: e3db5db14234d9ee46d2e58fff3b8652ee7da6bc - React-rncore: 6025dc7b0fe1310826f4ccd459120d5b1a385aeb - React-runtimeexecutor: d87e84455640dc5685e87563c2eaef90e5df8752 - React-runtimescheduler: 93a4c84e46a85c3fc9678abd4f6923b785226ea7 - React-utils: debda2c206770ee2785bdebb7f16d8db9f18838a - ReactCommon: ddb128564dcbfa0287d3d1a2d10f8c7457c971f6 + React-nativeconfig: d753fbbc8cecc8ae413d615599ac378bbf6999bb + React-NativeModulesApple: 964f4eeab1b4325e8b6a799cf4444c3fd4eb0a9c + React-perflogger: 29efe63b7ef5fbaaa50ef6eaa92482f98a24b97e + React-RCTActionSheet: 69134c62aefd362027b20da01cd5d14ffd39db3f + React-RCTAnimation: 3b5a57087c7a5e727855b803d643ac1d445488f5 + React-RCTAppDelegate: a3ce9b69c0620a1717d08e826d4dc7ad8a3a3cae + React-RCTBlob: 26ea660f2be1e6de62f2d2ad9a9c7b9bfabb786f + React-RCTFabric: bb6dbbff2f80b9489f8b2f1d2554aa040aa2e3cd + React-RCTImage: 27b27f4663df9e776d0549ed2f3536213e793f1b + React-RCTLinking: 962880ce9d0e2ea83fd182953538fc4ed757d4da + React-RCTNetwork: 73a756b44d4ad584bae13a5f1484e3ce12accac8 + React-RCTSettings: 6d7f8d807f05de3d01cfb182d14e5f400716faac + React-RCTText: 73006e95ca359595c2510c1c0114027c85a6ddd3 + React-RCTVibration: 599f427f9cbdd9c4bf38959ca020e8fef0717211 + React-rendererdebug: f2946e0a1c3b906e71555a7c4a39aa6a6c0e639b + React-rncore: e79d67112317f245db53e75868ad826582ab3482 + React-runtimeexecutor: 2d1f64f58193f00a3ad71d3f89c2bfbfe11cf5a5 + React-runtimescheduler: df8945a656356ff10f58f65a70820478bfcf33ad + React-utils: f5bc61e7ea3325c0732ae2d755f4441940163b85 + ReactCommon: 45b5d4f784e869c44a6f5a8fad5b114ca8f78c53 RNCAsyncStorage: ddc4ee162bfd41b0d2c68bf2d95acd81dd7f1f93 RNCMaskedView: f7c74478c83c4fdfc5cf4df51f80c0dd5cf125c6 RNCPicker: 529d564911e93598cc399b56cc0769ce3675f8c8 @@ -2082,7 +2082,7 @@ SPEC CHECKSUMS: SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 sqlite3: f163dbbb7aa3339ad8fc622782c2d9d7b72f7e9c UMAppLoader: 5df85360d65cabaef544be5424ac64672e648482 - Yoga: 2b33a7ac96c58cdaa7b810948fc6a2a76ed2d108 + Yoga: e64aa65de36c0832d04e8c7bd614396c77a80047 ZXingObjC: fdbb269f25dd2032da343e06f10224d62f537bdb PODFILE CHECKSUM: f25025f67ea11b94e7d9346c35ac31dfcd6677fc diff --git a/apps/bare-expo/package.json b/apps/bare-expo/package.json index a5ffe42eac8d8..ddcead3bff615 100644 --- a/apps/bare-expo/package.json +++ b/apps/bare-expo/package.json @@ -81,7 +81,7 @@ "native-component-list": "*", "react": "18.2.0", "react-dom": "18.2.0", - "react-native": "0.73.1", + "react-native": "0.73.2", "react-native-gesture-handler": "~2.14.0", "react-native-pager-view": "6.2.3", "react-native-reanimated": "~3.6.0", diff --git a/apps/eas-expo-go/eas.json b/apps/eas-expo-go/eas.json index 7d9179cde83d2..838eb95772eac 100644 --- a/apps/eas-expo-go/eas.json +++ b/apps/eas-expo-go/eas.json @@ -23,7 +23,7 @@ }, "ios": { "cache": { - "key": "sdk50-0.73.1", + "key": "sdk50-0.73.2", "customPaths": ["../../ios/Pods"] }, "image": "macos-ventura-13.6-xcode-15.0", diff --git a/apps/fabric-tester/ios/Podfile.lock b/apps/fabric-tester/ios/Podfile.lock index 680cc78066619..5e713e8f032ba 100644 --- a/apps/fabric-tester/ios/Podfile.lock +++ b/apps/fabric-tester/ios/Podfile.lock @@ -1,27 +1,27 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - EXAV (13.10.0): + - EXAV (13.10.1): - ExpoModulesCore - ReactCommon/turbomodule/core - - EXConstants (15.4.1): + - EXConstants (15.4.2): - ExpoModulesCore - EXFont (11.10.0): - ExpoModulesCore - - EXJSONUtils (0.12.0) + - EXJSONUtils (0.12.1) - EXManifests (0.13.0): - ExpoModulesCore - - Expo (50.0.0-preview.4): + - Expo (50.0.0-preview.8): - ExpoModulesCore - - expo-dev-client (3.3.2): + - expo-dev-client (3.3.4): - EXManifests - expo-dev-launcher - expo-dev-menu - expo-dev-menu-interface - EXUpdatesInterface - - expo-dev-launcher (3.6.0): + - expo-dev-launcher (3.6.1): - EXManifests - - expo-dev-launcher/Main (= 3.6.0) + - expo-dev-launcher/Main (= 3.6.1) - expo-dev-menu - expo-dev-menu-interface - ExpoModulesCore @@ -45,7 +45,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - expo-dev-launcher/Main (3.6.0): + - expo-dev-launcher/Main (3.6.1): - EXManifests - expo-dev-launcher/Unsafe - expo-dev-menu @@ -71,7 +71,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - expo-dev-launcher/Unsafe (3.6.0): + - expo-dev-launcher/Unsafe (3.6.1): - EXManifests - expo-dev-menu - expo-dev-menu-interface @@ -96,9 +96,9 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - expo-dev-menu (4.5.1): - - expo-dev-menu/Main (= 4.5.1) - - expo-dev-menu/ReactNativeCompatibles (= 4.5.1) + - expo-dev-menu (4.5.2): + - expo-dev-menu/Main (= 4.5.2) + - expo-dev-menu/ReactNativeCompatibles (= 4.5.2) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -117,8 +117,8 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - expo-dev-menu-interface (1.7.0) - - expo-dev-menu/Main (4.5.1): + - expo-dev-menu-interface (1.7.1) + - expo-dev-menu/Main (4.5.2): - EXManifests - expo-dev-menu-interface - expo-dev-menu/Vendored @@ -141,7 +141,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - expo-dev-menu/ReactNativeCompatibles (4.5.1): + - expo-dev-menu/ReactNativeCompatibles (4.5.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -160,7 +160,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - expo-dev-menu/SafeAreaView (4.5.1): + - expo-dev-menu/SafeAreaView (4.5.2): - ExpoModulesCore - glog - hermes-engine @@ -180,7 +180,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - expo-dev-menu/Vendored (4.5.1): + - expo-dev-menu/Vendored (4.5.2): - expo-dev-menu/SafeAreaView - glog - hermes-engine @@ -202,15 +202,15 @@ PODS: - Yoga - ExpoAppleAuthentication (6.3.0): - ExpoModulesCore - - ExpoBlur (12.9.0): + - ExpoBlur (12.9.1): - ExpoModulesCore - - ExpoCamera (14.0.0): + - ExpoCamera (14.0.1): - ExpoModulesCore - ZXingObjC/OneD - ZXingObjC/PDF417 - - ExpoFileSystem (16.0.1): + - ExpoFileSystem (16.0.2): - ExpoModulesCore - - ExpoImage (1.10.0): + - ExpoImage (1.10.1): - ExpoModulesCore - SDWebImage (~> 5.17.0) - SDWebImageAVIFCoder (~> 0.10.1) @@ -220,7 +220,7 @@ PODS: - ExpoModulesCore - ExpoLinearGradient (12.7.0): - ExpoModulesCore - - ExpoModulesCore (1.11.2): + - ExpoModulesCore (1.11.4): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -240,7 +240,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - EXSplashScreen (0.26.0): + - EXSplashScreen (0.26.1): - ExpoModulesCore - glog - hermes-engine @@ -260,13 +260,13 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - EXUpdatesInterface (0.15.0) - - FBLazyVector (0.73.1) + - EXUpdatesInterface (0.15.1) + - FBLazyVector (0.73.2) - fmt (6.2.1) - glog (0.3.5) - - hermes-engine (0.73.1): - - hermes-engine/Pre-built (= 0.73.1) - - hermes-engine/Pre-built (0.73.1) + - hermes-engine (0.73.2): + - hermes-engine/Pre-built (= 0.73.2) + - hermes-engine/Pre-built (0.73.2) - libaom (3.0.0): - libvmaf (>= 2.2.0) - libavif (0.11.1): @@ -311,26 +311,26 @@ PODS: - fmt (~> 6.2.1) - glog - libevent - - RCTRequired (0.73.1) - - RCTTypeSafety (0.73.1): - - FBLazyVector (= 0.73.1) - - RCTRequired (= 0.73.1) - - React-Core (= 0.73.1) - - React (0.73.1): - - React-Core (= 0.73.1) - - React-Core/DevSupport (= 0.73.1) - - React-Core/RCTWebSocket (= 0.73.1) - - React-RCTActionSheet (= 0.73.1) - - React-RCTAnimation (= 0.73.1) - - React-RCTBlob (= 0.73.1) - - React-RCTImage (= 0.73.1) - - React-RCTLinking (= 0.73.1) - - React-RCTNetwork (= 0.73.1) - - React-RCTSettings (= 0.73.1) - - React-RCTText (= 0.73.1) - - React-RCTVibration (= 0.73.1) - - React-callinvoker (0.73.1) - - React-Codegen (0.73.1): + - RCTRequired (0.73.2) + - RCTTypeSafety (0.73.2): + - FBLazyVector (= 0.73.2) + - RCTRequired (= 0.73.2) + - React-Core (= 0.73.2) + - React (0.73.2): + - React-Core (= 0.73.2) + - React-Core/DevSupport (= 0.73.2) + - React-Core/RCTWebSocket (= 0.73.2) + - React-RCTActionSheet (= 0.73.2) + - React-RCTAnimation (= 0.73.2) + - React-RCTBlob (= 0.73.2) + - React-RCTImage (= 0.73.2) + - React-RCTLinking (= 0.73.2) + - React-RCTNetwork (= 0.73.2) + - React-RCTSettings (= 0.73.2) + - React-RCTText (= 0.73.2) + - React-RCTVibration (= 0.73.2) + - React-callinvoker (0.73.2) + - React-Codegen (0.73.2): - DoubleConversion - glog - hermes-engine @@ -349,11 +349,11 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.73.1): + - React-Core (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) + - React-Core/Default (= 0.73.2) - React-cxxreact - React-hermes - React-jsi @@ -363,7 +363,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/CoreModulesHeaders (0.73.1): + - React-Core/CoreModulesHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -377,7 +377,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/Default (0.73.1): + - React-Core/Default (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -390,23 +390,23 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/DevSupport (0.73.1): + - React-Core/DevSupport (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) - - React-Core/RCTWebSocket (= 0.73.1) + - React-Core/Default (= 0.73.2) + - React-Core/RCTWebSocket (= 0.73.2) - React-cxxreact - React-hermes - React-jsi - React-jsiexecutor - - React-jsinspector (= 0.73.1) + - React-jsinspector (= 0.73.2) - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.73.1): + - React-Core/RCTActionSheetHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -420,7 +420,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTAnimationHeaders (0.73.1): + - React-Core/RCTAnimationHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -434,7 +434,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTBlobHeaders (0.73.1): + - React-Core/RCTBlobHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -448,7 +448,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTImageHeaders (0.73.1): + - React-Core/RCTImageHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -462,7 +462,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTLinkingHeaders (0.73.1): + - React-Core/RCTLinkingHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -476,7 +476,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTNetworkHeaders (0.73.1): + - React-Core/RCTNetworkHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -490,7 +490,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTSettingsHeaders (0.73.1): + - React-Core/RCTSettingsHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -504,7 +504,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTTextHeaders (0.73.1): + - React-Core/RCTTextHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -518,7 +518,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTVibrationHeaders (0.73.1): + - React-Core/RCTVibrationHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -532,11 +532,11 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTWebSocket (0.73.1): + - React-Core/RCTWebSocket (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) + - React-Core/Default (= 0.73.2) - React-cxxreact - React-hermes - React-jsi @@ -546,33 +546,33 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-CoreModules (0.73.1): + - React-CoreModules (0.73.2): - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety (= 0.73.1) + - RCTTypeSafety (= 0.73.2) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.73.1) - - React-jsi (= 0.73.1) + - React-Core/CoreModulesHeaders (= 0.73.2) + - React-jsi (= 0.73.2) - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.73.1) + - React-RCTImage (= 0.73.2) - ReactCommon - SocketRocket (= 0.6.1) - - React-cxxreact (0.73.1): + - React-cxxreact (0.73.2): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-debug (= 0.73.1) - - React-jsi (= 0.73.1) - - React-jsinspector (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - React-runtimeexecutor (= 0.73.1) - - React-debug (0.73.1) - - React-Fabric (0.73.1): + - React-callinvoker (= 0.73.2) + - React-debug (= 0.73.2) + - React-jsi (= 0.73.2) + - React-jsinspector (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) + - React-runtimeexecutor (= 0.73.2) + - React-debug (0.73.2) + - React-Fabric (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -583,20 +583,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.73.1) - - React-Fabric/attributedstring (= 0.73.1) - - React-Fabric/componentregistry (= 0.73.1) - - React-Fabric/componentregistrynative (= 0.73.1) - - React-Fabric/components (= 0.73.1) - - React-Fabric/core (= 0.73.1) - - React-Fabric/imagemanager (= 0.73.1) - - React-Fabric/leakchecker (= 0.73.1) - - React-Fabric/mounting (= 0.73.1) - - React-Fabric/scheduler (= 0.73.1) - - React-Fabric/telemetry (= 0.73.1) - - React-Fabric/templateprocessor (= 0.73.1) - - React-Fabric/textlayoutmanager (= 0.73.1) - - React-Fabric/uimanager (= 0.73.1) + - React-Fabric/animations (= 0.73.2) + - React-Fabric/attributedstring (= 0.73.2) + - React-Fabric/componentregistry (= 0.73.2) + - React-Fabric/componentregistrynative (= 0.73.2) + - React-Fabric/components (= 0.73.2) + - React-Fabric/core (= 0.73.2) + - React-Fabric/imagemanager (= 0.73.2) + - React-Fabric/leakchecker (= 0.73.2) + - React-Fabric/mounting (= 0.73.2) + - React-Fabric/scheduler (= 0.73.2) + - React-Fabric/telemetry (= 0.73.2) + - React-Fabric/templateprocessor (= 0.73.2) + - React-Fabric/textlayoutmanager (= 0.73.2) + - React-Fabric/uimanager (= 0.73.2) - React-graphics - React-jsi - React-jsiexecutor @@ -605,7 +605,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.73.1): + - React-Fabric/animations (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -624,7 +624,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.73.1): + - React-Fabric/attributedstring (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -643,7 +643,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.73.1): + - React-Fabric/componentregistry (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -662,7 +662,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.73.1): + - React-Fabric/componentregistrynative (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -681,7 +681,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.73.1): + - React-Fabric/components (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -692,17 +692,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.73.1) - - React-Fabric/components/legacyviewmanagerinterop (= 0.73.1) - - React-Fabric/components/modal (= 0.73.1) - - React-Fabric/components/rncore (= 0.73.1) - - React-Fabric/components/root (= 0.73.1) - - React-Fabric/components/safeareaview (= 0.73.1) - - React-Fabric/components/scrollview (= 0.73.1) - - React-Fabric/components/text (= 0.73.1) - - React-Fabric/components/textinput (= 0.73.1) - - React-Fabric/components/unimplementedview (= 0.73.1) - - React-Fabric/components/view (= 0.73.1) + - React-Fabric/components/inputaccessory (= 0.73.2) + - React-Fabric/components/legacyviewmanagerinterop (= 0.73.2) + - React-Fabric/components/modal (= 0.73.2) + - React-Fabric/components/rncore (= 0.73.2) + - React-Fabric/components/root (= 0.73.2) + - React-Fabric/components/safeareaview (= 0.73.2) + - React-Fabric/components/scrollview (= 0.73.2) + - React-Fabric/components/text (= 0.73.2) + - React-Fabric/components/textinput (= 0.73.2) + - React-Fabric/components/unimplementedview (= 0.73.2) + - React-Fabric/components/view (= 0.73.2) - React-graphics - React-jsi - React-jsiexecutor @@ -711,7 +711,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.73.1): + - React-Fabric/components/inputaccessory (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -730,7 +730,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.73.1): + - React-Fabric/components/legacyviewmanagerinterop (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -749,7 +749,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.73.1): + - React-Fabric/components/modal (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -768,7 +768,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.73.1): + - React-Fabric/components/rncore (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -787,7 +787,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.73.1): + - React-Fabric/components/root (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -806,7 +806,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.73.1): + - React-Fabric/components/safeareaview (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -825,7 +825,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.73.1): + - React-Fabric/components/scrollview (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -844,7 +844,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.73.1): + - React-Fabric/components/text (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -863,7 +863,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.73.1): + - React-Fabric/components/textinput (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -882,7 +882,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.73.1): + - React-Fabric/components/unimplementedview (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -901,7 +901,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.73.1): + - React-Fabric/components/view (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -921,7 +921,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.73.1): + - React-Fabric/core (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -940,7 +940,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.73.1): + - React-Fabric/imagemanager (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -959,7 +959,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.73.1): + - React-Fabric/leakchecker (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -978,7 +978,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.73.1): + - React-Fabric/mounting (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -997,7 +997,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.73.1): + - React-Fabric/scheduler (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1016,7 +1016,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.73.1): + - React-Fabric/telemetry (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1035,7 +1035,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.73.1): + - React-Fabric/templateprocessor (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1054,7 +1054,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.73.1): + - React-Fabric/textlayoutmanager (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1074,7 +1074,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.73.1): + - React-Fabric/uimanager (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1093,42 +1093,42 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.73.1): + - React-FabricImage (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired (= 0.73.1) - - RCTTypeSafety (= 0.73.1) + - RCTRequired (= 0.73.2) + - RCTTypeSafety (= 0.73.2) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.73.1) + - React-jsiexecutor (= 0.73.2) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-graphics (0.73.1): + - React-graphics (0.73.2): - glog - RCT-Folly/Fabric (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) + - React-Core/Default (= 0.73.2) - React-utils - - React-hermes (0.73.1): + - React-hermes (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - RCT-Folly/Futures (= 2022.05.16.00) - - React-cxxreact (= 0.73.1) + - React-cxxreact (= 0.73.2) - React-jsi - - React-jsiexecutor (= 0.73.1) - - React-jsinspector (= 0.73.1) - - React-perflogger (= 0.73.1) - - React-ImageManager (0.73.1): + - React-jsiexecutor (= 0.73.2) + - React-jsinspector (= 0.73.2) + - React-perflogger (= 0.73.2) + - React-ImageManager (0.73.2): - glog - RCT-Folly/Fabric - React-Core/Default @@ -1137,37 +1137,37 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.73.1): + - React-jserrorhandler (0.73.2): - RCT-Folly/Fabric (= 2022.05.16.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.73.1): + - React-jsi (0.73.2): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-jsiexecutor (0.73.1): + - React-jsiexecutor (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-perflogger (= 0.73.1) - - React-jsinspector (0.73.1) - - React-jsitracing (0.73.1): + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-perflogger (= 0.73.2) + - React-jsinspector (0.73.2) + - React-jsitracing (0.73.2): - React-jsi - - React-logger (0.73.1): + - React-logger (0.73.2): - glog - - React-Mapbuffer (0.73.1): + - React-Mapbuffer (0.73.2): - glog - React-debug - - React-nativeconfig (0.73.1) - - React-NativeModulesApple (0.73.1): + - React-nativeconfig (0.73.2) + - React-NativeModulesApple (0.73.2): - glog - hermes-engine - React-callinvoker @@ -1177,10 +1177,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.73.1) - - React-RCTActionSheet (0.73.1): - - React-Core/RCTActionSheetHeaders (= 0.73.1) - - React-RCTAnimation (0.73.1): + - React-perflogger (0.73.2) + - React-RCTActionSheet (0.73.2): + - React-Core/RCTActionSheetHeaders (= 0.73.2) + - React-RCTAnimation (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1188,7 +1188,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.73.1): + - React-RCTAppDelegate (0.73.2): - RCT-Folly - RCTRequired - RCTTypeSafety @@ -1210,7 +1210,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.73.1): + - React-RCTBlob (0.73.2): - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Codegen @@ -1220,7 +1220,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.73.1): + - React-RCTFabric (0.73.2): - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) @@ -1238,7 +1238,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.73.1): + - React-RCTImage (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1247,14 +1247,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.73.1): + - React-RCTLinking (0.73.2): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.73.1) - - React-jsi (= 0.73.1) + - React-Core/RCTLinkingHeaders (= 0.73.2) + - React-jsi (= 0.73.2) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.73.1) - - React-RCTNetwork (0.73.1): + - ReactCommon/turbomodule/core (= 0.73.2) + - React-RCTNetwork (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1262,7 +1262,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.73.1): + - React-RCTSettings (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1270,23 +1270,23 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTText (0.73.1): - - React-Core/RCTTextHeaders (= 0.73.1) + - React-RCTText (0.73.2): + - React-Core/RCTTextHeaders (= 0.73.2) - Yoga - - React-RCTVibration (0.73.1): + - React-RCTVibration (0.73.2): - RCT-Folly (= 2022.05.16.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.73.1): + - React-rendererdebug (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - RCT-Folly (= 2022.05.16.00) - React-debug - - React-rncore (0.73.1) - - React-RuntimeApple (0.73.1): + - React-rncore (0.73.2) + - React-RuntimeApple (0.73.2): - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - React-callinvoker @@ -1303,7 +1303,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - React-utils - - React-RuntimeCore (0.73.1): + - React-RuntimeCore (0.73.2): - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) @@ -1313,16 +1313,16 @@ PODS: - React-jsiexecutor - React-runtimeexecutor - React-runtimescheduler - - React-runtimeexecutor (0.73.1): - - React-jsi (= 0.73.1) - - React-RuntimeHermes (0.73.1): + - React-runtimeexecutor (0.73.2): + - React-jsi (= 0.73.2) + - React-RuntimeHermes (0.73.2): - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - React-jsi - React-jsitracing - React-nativeconfig - React-utils - - React-runtimescheduler (0.73.1): + - React-runtimescheduler (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1333,48 +1333,48 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.73.1): + - React-utils (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-debug - - ReactCommon (0.73.1): - - React-logger (= 0.73.1) - - ReactCommon/turbomodule (= 0.73.1) - - ReactCommon/turbomodule (0.73.1): + - ReactCommon (0.73.2): + - React-logger (= 0.73.2) + - ReactCommon/turbomodule (= 0.73.2) + - ReactCommon/turbomodule (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - ReactCommon/turbomodule/bridging (= 0.73.1) - - ReactCommon/turbomodule/core (= 0.73.1) - - ReactCommon/turbomodule/bridging (0.73.1): + - React-callinvoker (= 0.73.2) + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) + - ReactCommon/turbomodule/bridging (= 0.73.2) + - ReactCommon/turbomodule/core (= 0.73.2) + - ReactCommon/turbomodule/bridging (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - ReactCommon/turbomodule/core (0.73.1): + - React-callinvoker (= 0.73.2) + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) + - ReactCommon/turbomodule/core (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) + - React-callinvoker (= 0.73.2) + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) - SDWebImage (5.17.0): - SDWebImage/Core (= 5.17.0) - SDWebImage/Core (5.17.0) @@ -1633,86 +1633,86 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: 26fad476bfa736552bbfa698a06cc530475c1505 DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953 - EXAV: 69adaa7433e7123a7dc9df9841fd80e954916d2d - EXConstants: 86bbc9fedbb67770c0c6bb37f22f81970ef45dc8 + EXAV: 4f5b0cf437b5c9dfde3c29089760047daacd50b7 + EXConstants: e77cccf9afb245a6fb2ea917fe5f45f0e1d8b841 EXFont: 9ae7e8e2e4825cef04a45dca74512a3f711e2fe9 - EXJSONUtils: d138005ee11b84fc4e3bf7119a160034db5d5e20 + EXJSONUtils: fbc612ef20c6688be1d67587cbc94cf9d446990a EXManifests: 2355abd4aeacfb75eec5b43393c0aef9c2789fcf - Expo: 00eaae3d5de1f2e9af393abf1b2c9efb57b3b599 - expo-dev-client: 62325d7ddd0b339eb2e50e472b2e058e222c1c2d - expo-dev-launcher: d0ca5b073ed60457854bc79e4622d6f938a4ca14 - expo-dev-menu: f0829c5521eea4a6561466a349bd1a4090bacf28 - expo-dev-menu-interface: 3c36b4d5032397e022958a2041afe91a130ea74c + Expo: 87664535771d38d078a93d5db36a3f82f06eb7f9 + expo-dev-client: 21a0596a8b6e51425b0f0006ec942b61a633e643 + expo-dev-launcher: 895daf08e4af2bfcd7d79f811b302c80b2c7e86d + expo-dev-menu: 8a725a2dfa74a7456d8c614e0137d5edd4460745 + expo-dev-menu-interface: 7d0d32817413ab639450f7c5f69a8997453bc73c ExpoAppleAuthentication: 4fc9972356977f009911f2f3a5f56319c2a5b11b - ExpoBlur: 6c4602d729a492663b0916e5862b334a23157f0a - ExpoCamera: a3f3681963815533c24f698a22c239e68724fb99 - ExpoFileSystem: ebbbe77366bff2e66876e3b3bf09e61d3bb72c70 - ExpoImage: 5ba424cbd89ba94103f21817cc310c26a009d967 + ExpoBlur: 2eb7f7ac50c0818ee7d596996e4c0112b3d225f6 + ExpoCamera: 64f16dee3c712c41046dc6a3c22518461c0ceae7 + ExpoFileSystem: fb4c94cc5ec5c50cb2663d2f6d503a1960b95a1d + ExpoImage: 1cdaa65a6a70bb01067e21ad1347ff2d973885f5 ExpoKeepAwake: ed71bfe0e6ecd38e337586ba6e1ba27a56eb373b ExpoLinearGradient: 6ff7b35f824f18f77d9c3ad3ee09fe0b4229e669 - ExpoModulesCore: a281700b7a05f81ac0ad356c3859c9e91bcdba32 - EXSplashScreen: eeb8fe6bb6e24cbcca1445167380c6ee9c870b80 - EXUpdatesInterface: 4f787eeabc62c258f978ea4865c67adfb6b2f19f - FBLazyVector: 2296bacb2fa157a43991048b0a9d71c1c8b65083 + ExpoModulesCore: 61990d4a7ed2e974cae59fb23146824e63ccaebe + EXSplashScreen: 819f9fd38b7f877bdaa06a3b9dbb69f0139cd045 + EXUpdatesInterface: 95d6bc086d7e043c1f33e30762ebc16a5cf4b153 + FBLazyVector: fbc4957d9aa695250b55d879c1d86f79d7e69ab4 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: 34df9d5034e90bd9bf1505e1ca198760373935af + hermes-engine: b361c9ef5ef3cda53f66e195599b47e1f84ffa35 libaom: 144606b1da4b5915a1054383c3a4459ccdb3c661 libavif: 84bbb62fb232c3018d6f1bab79beea87e35de7b7 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 libvmaf: 27f523f1e63c694d14d534cd0fddd2fab0ae8711 libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009 RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0 - RCTRequired: 6dda55e483f75d2b43781d8ad5bd7df276a50981 - RCTTypeSafety: df0f2632f4e89938b9b9f6152b5e6c66fc6e969e - React: 5373769b4a544945831d9c5d455212186d68f763 - React-callinvoker: 2c54fb73b27fdf9bd7772f36dcda23d76e0e7d14 - React-Codegen: 5a6048d41f8db115b9cd31f78b16643509b0c123 - React-Core: f0e1e99728ebdb785286b0c4c55f0f923a9d826f - React-CoreModules: 1ee65dbd93429c1c6ec3de069d75f5fde05db5d5 - React-cxxreact: dc0f1968914a6c7da62b1287c1eb84dd3ab0a7bb - React-debug: 52cced4b9e280d03825d687925898cf65bd8712d - React-Fabric: 1805f148aedab4bf31c48c8c3bae6045aeb75275 - React-FabricImage: ee5ee9abe4ab05043fdce515e46f396b025a5028 - React-graphics: a1652cbea6f779a1cf2692987d9c94efcd6e4497 - React-hermes: 12499684a1005213e7ed71a94467ef72cf24320c - React-ImageManager: 5e50ba59059ca7547c8968f936e4ae7a50ff7384 - React-jserrorhandler: 27154e650959506a4455384f3aea134eba62335b - React-jsi: b03ac7f7af1371e3e81e8ac894af4e46454dee79 - React-jsiexecutor: ae30693413a40b7c72f25da2e794997754a780bf - React-jsinspector: 369048694e39942063c5d08e9580b43e2edd379a - React-jsitracing: 1c3d70eba0f634910d41c1c411fa24f3b9e1ee72 - React-logger: e0c1e918d9588a9f39c9bc62d9d6bfe9ca238d9d - React-Mapbuffer: 9731a0a63ebaf8976014623c4d637744d7353a7c - React-nativeconfig: 37aecd26d64b79327c3f10e43b2e9a6c425e0a60 - React-NativeModulesApple: 9ca6d2eaa1dd5606588262195b46d0774bdec83a - React-perflogger: 5ffc4d6ccb74eaac7b8b2867e58a447232483d6d - React-RCTActionSheet: eca2174431ff2cc14b7fb847f92b89e081d27541 - React-RCTAnimation: a039b2416aa0a55e6fa7c8cd0a2e870bfffc4caa - React-RCTAppDelegate: db52d0b28825225b6513e8ae0000e81c9097831f - React-RCTBlob: 0d4892d25e57fbbce13e221fff7e4c9567a2ace3 - React-RCTFabric: d11187cac1f4e0141738805f7011145c7786a369 - React-RCTImage: 5b70891cb2adb75bbdc5ad8e6cc56c48e95d90e5 - React-RCTLinking: 5fe4756ab016e9f200e93e771bd6e43ea05f8f50 - React-RCTNetwork: 877b4a85f71c63cf719574f187e3333c1e15a425 - React-RCTSettings: ae477a33a04389f5d42486004b09b04eeba64fd5 - React-RCTText: 08dd5d7173ed279d3468b333217afb22bb7948c3 - React-RCTVibration: 2f906cd58dfd44ff5e4ca4fc0edd8740dceda6be - React-rendererdebug: e3db5db14234d9ee46d2e58fff3b8652ee7da6bc - React-rncore: 47f199474d2f295e72f9b73315b1b741068f2adf - React-RuntimeApple: 1953da441e3a07866fdaf708c091927a62c93bea - React-RuntimeCore: fa31b1ecef03d19bf8a84b37df9799f52613d348 - React-runtimeexecutor: d87e84455640dc5685e87563c2eaef90e5df8752 - React-RuntimeHermes: 28da5d7ec6c7a19d2cc3de9859e011831a95ff01 - React-runtimescheduler: 93a4c84e46a85c3fc9678abd4f6923b785226ea7 - React-utils: debda2c206770ee2785bdebb7f16d8db9f18838a - ReactCommon: ddb128564dcbfa0287d3d1a2d10f8c7457c971f6 + RCTRequired: 9b1e7e262745fb671e33c51c1078d093bd30e322 + RCTTypeSafety: a759e3b086eccf3e2cbf2493d22f28e082f958e6 + React: 805f5dd55bbdb92c36b4914c64aaae4c97d358dc + React-callinvoker: 6a697867607c990c2c2c085296ee32cfb5e47c01 + React-Codegen: bacba2aaa28ca46d449348cbcdf59fab4b5066b3 + React-Core: 49f66fecc7695464e9b7bc7dc7cd9473d2c60584 + React-CoreModules: 710e7c557a1a8180bd1645f5b4bf79f4bd3f5417 + React-cxxreact: 345857b5e4be000c0527df78be3b41a0677a20ce + React-debug: f1637bce73342b2f6eee4982508fdfb088667a87 + React-Fabric: 4dfcff8f14d8e5a7a60b11b7862dad2a9d99c65b + React-FabricImage: 4a9e9510b7f28bbde6a743b18c0cb941a142e938 + React-graphics: dd5af9d8b1b45171fd6933e19fed522f373bcb10 + React-hermes: a52d183a5cf8ccb7020ce3df4275b89d01e6b53e + React-ImageManager: c5b7db131eff71443d7f3a8d686fd841d18befd3 + React-jserrorhandler: 97a6a12e2344c3c4fdd7ba1edefb005215c732f8 + React-jsi: a182068133f80918cd0eec77875abaf943a0b6be + React-jsiexecutor: dacd00ce8a18fc00a0ae6c25e3015a6437e5d2e8 + React-jsinspector: 03644c063fc3621c9a4e8bf263a8150909129618 + React-jsitracing: 7c77101b38fcc8fa7f198de7e1d834350a85af90 + React-logger: 66b168e2b2bee57bd8ce9e69f739d805732a5570 + React-Mapbuffer: 9ee041e1d7be96da6d76a251f92e72b711c651d6 + React-nativeconfig: d753fbbc8cecc8ae413d615599ac378bbf6999bb + React-NativeModulesApple: 964f4eeab1b4325e8b6a799cf4444c3fd4eb0a9c + React-perflogger: 29efe63b7ef5fbaaa50ef6eaa92482f98a24b97e + React-RCTActionSheet: 69134c62aefd362027b20da01cd5d14ffd39db3f + React-RCTAnimation: 3b5a57087c7a5e727855b803d643ac1d445488f5 + React-RCTAppDelegate: cb1a9a8447ddad006f934988016390f4df472e74 + React-RCTBlob: 26ea660f2be1e6de62f2d2ad9a9c7b9bfabb786f + React-RCTFabric: bb6dbbff2f80b9489f8b2f1d2554aa040aa2e3cd + React-RCTImage: 27b27f4663df9e776d0549ed2f3536213e793f1b + React-RCTLinking: 962880ce9d0e2ea83fd182953538fc4ed757d4da + React-RCTNetwork: 73a756b44d4ad584bae13a5f1484e3ce12accac8 + React-RCTSettings: 6d7f8d807f05de3d01cfb182d14e5f400716faac + React-RCTText: 73006e95ca359595c2510c1c0114027c85a6ddd3 + React-RCTVibration: 599f427f9cbdd9c4bf38959ca020e8fef0717211 + React-rendererdebug: f2946e0a1c3b906e71555a7c4a39aa6a6c0e639b + React-rncore: 6e3139cf51cea08068f008da426821d1deaa24b9 + React-RuntimeApple: 08c29690996ed935e35054965bcfb70ebea67318 + React-RuntimeCore: 5b73f40b46d78a825cf71714e1e5044d389702d6 + React-runtimeexecutor: 2d1f64f58193f00a3ad71d3f89c2bfbfe11cf5a5 + React-RuntimeHermes: 01dcb5a4e9073496f6f981a8648843771e3f6516 + React-runtimescheduler: df8945a656356ff10f58f65a70820478bfcf33ad + React-utils: f5bc61e7ea3325c0732ae2d755f4441940163b85 + ReactCommon: 45b5d4f784e869c44a6f5a8fad5b114ca8f78c53 SDWebImage: 750adf017a315a280c60fde706ab1e552a3ae4e9 SDWebImageAVIFCoder: 8348fef6d0ec69e129c66c9fe4d74fbfbf366112 SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c SDWebImageWebPCoder: af09429398d99d524cae2fe00f6f0f6e491ed102 SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 - Yoga: 2b33a7ac96c58cdaa7b810948fc6a2a76ed2d108 + Yoga: e64aa65de36c0832d04e8c7bd614396c77a80047 ZXingObjC: 8898711ab495761b2dbbdec76d90164a6d7e14c5 PODFILE CHECKSUM: 71426e037432f85589759f1a9cee661a7b991aff diff --git a/apps/fabric-tester/package.json b/apps/fabric-tester/package.json index c3841e05f20b8..171ab8ff5ce58 100644 --- a/apps/fabric-tester/package.json +++ b/apps/fabric-tester/package.json @@ -21,7 +21,7 @@ "expo-status-bar": "~1.11.0", "react": "18.2.0", "react-dom": "18.2.0", - "react-native": "0.73.1", + "react-native": "0.73.2", "react-native-web": "~0.19.6" }, "devDependencies": { diff --git a/apps/jest-expo-mock-generator/package.json b/apps/jest-expo-mock-generator/package.json index dfc7691561905..d820b872dbd27 100644 --- a/apps/jest-expo-mock-generator/package.json +++ b/apps/jest-expo-mock-generator/package.json @@ -12,6 +12,6 @@ "expo": "~50.0.0-alpha.0", "expo-clipboard": "~5.0.0", "react": "18.2.0", - "react-native": "0.73.1" + "react-native": "0.73.2" } } diff --git a/apps/native-component-list/package.json b/apps/native-component-list/package.json index a43a1037a11f7..b66f80fb62257 100644 --- a/apps/native-component-list/package.json +++ b/apps/native-component-list/package.json @@ -140,7 +140,7 @@ "processing-js": "^1.6.6", "react": "18.2.0", "react-dom": "18.2.0", - "react-native": "0.73.1", + "react-native": "0.73.2", "react-native-dropdown-picker": "^5.3.0", "react-native-gesture-handler": "~2.14.0", "react-native-maps": "1.8.0", diff --git a/apps/native-tests/ios/Podfile.lock b/apps/native-tests/ios/Podfile.lock index dc3248c25e3cd..602f7185885c0 100644 --- a/apps/native-tests/ios/Podfile.lock +++ b/apps/native-tests/ios/Podfile.lock @@ -6,18 +6,16 @@ PODS: - EASClient/Tests (0.11.0): - ExpoModulesCore - ExpoModulesTestCore - - EXJSONUtils (0.12.0) - - EXJSONUtils/Tests (0.12.0) + - EXJSONUtils (0.12.1) + - EXJSONUtils/Tests (0.12.1) - EXManifests (0.13.0): - ExpoModulesCore - EXManifests/Tests (0.13.0): - ExpoModulesCore - ExpoModulesTestCore - - Expo (50.0.0-preview.4): - - ExpoModulesCore - - expo-dev-launcher (3.6.0): + - expo-dev-launcher (3.6.1): - EXManifests - - expo-dev-launcher/Main (= 3.6.0) + - expo-dev-launcher/Main (= 3.6.1) - expo-dev-menu - expo-dev-menu-interface - ExpoModulesCore @@ -26,7 +24,7 @@ PODS: - RCT-Folly (= 2022.05.16.00) - React-Core - React-RCTAppDelegate - - expo-dev-launcher/Main (3.6.0): + - expo-dev-launcher/Main (3.6.1): - EXManifests - expo-dev-launcher/Unsafe - expo-dev-menu @@ -37,7 +35,7 @@ PODS: - RCT-Folly (= 2022.05.16.00) - React-Core - React-RCTAppDelegate - - expo-dev-launcher/Tests (3.6.0): + - expo-dev-launcher/Tests (3.6.1): - EXManifests - expo-dev-menu - expo-dev-menu-interface @@ -52,7 +50,7 @@ PODS: - React-Core - React-CoreModules - React-RCTAppDelegate - - expo-dev-launcher/Unsafe (3.6.0): + - expo-dev-launcher/Unsafe (3.6.1): - EXManifests - expo-dev-menu - expo-dev-menu-interface @@ -62,17 +60,17 @@ PODS: - RCT-Folly (= 2022.05.16.00) - React-Core - React-RCTAppDelegate - - expo-dev-menu (4.5.1): - - expo-dev-menu/Main (= 4.5.1) - - expo-dev-menu/ReactNativeCompatibles (= 4.5.1) + - expo-dev-menu (4.5.2): + - expo-dev-menu/Main (= 4.5.2) + - expo-dev-menu/ReactNativeCompatibles (= 4.5.2) - glog - RCT-Folly (= 2022.05.16.00) - React-Core - - expo-dev-menu-interface (1.7.0) - - expo-dev-menu-interface/Tests (1.7.0): + - expo-dev-menu-interface (1.7.1) + - expo-dev-menu-interface/Tests (1.7.1): - Nimble - Quick - - expo-dev-menu/Main (4.5.1): + - expo-dev-menu/Main (4.5.2): - EXManifests - expo-dev-menu-interface - expo-dev-menu/Vendored @@ -80,16 +78,16 @@ PODS: - glog - RCT-Folly (= 2022.05.16.00) - React-Core - - expo-dev-menu/ReactNativeCompatibles (4.5.1): + - expo-dev-menu/ReactNativeCompatibles (4.5.2): - glog - RCT-Folly (= 2022.05.16.00) - React-Core - - expo-dev-menu/SafeAreaView (4.5.1): + - expo-dev-menu/SafeAreaView (4.5.2): - ExpoModulesCore - glog - RCT-Folly (= 2022.05.16.00) - React-Core - - expo-dev-menu/Tests (4.5.1): + - expo-dev-menu/Tests (4.5.2): - ExpoModulesTestCore - glog - Nimble @@ -97,35 +95,35 @@ PODS: - RCT-Folly (= 2022.05.16.00) - React-Core - React-CoreModules - - expo-dev-menu/UITests (4.5.1): + - expo-dev-menu/UITests (4.5.2): - glog - RCT-Folly (= 2022.05.16.00) - React - React-Core - React-CoreModules - - expo-dev-menu/Vendored (4.5.1): + - expo-dev-menu/Vendored (4.5.2): - expo-dev-menu/SafeAreaView - glog - RCT-Folly (= 2022.05.16.00) - React-Core - - ExpoClipboard (5.0.0): + - ExpoClipboard (5.0.1): - ExpoModulesCore - - ExpoClipboard/Tests (5.0.0): + - ExpoClipboard/Tests (5.0.1): - ExpoModulesCore - ExpoModulesTestCore - - ExpoFileSystem (16.0.1): + - ExpoFileSystem (16.0.2): - ExpoModulesCore - - ExpoFileSystem/Tests (16.0.1): + - ExpoFileSystem/Tests (16.0.2): - ExpoModulesCore - ExpoModulesTestCore - - ExpoModulesCore (1.11.2): + - ExpoModulesCore (1.11.4): - glog - RCT-Folly (= 2022.05.16.00) - React-Core - React-NativeModulesApple - React-RCTAppDelegate - ReactCommon/turbomodule/core - - ExpoModulesCore/Tests (1.11.2): + - ExpoModulesCore/Tests (1.11.4): - ExpoModulesTestCore - glog - RCT-Folly (= 2022.05.16.00) @@ -133,14 +131,14 @@ PODS: - React-NativeModulesApple - React-RCTAppDelegate - ReactCommon/turbomodule/core - - ExpoModulesTestCore (0.17.0): + - ExpoModulesTestCore (0.17.1): - ExpoModulesCore - Nimble (~> 13.0.0) - Quick (~> 7.3.0) - React-jsc - EXStructuredHeaders (3.7.0) - EXStructuredHeaders/Tests (3.7.0) - - EXUpdates (0.24.3): + - EXUpdates (0.24.6): - EASClient - EXManifests - ExpoModulesCore @@ -151,7 +149,7 @@ PODS: - ReachabilitySwift - React-Core - sqlite3 (~> 3.42.0) - - EXUpdates/Tests (0.24.3): + - EXUpdates/Tests (0.24.6): - EASClient - EXManifests - ExpoModulesCore @@ -163,15 +161,15 @@ PODS: - ReachabilitySwift - React-Core - sqlite3 (~> 3.42.0) - - EXUpdatesInterface (0.15.0) - - FBLazyVector (0.73.1) - - FBReactNativeSpec (0.73.1): + - EXUpdatesInterface (0.15.1) + - FBLazyVector (0.73.2) + - FBReactNativeSpec (0.73.2): - RCT-Folly (= 2022.05.16.00) - - RCTRequired (= 0.73.1) - - RCTTypeSafety (= 0.73.1) - - React-Core (= 0.73.1) - - React-jsi (= 0.73.1) - - ReactCommon/turbomodule/core (= 0.73.1) + - RCTRequired (= 0.73.2) + - RCTTypeSafety (= 0.73.2) + - React-Core (= 0.73.2) + - React-jsi (= 0.73.2) + - ReactCommon/turbomodule/core (= 0.73.2) - fmt (6.2.1) - glog (0.3.5) - Nimble (13.0.0) @@ -205,27 +203,27 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - RCTRequired (0.73.1) - - RCTTypeSafety (0.73.1): - - FBLazyVector (= 0.73.1) - - RCTRequired (= 0.73.1) - - React-Core (= 0.73.1) + - RCTRequired (0.73.2) + - RCTTypeSafety (0.73.2): + - FBLazyVector (= 0.73.2) + - RCTRequired (= 0.73.2) + - React-Core (= 0.73.2) - ReachabilitySwift (5.0.0) - - React (0.73.1): - - React-Core (= 0.73.1) - - React-Core/DevSupport (= 0.73.1) - - React-Core/RCTWebSocket (= 0.73.1) - - React-RCTActionSheet (= 0.73.1) - - React-RCTAnimation (= 0.73.1) - - React-RCTBlob (= 0.73.1) - - React-RCTImage (= 0.73.1) - - React-RCTLinking (= 0.73.1) - - React-RCTNetwork (= 0.73.1) - - React-RCTSettings (= 0.73.1) - - React-RCTText (= 0.73.1) - - React-RCTVibration (= 0.73.1) - - React-callinvoker (0.73.1) - - React-Codegen (0.73.1): + - React (0.73.2): + - React-Core (= 0.73.2) + - React-Core/DevSupport (= 0.73.2) + - React-Core/RCTWebSocket (= 0.73.2) + - React-RCTActionSheet (= 0.73.2) + - React-RCTAnimation (= 0.73.2) + - React-RCTBlob (= 0.73.2) + - React-RCTImage (= 0.73.2) + - React-RCTLinking (= 0.73.2) + - React-RCTNetwork (= 0.73.2) + - React-RCTSettings (= 0.73.2) + - React-RCTText (= 0.73.2) + - React-RCTVibration (= 0.73.2) + - React-callinvoker (0.73.2) + - React-Codegen (0.73.2): - DoubleConversion - FBReactNativeSpec - glog @@ -240,10 +238,10 @@ PODS: - React-rncore - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.73.1): + - React-Core (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) + - React-Core/Default (= 0.73.2) - React-cxxreact - React-jsc - React-jsi @@ -253,7 +251,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/CoreModulesHeaders (0.73.1): + - React-Core/CoreModulesHeaders (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-Core/Default @@ -266,7 +264,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/Default (0.73.1): + - React-Core/Default (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-cxxreact @@ -278,22 +276,22 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/DevSupport (0.73.1): + - React-Core/DevSupport (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) - - React-Core/RCTWebSocket (= 0.73.1) + - React-Core/Default (= 0.73.2) + - React-Core/RCTWebSocket (= 0.73.2) - React-cxxreact - React-jsc - React-jsi - React-jsiexecutor - - React-jsinspector (= 0.73.1) + - React-jsinspector (= 0.73.2) - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.73.1): + - React-Core/RCTActionSheetHeaders (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-Core/Default @@ -306,7 +304,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTAnimationHeaders (0.73.1): + - React-Core/RCTAnimationHeaders (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-Core/Default @@ -319,7 +317,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTBlobHeaders (0.73.1): + - React-Core/RCTBlobHeaders (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-Core/Default @@ -332,7 +330,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTImageHeaders (0.73.1): + - React-Core/RCTImageHeaders (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-Core/Default @@ -345,7 +343,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTLinkingHeaders (0.73.1): + - React-Core/RCTLinkingHeaders (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-Core/Default @@ -358,7 +356,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTNetworkHeaders (0.73.1): + - React-Core/RCTNetworkHeaders (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-Core/Default @@ -371,7 +369,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTSettingsHeaders (0.73.1): + - React-Core/RCTSettingsHeaders (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-Core/Default @@ -384,7 +382,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTTextHeaders (0.73.1): + - React-Core/RCTTextHeaders (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-Core/Default @@ -397,7 +395,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTVibrationHeaders (0.73.1): + - React-Core/RCTVibrationHeaders (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-Core/Default @@ -410,10 +408,10 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTWebSocket (0.73.1): + - React-Core/RCTWebSocket (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) + - React-Core/Default (= 0.73.2) - React-cxxreact - React-jsc - React-jsi @@ -423,32 +421,32 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-CoreModules (0.73.1): + - React-CoreModules (0.73.2): - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety (= 0.73.1) + - RCTTypeSafety (= 0.73.2) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.73.1) - - React-jsi (= 0.73.1) + - React-Core/CoreModulesHeaders (= 0.73.2) + - React-jsi (= 0.73.2) - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.73.1) + - React-RCTImage (= 0.73.2) - ReactCommon - SocketRocket (= 0.6.1) - - React-cxxreact (0.73.1): + - React-cxxreact (0.73.2): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-debug (= 0.73.1) - - React-jsi (= 0.73.1) - - React-jsinspector (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - React-runtimeexecutor (= 0.73.1) - - React-debug (0.73.1) - - React-Fabric (0.73.1): + - React-callinvoker (= 0.73.2) + - React-debug (= 0.73.2) + - React-jsi (= 0.73.2) + - React-jsinspector (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) + - React-runtimeexecutor (= 0.73.2) + - React-debug (0.73.2) + - React-Fabric (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -458,20 +456,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.73.1) - - React-Fabric/attributedstring (= 0.73.1) - - React-Fabric/componentregistry (= 0.73.1) - - React-Fabric/componentregistrynative (= 0.73.1) - - React-Fabric/components (= 0.73.1) - - React-Fabric/core (= 0.73.1) - - React-Fabric/imagemanager (= 0.73.1) - - React-Fabric/leakchecker (= 0.73.1) - - React-Fabric/mounting (= 0.73.1) - - React-Fabric/scheduler (= 0.73.1) - - React-Fabric/telemetry (= 0.73.1) - - React-Fabric/templateprocessor (= 0.73.1) - - React-Fabric/textlayoutmanager (= 0.73.1) - - React-Fabric/uimanager (= 0.73.1) + - React-Fabric/animations (= 0.73.2) + - React-Fabric/attributedstring (= 0.73.2) + - React-Fabric/componentregistry (= 0.73.2) + - React-Fabric/componentregistrynative (= 0.73.2) + - React-Fabric/components (= 0.73.2) + - React-Fabric/core (= 0.73.2) + - React-Fabric/imagemanager (= 0.73.2) + - React-Fabric/leakchecker (= 0.73.2) + - React-Fabric/mounting (= 0.73.2) + - React-Fabric/scheduler (= 0.73.2) + - React-Fabric/telemetry (= 0.73.2) + - React-Fabric/templateprocessor (= 0.73.2) + - React-Fabric/textlayoutmanager (= 0.73.2) + - React-Fabric/uimanager (= 0.73.2) - React-graphics - React-jsc - React-jsi @@ -481,7 +479,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.73.1): + - React-Fabric/animations (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -500,7 +498,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.73.1): + - React-Fabric/attributedstring (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -519,7 +517,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.73.1): + - React-Fabric/componentregistry (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -538,7 +536,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.73.1): + - React-Fabric/componentregistrynative (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -557,7 +555,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.73.1): + - React-Fabric/components (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -567,17 +565,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.73.1) - - React-Fabric/components/legacyviewmanagerinterop (= 0.73.1) - - React-Fabric/components/modal (= 0.73.1) - - React-Fabric/components/rncore (= 0.73.1) - - React-Fabric/components/root (= 0.73.1) - - React-Fabric/components/safeareaview (= 0.73.1) - - React-Fabric/components/scrollview (= 0.73.1) - - React-Fabric/components/text (= 0.73.1) - - React-Fabric/components/textinput (= 0.73.1) - - React-Fabric/components/unimplementedview (= 0.73.1) - - React-Fabric/components/view (= 0.73.1) + - React-Fabric/components/inputaccessory (= 0.73.2) + - React-Fabric/components/legacyviewmanagerinterop (= 0.73.2) + - React-Fabric/components/modal (= 0.73.2) + - React-Fabric/components/rncore (= 0.73.2) + - React-Fabric/components/root (= 0.73.2) + - React-Fabric/components/safeareaview (= 0.73.2) + - React-Fabric/components/scrollview (= 0.73.2) + - React-Fabric/components/text (= 0.73.2) + - React-Fabric/components/textinput (= 0.73.2) + - React-Fabric/components/unimplementedview (= 0.73.2) + - React-Fabric/components/view (= 0.73.2) - React-graphics - React-jsc - React-jsi @@ -587,7 +585,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.73.1): + - React-Fabric/components/inputaccessory (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -606,7 +604,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.73.1): + - React-Fabric/components/legacyviewmanagerinterop (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -625,7 +623,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.73.1): + - React-Fabric/components/modal (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -644,7 +642,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.73.1): + - React-Fabric/components/rncore (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -663,7 +661,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.73.1): + - React-Fabric/components/root (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -682,7 +680,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.73.1): + - React-Fabric/components/safeareaview (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -701,7 +699,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.73.1): + - React-Fabric/components/scrollview (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -720,7 +718,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.73.1): + - React-Fabric/components/text (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -739,7 +737,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.73.1): + - React-Fabric/components/textinput (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -758,7 +756,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.73.1): + - React-Fabric/components/unimplementedview (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -777,7 +775,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.73.1): + - React-Fabric/components/view (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -797,7 +795,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.73.1): + - React-Fabric/core (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -816,7 +814,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.73.1): + - React-Fabric/imagemanager (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -835,7 +833,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.73.1): + - React-Fabric/leakchecker (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -854,7 +852,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.73.1): + - React-Fabric/mounting (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -873,7 +871,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.73.1): + - React-Fabric/scheduler (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -892,7 +890,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.73.1): + - React-Fabric/telemetry (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -911,7 +909,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.73.1): + - React-Fabric/templateprocessor (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -930,7 +928,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.73.1): + - React-Fabric/textlayoutmanager (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -950,7 +948,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.73.1): + - React-Fabric/uimanager (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -969,30 +967,30 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.73.1): + - React-FabricImage (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired (= 0.73.1) - - RCTTypeSafety (= 0.73.1) + - RCTRequired (= 0.73.2) + - RCTTypeSafety (= 0.73.2) - React-Fabric - React-graphics - React-ImageManager - React-jsc - React-jsi - - React-jsiexecutor (= 0.73.1) + - React-jsiexecutor (= 0.73.2) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-graphics (0.73.1): + - React-graphics (0.73.2): - glog - RCT-Folly/Fabric (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) + - React-Core/Default (= 0.73.2) - React-utils - - React-ImageManager (0.73.1): + - React-ImageManager (0.73.2): - glog - RCT-Folly/Fabric - React-Core/Default @@ -1001,38 +999,38 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jsc (0.73.1): - - React-jsc/Fabric (= 0.73.1) - - React-jsi (= 0.73.1) - - React-jsc/Fabric (0.73.1): - - React-jsi (= 0.73.1) - - React-jserrorhandler (0.73.1): + - React-jsc (0.73.2): + - React-jsc/Fabric (= 0.73.2) + - React-jsi (= 0.73.2) + - React-jsc/Fabric (0.73.2): + - React-jsi (= 0.73.2) + - React-jserrorhandler (0.73.2): - RCT-Folly/Fabric (= 2022.05.16.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.73.1): + - React-jsi (0.73.2): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - RCT-Folly (= 2022.05.16.00) - - React-jsiexecutor (0.73.1): + - React-jsiexecutor (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - RCT-Folly (= 2022.05.16.00) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-perflogger (= 0.73.1) - - React-jsinspector (0.73.1) - - React-logger (0.73.1): + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-perflogger (= 0.73.2) + - React-jsinspector (0.73.2) + - React-logger (0.73.2): - glog - - React-Mapbuffer (0.73.1): + - React-Mapbuffer (0.73.2): - glog - React-debug - - React-nativeconfig (0.73.1) - - React-NativeModulesApple (0.73.1): + - React-nativeconfig (0.73.2) + - React-NativeModulesApple (0.73.2): - glog - React-callinvoker - React-Core @@ -1042,10 +1040,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.73.1) - - React-RCTActionSheet (0.73.1): - - React-Core/RCTActionSheetHeaders (= 0.73.1) - - React-RCTAnimation (0.73.1): + - React-perflogger (0.73.2) + - React-RCTActionSheet (0.73.2): + - React-Core/RCTActionSheetHeaders (= 0.73.2) + - React-RCTAnimation (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1053,7 +1051,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.73.1): + - React-RCTAppDelegate (0.73.2): - RCT-Folly - RCTRequired - RCTTypeSafety @@ -1067,7 +1065,7 @@ PODS: - React-RCTNetwork - React-runtimescheduler - ReactCommon - - React-RCTBlob (0.73.1): + - React-RCTBlob (0.73.2): - RCT-Folly (= 2022.05.16.00) - React-Codegen - React-Core/RCTBlobHeaders @@ -1076,7 +1074,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.73.1): + - React-RCTFabric (0.73.2): - glog - RCT-Folly/Fabric (= 2022.05.16.00) - React-Core @@ -1094,7 +1092,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.73.1): + - React-RCTImage (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1103,14 +1101,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.73.1): + - React-RCTLinking (0.73.2): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.73.1) - - React-jsi (= 0.73.1) + - React-Core/RCTLinkingHeaders (= 0.73.2) + - React-jsi (= 0.73.2) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.73.1) - - React-RCTNetwork (0.73.1): + - ReactCommon/turbomodule/core (= 0.73.2) + - React-RCTNetwork (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1118,7 +1116,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.73.1): + - React-RCTSettings (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1126,25 +1124,25 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTText (0.73.1): - - React-Core/RCTTextHeaders (= 0.73.1) + - React-RCTText (0.73.2): + - React-Core/RCTTextHeaders (= 0.73.2) - Yoga - - React-RCTVibration (0.73.1): + - React-RCTVibration (0.73.2): - RCT-Folly (= 2022.05.16.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.73.1): + - React-rendererdebug (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - RCT-Folly (= 2022.05.16.00) - React-debug - - React-rncore (0.73.1) - - React-runtimeexecutor (0.73.1): - - React-jsi (= 0.73.1) - - React-runtimescheduler (0.73.1): + - React-rncore (0.73.2) + - React-runtimeexecutor (0.73.2): + - React-jsi (= 0.73.2) + - React-runtimescheduler (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-callinvoker @@ -1155,45 +1153,45 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.73.1): + - React-utils (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-debug - - ReactCommon (0.73.1): - - React-logger (= 0.73.1) - - ReactCommon/turbomodule (= 0.73.1) - - ReactCommon/turbomodule (0.73.1): + - ReactCommon (0.73.2): + - React-logger (= 0.73.2) + - ReactCommon/turbomodule (= 0.73.2) + - ReactCommon/turbomodule (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - ReactCommon/turbomodule/bridging (= 0.73.1) - - ReactCommon/turbomodule/core (= 0.73.1) - - ReactCommon/turbomodule/bridging (0.73.1): + - React-callinvoker (= 0.73.2) + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) + - ReactCommon/turbomodule/bridging (= 0.73.2) + - ReactCommon/turbomodule/core (= 0.73.2) + - ReactCommon/turbomodule/bridging (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - ReactCommon/turbomodule/core (0.73.1): + - React-callinvoker (= 0.73.2) + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) + - ReactCommon/turbomodule/core (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) + - React-callinvoker (= 0.73.2) + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) - SocketRocket (0.6.1) - sqlite3 (3.42.0): - sqlite3/common (= 3.42.0) @@ -1209,7 +1207,6 @@ DEPENDENCIES: - EXJSONUtils/Tests (from `../../../packages/expo-json-utils/ios`) - EXManifests (from `../../../packages/expo-manifests/ios`) - EXManifests/Tests (from `../../../packages/expo-manifests/ios`) - - Expo (from `../node_modules/expo`) - expo-dev-launcher (from `../../../packages/expo-dev-launcher`) - expo-dev-launcher/Tests (from `../../../packages/expo-dev-launcher`) - expo-dev-menu (from `../../../packages/expo-dev-menu`) @@ -1301,8 +1298,6 @@ EXTERNAL SOURCES: EXManifests: inhibit_warnings: false :path: "../../../packages/expo-manifests/ios" - Expo: - :path: "../node_modules/expo" expo-dev-launcher: inhibit_warnings: false :path: "../../../packages/expo-dev-launcher" @@ -1426,71 +1421,70 @@ SPEC CHECKSUMS: boost: 26fad476bfa736552bbfa698a06cc530475c1505 DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953 EASClient: b550a8d3d3d9d1211ba71eabf789cb46c7e92b3c - EXJSONUtils: d138005ee11b84fc4e3bf7119a160034db5d5e20 + EXJSONUtils: fbc612ef20c6688be1d67587cbc94cf9d446990a EXManifests: 2355abd4aeacfb75eec5b43393c0aef9c2789fcf - Expo: 00eaae3d5de1f2e9af393abf1b2c9efb57b3b599 - expo-dev-launcher: 7b7e7c64a999c123201689fc36d9a6003149e32a - expo-dev-menu: 0898881a6e3a546d1c933044c1d912920e3bf4e4 - expo-dev-menu-interface: 3c36b4d5032397e022958a2041afe91a130ea74c - ExpoClipboard: ecbf3edb5dcb460fdefca945923c38f8ad6c7859 - ExpoFileSystem: ebbbe77366bff2e66876e3b3bf09e61d3bb72c70 - ExpoModulesCore: 94238d9653114ff9786634541688e1fdb7ed95e3 - ExpoModulesTestCore: 1d32a80492e10cc0db9503d9b8fdd9d5d7c588cd + expo-dev-launcher: 90c05b0da0a9e1e27063510f019c4f8e0ef5b76d + expo-dev-menu: 48359556db01e574b4f966ca39fe24c1efdee4c3 + expo-dev-menu-interface: 7d0d32817413ab639450f7c5f69a8997453bc73c + ExpoClipboard: b597982124f067ff9f5b89093eb3d97898d5d877 + ExpoFileSystem: fb4c94cc5ec5c50cb2663d2f6d503a1960b95a1d + ExpoModulesCore: 01c0abfa6cd9c41c4bd76d8a1a079e6b591db10f + ExpoModulesTestCore: cbb026b491218d9f10aaf1a3a3c3a011d991d4fc EXStructuredHeaders: 3b8ec10c65a4607dc976b6cdfa5136d2ea2ece19 - EXUpdates: abb1d3637bdd52dc4e16c8d4643f0c04b5b808ee - EXUpdatesInterface: 4f787eeabc62c258f978ea4865c67adfb6b2f19f - FBLazyVector: 2296bacb2fa157a43991048b0a9d71c1c8b65083 - FBReactNativeSpec: 23f8d3fbb132cb10dcb33fb42c4d5ee7e1c8eb45 + EXUpdates: f404add67a26cdbef07c92c0eee9d22a00472b2f + EXUpdatesInterface: 95d6bc086d7e043c1f33e30762ebc16a5cf4b153 + FBLazyVector: fbc4957d9aa695250b55d879c1d86f79d7e69ab4 + FBReactNativeSpec: 110d90902c68f28251c4898ab3dd637a8f2807af fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 Nimble: 97d90931cca412a23224ff29e258809f75c258f7 OHHTTPStubs: 90eac6d8f2c18317baeca36698523dc67c513831 Quick: d32871931c05547cb4e0bc9009d66a18b50d8558 RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0 - RCTRequired: 6dda55e483f75d2b43781d8ad5bd7df276a50981 - RCTTypeSafety: df0f2632f4e89938b9b9f6152b5e6c66fc6e969e + RCTRequired: 9b1e7e262745fb671e33c51c1078d093bd30e322 + RCTTypeSafety: a759e3b086eccf3e2cbf2493d22f28e082f958e6 ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825 - React: 5373769b4a544945831d9c5d455212186d68f763 - React-callinvoker: 2c54fb73b27fdf9bd7772f36dcda23d76e0e7d14 - React-Codegen: 71d866ddc419643a029b1a43a433715371f9bc5e - React-Core: 894163c8df365db6bf151284c4885aaf9d91b566 - React-CoreModules: 1ee65dbd93429c1c6ec3de069d75f5fde05db5d5 - React-cxxreact: 927e7a8f04142c6794c0450f07851c3b8d733eb1 - React-debug: 52cced4b9e280d03825d687925898cf65bd8712d - React-Fabric: 75a93ed4a5d2748a8254e7ddc254badbe64b51d0 - React-FabricImage: 75ef524d1eac290fbfbfd1dfdf761be38f2e34e4 - React-graphics: a1652cbea6f779a1cf2692987d9c94efcd6e4497 - React-ImageManager: 5e50ba59059ca7547c8968f936e4ae7a50ff7384 - React-jsc: db1b58dd0aabec3b893c92af81f5cdf520a0577b - React-jserrorhandler: 27154e650959506a4455384f3aea134eba62335b - React-jsi: 568d50e634f4d41ee4e4853f665caf4f851de913 - React-jsiexecutor: 14fc2894b28beba69f6a466faff52c7a5c827b47 - React-jsinspector: 369048694e39942063c5d08e9580b43e2edd379a - React-logger: e0c1e918d9588a9f39c9bc62d9d6bfe9ca238d9d - React-Mapbuffer: 9731a0a63ebaf8976014623c4d637744d7353a7c - React-nativeconfig: 37aecd26d64b79327c3f10e43b2e9a6c425e0a60 - React-NativeModulesApple: 00e8c36b6c56ce76af5e52e07d5ecaad18038d51 - React-perflogger: 5ffc4d6ccb74eaac7b8b2867e58a447232483d6d - React-RCTActionSheet: eca2174431ff2cc14b7fb847f92b89e081d27541 - React-RCTAnimation: a039b2416aa0a55e6fa7c8cd0a2e870bfffc4caa - React-RCTAppDelegate: 6e5c7f130a131651da8f65a5302df84b35e6a1d9 - React-RCTBlob: 2a21e8dbe65a8ec9cf4751b59a25e4498d99ae73 - React-RCTFabric: 97d6ea1eb7d9413e41fc0a6129b988c9750ec93a - React-RCTImage: 5b70891cb2adb75bbdc5ad8e6cc56c48e95d90e5 - React-RCTLinking: 5fe4756ab016e9f200e93e771bd6e43ea05f8f50 - React-RCTNetwork: 877b4a85f71c63cf719574f187e3333c1e15a425 - React-RCTSettings: ae477a33a04389f5d42486004b09b04eeba64fd5 - React-RCTText: 08dd5d7173ed279d3468b333217afb22bb7948c3 - React-RCTVibration: 2f906cd58dfd44ff5e4ca4fc0edd8740dceda6be - React-rendererdebug: e3db5db14234d9ee46d2e58fff3b8652ee7da6bc - React-rncore: 018d81be9e3e73588adf09f26000552bfd9ec57c - React-runtimeexecutor: d87e84455640dc5685e87563c2eaef90e5df8752 - React-runtimescheduler: 0250903a8bbd267f4cbfb4b5e45c0b464aa7a891 - React-utils: debda2c206770ee2785bdebb7f16d8db9f18838a - ReactCommon: b20d717be759cce8e25f834b7235debd610402e5 + React: 805f5dd55bbdb92c36b4914c64aaae4c97d358dc + React-callinvoker: 6a697867607c990c2c2c085296ee32cfb5e47c01 + React-Codegen: 39377d8c90c3fc0792753c9af53b788abfe5850b + React-Core: 943d6097aaf381b1e7c7e105eecd5a27b51c4e17 + React-CoreModules: 710e7c557a1a8180bd1645f5b4bf79f4bd3f5417 + React-cxxreact: 0f0b3933c36dfe4ed10638a33398533f90ab78d3 + React-debug: f1637bce73342b2f6eee4982508fdfb088667a87 + React-Fabric: ba7d74992ed878fdbf91f8b49eb725b310786980 + React-FabricImage: e7457fb89db50cb1b51d0546b5ff002b91026efe + React-graphics: dd5af9d8b1b45171fd6933e19fed522f373bcb10 + React-ImageManager: c5b7db131eff71443d7f3a8d686fd841d18befd3 + React-jsc: 94234736a90ea29f017f2ee76e5f358a6ba076a9 + React-jserrorhandler: 97a6a12e2344c3c4fdd7ba1edefb005215c732f8 + React-jsi: 0cd661b6ea862c104706311f8265050ee3ecf5e4 + React-jsiexecutor: 94f6026bc4054b413f0ac5e210691c2916d99d1b + React-jsinspector: 03644c063fc3621c9a4e8bf263a8150909129618 + React-logger: 66b168e2b2bee57bd8ce9e69f739d805732a5570 + React-Mapbuffer: 9ee041e1d7be96da6d76a251f92e72b711c651d6 + React-nativeconfig: d753fbbc8cecc8ae413d615599ac378bbf6999bb + React-NativeModulesApple: 22c25a1baa4b0d0d4845dad2578fc017b0805589 + React-perflogger: 29efe63b7ef5fbaaa50ef6eaa92482f98a24b97e + React-RCTActionSheet: 69134c62aefd362027b20da01cd5d14ffd39db3f + React-RCTAnimation: 3b5a57087c7a5e727855b803d643ac1d445488f5 + React-RCTAppDelegate: 842870b97f47de7255908ba1ca8786aef877b0b8 + React-RCTBlob: 1fa011b5860c9a70802fab986ad334b458387b7a + React-RCTFabric: c8f86a85501d70c8a77d71f22273e325ffb63fa0 + React-RCTImage: 27b27f4663df9e776d0549ed2f3536213e793f1b + React-RCTLinking: 962880ce9d0e2ea83fd182953538fc4ed757d4da + React-RCTNetwork: 73a756b44d4ad584bae13a5f1484e3ce12accac8 + React-RCTSettings: 6d7f8d807f05de3d01cfb182d14e5f400716faac + React-RCTText: 73006e95ca359595c2510c1c0114027c85a6ddd3 + React-RCTVibration: 599f427f9cbdd9c4bf38959ca020e8fef0717211 + React-rendererdebug: f2946e0a1c3b906e71555a7c4a39aa6a6c0e639b + React-rncore: 076e213438634a671bdecacf9dd4473991600704 + React-runtimeexecutor: 2d1f64f58193f00a3ad71d3f89c2bfbfe11cf5a5 + React-runtimescheduler: 6517c0cdfae3ea29b599759e069ae97746163248 + React-utils: f5bc61e7ea3325c0732ae2d755f4441940163b85 + ReactCommon: a42e89b49d88c3890dfb6fd98a33ac80d555be19 SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 sqlite3: f163dbbb7aa3339ad8fc622782c2d9d7b72f7e9c - Yoga: 2b33a7ac96c58cdaa7b810948fc6a2a76ed2d108 + Yoga: e64aa65de36c0832d04e8c7bd614396c77a80047 PODFILE CHECKSUM: 32b16f07653241ea742140d21bd83f8950e87c9a diff --git a/apps/native-tests/package.json b/apps/native-tests/package.json index 298273991660f..399608448e813 100644 --- a/apps/native-tests/package.json +++ b/apps/native-tests/package.json @@ -21,7 +21,7 @@ "native-component-list": "*", "react": "18.2.0", "react-dom": "18.2.0", - "react-native": "0.73.1" + "react-native": "0.73.2" }, "devDependencies": { "@babel/core": "^7.12.9" diff --git a/apps/router-e2e/package.json b/apps/router-e2e/package.json index abe63f0363da2..aa4cfff8534cd 100644 --- a/apps/router-e2e/package.json +++ b/apps/router-e2e/package.json @@ -9,7 +9,7 @@ "expo": "~50.0.0-alpha.0", "expo-router": "^3.0.0", "react": "18.2.0", - "react-native": "0.73.1" + "react-native": "0.73.2" }, "devDependencies": { "autoprefixer": "^10.4.16", diff --git a/apps/sandbox/package.json b/apps/sandbox/package.json index e317c1b5dbde1..ea886b549df46 100644 --- a/apps/sandbox/package.json +++ b/apps/sandbox/package.json @@ -11,7 +11,7 @@ "expo": "~50.0.0-alpha.0", "expo-router": "^3.0.0", "react": "18.2.0", - "react-native": "0.73.1" + "react-native": "0.73.2" }, "devDependencies": { "babel-preset-expo": "~10.0.0", diff --git a/apps/test-suite/package.json b/apps/test-suite/package.json index 0463ed9e8d672..f2985409f4c03 100644 --- a/apps/test-suite/package.json +++ b/apps/test-suite/package.json @@ -51,7 +51,7 @@ "jasmine-core": "^2.4.1", "lodash": "^4.17.19", "react": "18.2.0", - "react-native": "0.73.1", + "react-native": "0.73.2", "react-native-gesture-handler": "~2.14.0", "sinon": "^7.1.1" }, diff --git a/docs/public/static/diffs/template-bare-minimum/diffInfo.json b/docs/public/static/diffs/template-bare-minimum/diffInfo.json index f8d91dd35d6ae..5e8631be52958 100644 --- a/docs/public/static/diffs/template-bare-minimum/diffInfo.json +++ b/docs/public/static/diffs/template-bare-minimum/diffInfo.json @@ -1 +1 @@ -{"versions":["45","46","47","48","49","50","unversioned"],"diffs":{"45..45":"","45..46":"diff --git a/templates/expo-template-bare-minimum/android/app/build.gradle b/templates/expo-template-bare-minimum/android/app/build.gradle\nindex 346fb02564..f0293fe400 100644\n--- a/templates/expo-template-bare-minimum/android/app/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/app/build.gradle\n@@ -80,15 +80,17 @@ import org.apache.tools.ant.taskdefs.condition.Os\n \n def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath()\n \n+def reactNativeRoot = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath()\n+\n project.ext.react = [\n entryFile: [\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\"].execute(null, rootDir).text.trim(),\n enableHermes: (findProperty('expo.jsEngine') ?: \"jsc\") == \"hermes\",\n- cliPath: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/cli.js\",\n- hermesCommand: new File([\"node\", \"--print\", \"require.resolve('hermes-engine/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/%OS-BIN%/hermesc\",\n- composeSourceMapsPath: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/scripts/compose-source-maps.js\",\n+ hermesCommand: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/sdks/hermesc/%OS-BIN%/hermesc\",\n+ cliPath: \"${reactNativeRoot}/cli.js\",\n+ composeSourceMapsPath: \"${reactNativeRoot}/scripts/compose-source-maps.js\",\n ]\n \n-apply from: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../react.gradle\")\n+apply from: new File(reactNativeRoot, \"react.gradle\")\n \n /**\n * Set this to true to create two separate APKs instead of one:\n@@ -157,8 +159,9 @@ android {\n \"NDK_TOOLCHAIN_VERSION=clang\",\n \"GENERATED_SRC_DIR=$buildDir/generated/source\",\n \"PROJECT_BUILD_DIR=$buildDir\",\n- \"REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid\",\n- \"REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build\"\n+ \"REACT_ANDROID_DIR=${reactNativeRoot}/ReactAndroid\",\n+ \"REACT_ANDROID_BUILD_DIR=${reactNativeRoot}/ReactAndroid/build\",\n+ \"NODE_MODULES_DIR=$rootDir/../node_modules\"\n cFlags \"-Wall\", \"-Werror\", \"-fexceptions\", \"-frtti\", \"-DWITH_INSPECTOR=1\"\n cppFlags \"-std=c++17\"\n // Make sure this target name is the same you specify inside the\n@@ -329,8 +332,10 @@ dependencies {\n }\n \n if (enableHermes) {\n- debugImplementation files(new File([\"node\", \"--print\", \"require.resolve('hermes-engine/package.json')\"].execute(null, rootDir).text.trim(), \"../android/hermes-debug.aar\"))\n- releaseImplementation files(new File([\"node\", \"--print\", \"require.resolve('hermes-engine/package.json')\"].execute(null, rootDir).text.trim(), \"../android/hermes-release.aar\"))\n+ //noinspection GradleDynamicVersion\n+ implementation(\"com.facebook.react:hermes-engine:+\") { // From node_modules\n+ exclude group:'com.facebook.fbjni'\n+ }\n } else {\n implementation jscFlavor\n }\n@@ -343,7 +348,11 @@ if (isNewArchitectureEnabled()) {\n configurations.all {\n resolutionStrategy.dependencySubstitution {\n substitute(module(\"com.facebook.react:react-native\"))\n- .using(project(\":ReactAndroid\")).because(\"On New Architecture we're building React Native from source\")\n+ .using(project(\":ReactAndroid\"))\n+ .because(\"On New Architecture we're building React Native from source\")\n+ substitute(module(\"com.facebook.react:hermes-engine\"))\n+ .using(project(\":ReactAndroid:hermes-engine\"))\n+ .because(\"On New Architecture we're building Hermes from source\")\n }\n }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\nindex 576e23db45..8e13797d9b 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n@@ -28,10 +28,15 @@ public class MainActivity extends ReactActivity {\n return \"main\";\n }\n \n+ /**\n+ * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n+ * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n+ * (Paper).\n+ */\n @Override\n protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this,\n- new ReactActivityDelegate(this, getMainComponentName())\n+ return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n+ new MainActivityDelegate(this, getMainComponentName())\n );\n }\n \n@@ -54,4 +59,25 @@ public class MainActivity extends ReactActivity {\n // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n super.invokeDefaultOnBackPressed();\n }\n+\n+ public static class MainActivityDelegate extends ReactActivityDelegate {\n+ public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n+ super(activity, mainComponentName);\n+ }\n+\n+ @Override\n+ protected ReactRootView createRootView() {\n+ ReactRootView reactRootView = new ReactRootView(getContext());\n+ // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n+ reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n+ return reactRootView;\n+ }\n+\n+ @Override\n+ protected boolean isConcurrentRootEnabled() {\n+ // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n+ // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n+ return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n+ }\n+ }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\nindex f555e36448..7665dd923f 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n@@ -18,6 +18,7 @@ import com.facebook.react.fabric.ComponentFactory;\n import com.facebook.react.fabric.CoreComponentsRegistry;\n import com.facebook.react.fabric.EmptyReactNativeConfig;\n import com.facebook.react.fabric.FabricJSIModuleProvider;\n+import com.facebook.react.fabric.ReactNativeConfig;\n import com.facebook.react.uimanager.ViewManagerRegistry;\n import com.helloworld.BuildConfig;\n import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n@@ -105,7 +106,7 @@ public class MainApplicationReactNativeHost extends ReactNativeHost {\n return new FabricJSIModuleProvider(\n reactApplicationContext,\n componentFactory,\n- new EmptyReactNativeConfig(),\n+ ReactNativeConfig.DEFAULT_CONFIG,\n viewManagerRegistry);\n }\n });\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\nindex 0ae6366756..cda1391225 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n@@ -17,7 +17,7 @@ LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n \n # If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source \n+# will have to uncomment those lines to include the generated source\n # files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n #\n # LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n@@ -28,8 +28,7 @@ LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n LOCAL_SHARED_LIBRARIES := \\\n libfabricjni \\\n libfbjni \\\n- libfolly_futures \\\n- libfolly_json \\\n+ libfolly_runtime \\\n libglog \\\n libjsi \\\n libreact_codegen_rncore \\\ndiff --git a/templates/expo-template-bare-minimum/android/build.gradle b/templates/expo-template-bare-minimum/android/build.gradle\nindex fa77528908..f259b31a11 100644\n--- a/templates/expo-template-bare-minimum/android/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/build.gradle\n@@ -1,7 +1,6 @@\n import org.apache.tools.ant.taskdefs.condition.Os\n \n // Top-level build file where you can add configuration options common to all sub-projects/modules.\n-\n buildscript {\n ext {\n buildToolsVersion = findProperty('android.buildToolsVersion') ?: '31.0.0'\n@@ -26,9 +25,9 @@ buildscript {\n mavenCentral()\n }\n dependencies {\n- classpath('com.android.tools.build:gradle:7.0.4')\n+ classpath('com.android.tools.build:gradle:7.1.1')\n classpath('com.facebook.react:react-native-gradle-plugin')\n- classpath('de.undercouch:gradle-download-task:4.1.2')\n+ classpath('de.undercouch:gradle-download-task:5.0.1')\n // NOTE: Do not place your application dependencies here; they belong\n // in the individual module build.gradle files\n }\n@@ -65,3 +64,9 @@ allprojects {\n maven { url 'https://www.jitpack.io' }\n }\n }\n+\n+configurations.all {\n+ resolutionStrategy {\n+ force 'com.facebook.react:react-native:0.69.6'\n+ }\n+}\n\\ No newline at end of file\ndiff --git a/templates/expo-template-bare-minimum/android/settings.gradle b/templates/expo-template-bare-minimum/android/settings.gradle\nindex fa543f0c69..b3332319f9 100644\n--- a/templates/expo-template-bare-minimum/android/settings.gradle\n+++ b/templates/expo-template-bare-minimum/android/settings.gradle\n@@ -12,4 +12,6 @@ includeBuild(new File([\"node\", \"--print\", \"require.resolve('react-native-gradle-\n if (settings.hasProperty(\"newArchEnabled\") && settings.newArchEnabled == \"true\") {\n include(\":ReactAndroid\")\n project(\":ReactAndroid\").projectDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../ReactAndroid\");\n+ include(\":ReactAndroid:hermes-engine\")\n+ project(\":ReactAndroid:hermes-engine\").projectDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../ReactAndroid/hermes-engine\");\n }\ndiff --git a/templates/expo-template-bare-minimum/ios/.xcode.env b/templates/expo-template-bare-minimum/ios/.xcode.env\nnew file mode 100644\nindex 0000000000..3d5782c715\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/ios/.xcode.env\n@@ -0,0 +1,11 @@\n+# This `.xcode.env` file is versioned and is used to source the environment\n+# used when running script phases inside Xcode.\n+# To customize your local environment, you can create an `.xcode.env.local`\n+# file that is not versioned.\n+\n+# NODE_BINARY variable contains the PATH to the node executable.\n+#\n+# Customize the NODE_BINARY variable here.\n+# For example, to use nvm with brew, add the following line\n+# . \"$(brew --prefix nvm)/nvm.sh\" --no-use\n+export NODE_BINARY=$(command -v node)\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\nindex 2ac180e425..a4a049f05d 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n@@ -214,7 +214,7 @@\n \t\t\t);\n \t\t\trunOnlyForDeploymentPostprocessing = 0;\n \t\t\tshellPath = /bin/sh;\n-\t\t\tshellScript = \"export NODE_BINARY=node\\n\\n# The project root by default is one level up from the ios directory\\nexport PROJECT_ROOT=\\\"$PROJECT_DIR\\\"/..\\n\\n`node --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\\\"`\\n\";\n+\t\t\tshellScript = \"if [[ -f \\\"$PODS_ROOT/../.xcode.env\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env\\\"\\nfi\\nif [[ -f \\\"$PODS_ROOT/../.xcode.env.local\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env.local\\\"\\nfi\\n\\n# The project root by default is one level up from the ios directory\\nexport PROJECT_ROOT=\\\"$PROJECT_DIR\\\"/..\\n\\nif [[ \\\"$CONFIGURATION\\\" = *Debug* ]]; then\\n export SKIP_BUNDLING=1\\nfi\\n`\\\"$NODE_BINARY\\\" --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\\\"`\\n\\n\";\n \t\t};\n \t\t08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {\n \t\t\tisa = PBXShellScriptBuildPhase;\n@@ -276,7 +276,7 @@\n \t\t\t);\n \t\t\trunOnlyForDeploymentPostprocessing = 0;\n \t\t\tshellPath = /bin/sh;\n-\t\t\tshellScript = \"export RCT_METRO_PORT=\\\"${RCT_METRO_PORT:=8081}\\\"\\necho \\\"export RCT_METRO_PORT=${RCT_METRO_PORT}\\\" > `node --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\\\"`\\nif [ -z \\\"${RCT_NO_LAUNCH_PACKAGER+xxx}\\\" ] ; then\\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\\n if ! curl -s \\\"http://localhost:${RCT_METRO_PORT}/status\\\" | grep -q \\\"packager-status:running\\\" ; then\\n echo \\\"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\\\"\\n exit 2\\n fi\\n else\\n open `node --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/launchPackager.command'\\\"` || echo \\\"Can't start packager automatically\\\"\\n fi\\nfi\\n\";\n+\t\t\tshellScript = \"if [[ -f \\\"$PODS_ROOT/../.xcode.env\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env\\\"\\nfi\\nif [[ -f \\\"$PODS_ROOT/../.xcode.env.local\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env.local\\\"\\nfi\\n\\nexport RCT_METRO_PORT=\\\"${RCT_METRO_PORT:=8081}\\\"\\necho \\\"export RCT_METRO_PORT=${RCT_METRO_PORT}\\\" > `$NODE_BINARY --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\\\"`\\nif [ -z \\\"${RCT_NO_LAUNCH_PACKAGER+xxx}\\\" ] ; then\\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\\n if ! curl -s \\\"http://localhost:${RCT_METRO_PORT}/status\\\" | grep -q \\\"packager-status:running\\\" ; then\\n echo \\\"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\\\"\\n exit 2\\n fi\\n else\\n open `$NODE_BINARY --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/launchPackager.command'\\\"` || echo \\\"Can't start packager automatically\\\"\\n fi\\nfi\\n\";\n \t\t\tshowEnvVarsInLog = 0;\n \t\t};\n /* End PBXShellScriptBuildPhase section */\n@@ -308,7 +308,7 @@\n \t\t\t\t\t\"FB_SONARKIT_ENABLED=1\",\n \t\t\t\t);\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n@@ -331,7 +331,7 @@\n \t\t\t\tCLANG_ENABLE_MODULES = YES;\n \t\t\t\tCURRENT_PROJECT_VERSION = 1;\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n@@ -392,7 +392,7 @@\n \t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n \t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n \t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"/usr/lib/swift $(inherited)\";\n \t\t\t\tLIBRARY_SEARCH_PATHS = \"\\\"$(inherited)\\\"\";\n \t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n@@ -441,7 +441,7 @@\n \t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n \t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n \t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"/usr/lib/swift $(inherited)\";\n \t\t\t\tLIBRARY_SEARCH_PATHS = \"\\\"$(inherited)\\\"\";\n \t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\nindex aef81ec589..a6e13e11ab 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n@@ -18,6 +18,8 @@\n \n #import \n \n+static NSString *const kRNConcurrentRoot = @\"concurrentRoot\";\n+\n @interface AppDelegate () {\n RCTTurboModuleManager *_turboModuleManager;\n RCTSurfacePresenterBridgeAdapter *_bridgeAdapter;\n@@ -43,7 +45,8 @@\n bridge.surfacePresenter = _bridgeAdapter.surfacePresenter;\n #endif\n \n- UIView *rootView = [self.reactDelegate createRootViewWithBridge:bridge moduleName:@\"main\" initialProperties:nil];\n+ NSDictionary *initProps = [self prepareInitialProps];\n+ UIView *rootView = [self.reactDelegate createRootViewWithBridge:bridge moduleName:@\"main\" initialProperties:initProps];\n \n rootView.backgroundColor = [UIColor whiteColor];\n self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n@@ -63,6 +66,26 @@\n return @[];\n }\n \n+/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off.\n+///\n+/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html\n+/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture).\n+/// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`.\n+- (BOOL)concurrentRootEnabled\n+{\n+ // Switch this bool to turn on and off the concurrent root\n+ return true;\n+}\n+\n+- (NSDictionary *)prepareInitialProps\n+{\n+ NSMutableDictionary *initProps = [NSMutableDictionary new];\n+#if RCT_NEW_ARCH_ENABLED\n+ initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]);\n+#endif\n+ return initProps;\n+}\n+\n - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge\n {\n #if DEBUG\ndiff --git a/templates/expo-template-bare-minimum/ios/Podfile b/templates/expo-template-bare-minimum/ios/Podfile\nindex 29797efaaa..91612acca9 100644\n--- a/templates/expo-template-bare-minimum/ios/Podfile\n+++ b/templates/expo-template-bare-minimum/ios/Podfile\n@@ -5,7 +5,7 @@ require File.join(File.dirname(`node --print \"require.resolve('@react-native-com\n require 'json'\n podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}\n \n-platform :ios, podfile_properties['ios.deploymentTarget'] || '12.0'\n+platform :ios, podfile_properties['ios.deploymentTarget'] || '12.4'\n install! 'cocoapods',\n :deterministic_uuids => false\n \n@@ -36,6 +36,17 @@ target 'HelloWorld' do\n post_install do |installer|\n react_native_post_install(installer)\n __apply_Xcode_12_5_M1_post_install_workaround(installer)\n+\n+ # This is necessary for Xcode 14, because it signs resource bundles by default\n+ # when building for devices.\n+ installer.target_installation_results.pod_target_installation_results\n+ .each do |pod_name, target_installation_result|\n+ target_installation_result.resource_bundle_targets.each do |resource_bundle_target|\n+ resource_bundle_target.build_configurations.each do |config|\n+ config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'\n+ end\n+ end\n+ end\n end\n \n post_integrate do |installer|\n@@ -45,5 +56,4 @@ target 'HelloWorld' do\n Pod::UI.warn e\n end\n end\n-\n end\ndiff --git a/templates/expo-template-bare-minimum/ios/gitignore b/templates/expo-template-bare-minimum/ios/gitignore\nindex 2b13519939..8beb344303 100644\n--- a/templates/expo-template-bare-minimum/ios/gitignore\n+++ b/templates/expo-template-bare-minimum/ios/gitignore\n@@ -21,6 +21,7 @@ DerivedData\n *.ipa\n *.xcuserstate\n project.xcworkspace\n+.xcode.env.local\n \n # Bundle artifacts\n *.jsbundle\ndiff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json\nindex 69e7eb9619..d5ca09a584 100644\n--- a/templates/expo-template-bare-minimum/package.json\n+++ b/templates/expo-template-bare-minimum/package.json\n@@ -1,7 +1,7 @@\n {\n \"name\": \"expo-template-bare-minimum\",\n \"description\": \"This bare project template includes a minimal setup for using unimodules with React Native.\",\n- \"version\": \"45.0.6\",\n+ \"version\": \"46.0.37\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"start\": \"expo start --dev-client\",\n@@ -10,13 +10,13 @@\n \"web\": \"expo start --web\"\n },\n \"dependencies\": {\n- \"expo\": \"~45.0.0\",\n- \"expo-splash-screen\": \"~0.15.1\",\n- \"expo-status-bar\": \"~1.3.0\",\n- \"react\": \"17.0.2\",\n- \"react-dom\": \"17.0.2\",\n- \"react-native\": \"0.68.2\",\n- \"react-native-web\": \"0.17.7\"\n+ \"expo\": \"~46.0.21\",\n+ \"expo-splash-screen\": \"~0.16.2\",\n+ \"expo-status-bar\": \"~1.4.0\",\n+ \"react\": \"18.0.0\",\n+ \"react-dom\": \"18.0.0\",\n+ \"react-native\": \"0.69.9\",\n+ \"react-native-web\": \"~0.18.7\"\n },\n \"devDependencies\": {\n \"@babel/core\": \"^7.12.9\"\n","46..46":"","45..47":"diff --git a/templates/expo-template-bare-minimum/android/app/build.gradle b/templates/expo-template-bare-minimum/android/app/build.gradle\nindex 346fb02564..648135611c 100644\n--- a/templates/expo-template-bare-minimum/android/app/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/app/build.gradle\n@@ -1,7 +1,6 @@\n apply plugin: \"com.android.application\"\n \n import com.android.build.OutputFile\n-import org.apache.tools.ant.taskdefs.condition.Os\n \n /**\n * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets\n@@ -80,15 +79,17 @@ import org.apache.tools.ant.taskdefs.condition.Os\n \n def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath()\n \n+def reactNativeRoot = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath()\n+\n project.ext.react = [\n entryFile: [\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\"].execute(null, rootDir).text.trim(),\n enableHermes: (findProperty('expo.jsEngine') ?: \"jsc\") == \"hermes\",\n- cliPath: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/cli.js\",\n- hermesCommand: new File([\"node\", \"--print\", \"require.resolve('hermes-engine/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/%OS-BIN%/hermesc\",\n- composeSourceMapsPath: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/scripts/compose-source-maps.js\",\n+ hermesCommand: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/sdks/hermesc/%OS-BIN%/hermesc\",\n+ cliPath: \"${reactNativeRoot}/cli.js\",\n+ composeSourceMapsPath: \"${reactNativeRoot}/scripts/compose-source-maps.js\",\n ]\n \n-apply from: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../react.gradle\")\n+apply from: new File(reactNativeRoot, \"react.gradle\")\n \n /**\n * Set this to true to create two separate APKs instead of one:\n@@ -149,26 +150,14 @@ android {\n buildConfigField \"boolean\", \"IS_NEW_ARCHITECTURE_ENABLED\", isNewArchitectureEnabled().toString()\n \n if (isNewArchitectureEnabled()) {\n- // We configure the NDK build only if you decide to opt-in for the New Architecture.\n+ // We configure the CMake build only if you decide to opt-in for the New Architecture.\n externalNativeBuild {\n- ndkBuild {\n- arguments \"APP_PLATFORM=android-21\",\n- \"APP_STL=c++_shared\",\n- \"NDK_TOOLCHAIN_VERSION=clang\",\n- \"GENERATED_SRC_DIR=$buildDir/generated/source\",\n- \"PROJECT_BUILD_DIR=$buildDir\",\n- \"REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid\",\n- \"REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build\"\n- cFlags \"-Wall\", \"-Werror\", \"-fexceptions\", \"-frtti\", \"-DWITH_INSPECTOR=1\"\n- cppFlags \"-std=c++17\"\n- // Make sure this target name is the same you specify inside the\n- // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.\n- targets \"helloworld_appmodules\"\n-\n- // Fix for windows limit on number of character in file paths and in command lines\n- if (Os.isFamily(Os.FAMILY_WINDOWS)) {\n- arguments \"NDK_APP_SHORT_COMMANDS=true\"\n- }\n+ cmake {\n+ arguments \"-DPROJECT_BUILD_DIR=$buildDir\",\n+ \"-DREACT_ANDROID_DIR=${reactNativeRoot}/ReactAndroid\",\n+ \"-DREACT_ANDROID_BUILD_DIR=${reactNativeRoot}/ReactAndroid/build\",\n+ \"-DNODE_MODULES_DIR=$rootDir/../node_modules\",\n+ \"-DANDROID_STL=c++_shared\"\n }\n }\n if (!enableSeparateBuildPerCPUArchitecture) {\n@@ -180,10 +169,10 @@ android {\n }\n \n if (isNewArchitectureEnabled()) {\n- // We configure the NDK build only if you decide to opt-in for the New Architecture.\n+ // We configure the CMake build only if you decide to opt-in for the New Architecture.\n externalNativeBuild {\n- ndkBuild {\n- path \"$projectDir/src/main/jni/Android.mk\"\n+ cmake {\n+ path \"$projectDir/src/main/jni/CMakeLists.txt\"\n }\n }\n def reactAndroidProjectDir = project(':ReactAndroid').projectDir\n@@ -205,15 +194,15 @@ android {\n preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)\n \n // Due to a bug inside AGP, we have to explicitly set a dependency\n- // between configureNdkBuild* tasks and the preBuild tasks.\n+ // between configureCMakeDebug* tasks and the preBuild tasks.\n // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732\n- configureNdkBuildRelease.dependsOn(preReleaseBuild)\n- configureNdkBuildDebug.dependsOn(preDebugBuild)\n+ configureCMakeRelWithDebInfo.dependsOn(preReleaseBuild)\n+ configureCMakeDebug.dependsOn(preDebugBuild)\n reactNativeArchitectures().each { architecture ->\n- tasks.findByName(\"configureNdkBuildDebug[${architecture}]\")?.configure {\n+ tasks.findByName(\"configureCMakeDebug[${architecture}]\")?.configure {\n dependsOn(\"preDebugBuild\")\n }\n- tasks.findByName(\"configureNdkBuildRelease[${architecture}]\")?.configure {\n+ tasks.findByName(\"configureCMakeRelWithDebInfo[${architecture}]\")?.configure {\n dependsOn(\"preReleaseBuild\")\n }\n }\n@@ -329,8 +318,10 @@ dependencies {\n }\n \n if (enableHermes) {\n- debugImplementation files(new File([\"node\", \"--print\", \"require.resolve('hermes-engine/package.json')\"].execute(null, rootDir).text.trim(), \"../android/hermes-debug.aar\"))\n- releaseImplementation files(new File([\"node\", \"--print\", \"require.resolve('hermes-engine/package.json')\"].execute(null, rootDir).text.trim(), \"../android/hermes-release.aar\"))\n+ //noinspection GradleDynamicVersion\n+ implementation(\"com.facebook.react:hermes-engine:+\") { // From node_modules\n+ exclude group:'com.facebook.fbjni'\n+ }\n } else {\n implementation jscFlavor\n }\n@@ -343,7 +334,11 @@ if (isNewArchitectureEnabled()) {\n configurations.all {\n resolutionStrategy.dependencySubstitution {\n substitute(module(\"com.facebook.react:react-native\"))\n- .using(project(\":ReactAndroid\")).because(\"On New Architecture we're building React Native from source\")\n+ .using(project(\":ReactAndroid\"))\n+ .because(\"On New Architecture we're building React Native from source\")\n+ substitute(module(\"com.facebook.react:hermes-engine\"))\n+ .using(project(\":ReactAndroid:hermes-engine\"))\n+ .because(\"On New Architecture we're building Hermes from source\")\n }\n }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\nindex 576e23db45..8e13797d9b 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n@@ -28,10 +28,15 @@ public class MainActivity extends ReactActivity {\n return \"main\";\n }\n \n+ /**\n+ * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n+ * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n+ * (Paper).\n+ */\n @Override\n protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this,\n- new ReactActivityDelegate(this, getMainComponentName())\n+ return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n+ new MainActivityDelegate(this, getMainComponentName())\n );\n }\n \n@@ -54,4 +59,25 @@ public class MainActivity extends ReactActivity {\n // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n super.invokeDefaultOnBackPressed();\n }\n+\n+ public static class MainActivityDelegate extends ReactActivityDelegate {\n+ public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n+ super(activity, mainComponentName);\n+ }\n+\n+ @Override\n+ protected ReactRootView createRootView() {\n+ ReactRootView reactRootView = new ReactRootView(getContext());\n+ // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n+ reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n+ return reactRootView;\n+ }\n+\n+ @Override\n+ protected boolean isConcurrentRootEnabled() {\n+ // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n+ // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n+ return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n+ }\n+ }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\nindex f555e36448..7665dd923f 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n@@ -18,6 +18,7 @@ import com.facebook.react.fabric.ComponentFactory;\n import com.facebook.react.fabric.CoreComponentsRegistry;\n import com.facebook.react.fabric.EmptyReactNativeConfig;\n import com.facebook.react.fabric.FabricJSIModuleProvider;\n+import com.facebook.react.fabric.ReactNativeConfig;\n import com.facebook.react.uimanager.ViewManagerRegistry;\n import com.helloworld.BuildConfig;\n import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n@@ -105,7 +106,7 @@ public class MainApplicationReactNativeHost extends ReactNativeHost {\n return new FabricJSIModuleProvider(\n reactApplicationContext,\n componentFactory,\n- new EmptyReactNativeConfig(),\n+ ReactNativeConfig.DEFAULT_CONFIG,\n viewManagerRegistry);\n }\n });\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex 0ae6366756..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,49 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source \n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_futures \\\n- libfolly_json \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt b/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\nnew file mode 100644\nindex 0000000000..d2cad3a326\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\n@@ -0,0 +1,7 @@\n+cmake_minimum_required(VERSION 3.13)\n+\n+# Define the library name here.\n+project(helloworld_appmodules)\n+\n+# This file includes all the necessary to let you build your application with the New Architecture.\n+include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\nindex 0ac23cc626..26162dd872 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n@@ -1,12 +1,13 @@\n #include \"MainApplicationModuleProvider.h\"\n \n+#include \n #include \n \n namespace facebook {\n namespace react {\n \n std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n+ const std::string &moduleName,\n const JavaTurboModule::InitParams ¶ms) {\n // Here you can provide your own module provider for TurboModules coming from\n // either your application or from external libraries. The approach to follow\n@@ -17,6 +18,13 @@ std::shared_ptr MainApplicationModuleProvider(\n // return module;\n // }\n // return rncore_ModuleProvider(moduleName, params);\n+\n+ // Module providers autolinked by RN CLI\n+ auto rncli_module = rncli_ModuleProvider(moduleName, params);\n+ if (rncli_module != nullptr) {\n+ return rncli_module;\n+ }\n+\n return rncore_ModuleProvider(moduleName, params);\n }\n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\nindex 0fa43fa69a..b38ccf53fd 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n@@ -9,7 +9,7 @@ namespace facebook {\n namespace react {\n \n std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n+ const std::string &moduleName,\n const JavaTurboModule::InitParams ¶ms);\n \n } // namespace react\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\nindex dbbdc3d132..5fd688c509 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n@@ -22,21 +22,21 @@ void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n \n std::shared_ptr\n MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n+ const std::string &name,\n+ const std::shared_ptr &jsInvoker) {\n // Not implemented yet: provide pure-C++ NativeModules here.\n return nullptr;\n }\n \n std::shared_ptr\n MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n+ const std::string &name,\n const JavaTurboModule::InitParams ¶ms) {\n return MainApplicationModuleProvider(name, params);\n }\n \n bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n+ const std::string &name) {\n return getTurboModule(name, nullptr) != nullptr ||\n getTurboModule(name, {.moduleName = name}) != nullptr;\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\nindex 25f27722d0..9ee38a81f6 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n@@ -21,17 +21,17 @@ class MainApplicationTurboModuleManagerDelegate\n static void registerNatives();\n \n std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n+ const std::string &name,\n+ const std::shared_ptr &jsInvoker) override;\n std::shared_ptr getTurboModule(\n- const std::string name,\n+ const std::string &name,\n const JavaTurboModule::InitParams ¶ms) override;\n \n /**\n * Test-only method. Allows user to verify whether a TurboModule can be\n * created by instances of this class.\n */\n- bool canCreateTurboModule(std::string name);\n+ bool canCreateTurboModule(const std::string &name);\n };\n \n } // namespace react\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\nindex 8f7edffd64..54f598a486 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n@@ -4,6 +4,7 @@\n #include \n #include \n #include \n+#include \n \n namespace facebook {\n namespace react {\n@@ -14,6 +15,9 @@ std::shared_ptr\n MainComponentsRegistry::sharedProviderRegistry() {\n auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n \n+ // Autolinked providers registered by RN CLI\n+ rncli_registerProviders(providerRegistry);\n+\n // Custom Fabric Components go here. You can register custom\n // components coming from your App or from 3rd party libraries here.\n //\ndiff --git a/templates/expo-template-bare-minimum/android/build.gradle b/templates/expo-template-bare-minimum/android/build.gradle\nindex fa77528908..8181b282cd 100644\n--- a/templates/expo-template-bare-minimum/android/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/build.gradle\n@@ -1,5 +1,3 @@\n-import org.apache.tools.ant.taskdefs.condition.Os\n-\n // Top-level build file where you can add configuration options common to all sub-projects/modules.\n \n buildscript {\n@@ -26,15 +24,15 @@ buildscript {\n mavenCentral()\n }\n dependencies {\n- classpath('com.android.tools.build:gradle:7.0.4')\n+ classpath('com.android.tools.build:gradle:7.2.1')\n classpath('com.facebook.react:react-native-gradle-plugin')\n- classpath('de.undercouch:gradle-download-task:4.1.2')\n+ classpath('de.undercouch:gradle-download-task:5.0.1')\n // NOTE: Do not place your application dependencies here; they belong\n // in the individual module build.gradle files\n }\n }\n \n-def REACT_NATIVE_VERSION = new File(['node', '--print',\"JSON.parse(require('fs').readFileSync(require.resolve('react-native/package.json'), 'utf-8')).version\"].execute(null, rootDir).text.trim())\n+def REACT_NATIVE_VERSION = new File(['node', '--print', \"JSON.parse(require('fs').readFileSync(require.resolve('react-native/package.json'), 'utf-8')).version\"].execute(null, rootDir).text.trim())\n \n allprojects {\n configurations.all {\ndiff --git a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar\nindex 7454180f2a..249e5832f0 100644\nBinary files a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar and b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar differ\ndiff --git a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\nindex 669386b870..8fad3f5a98 100644\n--- a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\n+++ b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\n@@ -1,5 +1,5 @@\n distributionBase=GRADLE_USER_HOME\n distributionPath=wrapper/dists\n-distributionUrl=https\\://services.gradle.org/distributions/gradle-7.3.3-all.zip\n+distributionUrl=https\\://services.gradle.org/distributions/gradle-7.5.1-all.zip\n zipStoreBase=GRADLE_USER_HOME\n zipStorePath=wrapper/dists\ndiff --git a/templates/expo-template-bare-minimum/android/gradlew b/templates/expo-template-bare-minimum/android/gradlew\nindex 1b6c787337..a69d9cb6c2 100755\n--- a/templates/expo-template-bare-minimum/android/gradlew\n+++ b/templates/expo-template-bare-minimum/android/gradlew\n@@ -205,6 +205,12 @@ set -- \\\n org.gradle.wrapper.GradleWrapperMain \\\n \"$@\"\n \n+# Stop when \"xargs\" is not available.\n+if ! command -v xargs >/dev/null 2>&1\n+then\n+ die \"xargs is not available\"\n+fi\n+\n # Use \"xargs\" to parse quoted args.\n #\n # With -n1 it outputs one arg per line, with the quotes and backslashes removed.\ndiff --git a/templates/expo-template-bare-minimum/android/gradlew.bat b/templates/expo-template-bare-minimum/android/gradlew.bat\nindex ac1b06f938..53a6b238d4 100644\n--- a/templates/expo-template-bare-minimum/android/gradlew.bat\n+++ b/templates/expo-template-bare-minimum/android/gradlew.bat\n@@ -14,7 +14,7 @@\n @rem limitations under the License.\r\n @rem\r\n \r\n-@if \"%DEBUG%\" == \"\" @echo off\r\n+@if \"%DEBUG%\"==\"\" @echo off\r\n @rem ##########################################################################\r\n @rem\r\n @rem Gradle startup script for Windows\r\n@@ -25,7 +25,7 @@\n if \"%OS%\"==\"Windows_NT\" setlocal\r\n \r\n set DIRNAME=%~dp0\r\n-if \"%DIRNAME%\" == \"\" set DIRNAME=.\r\n+if \"%DIRNAME%\"==\"\" set DIRNAME=.\r\n set APP_BASE_NAME=%~n0\r\n set APP_HOME=%DIRNAME%\r\n \r\n@@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome\n \r\n set JAVA_EXE=java.exe\r\n %JAVA_EXE% -version >NUL 2>&1\r\n-if \"%ERRORLEVEL%\" == \"0\" goto execute\r\n+if %ERRORLEVEL% equ 0 goto execute\r\n \r\n echo.\r\n echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\r\n@@ -75,13 +75,15 @@ set CLASSPATH=%APP_HOME%\\gradle\\wrapper\\gradle-wrapper.jar\n \r\n :end\r\n @rem End local scope for the variables with windows NT shell\r\n-if \"%ERRORLEVEL%\"==\"0\" goto mainEnd\r\n+if %ERRORLEVEL% equ 0 goto mainEnd\r\n \r\n :fail\r\n rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of\r\n rem the _cmd.exe /c_ return code!\r\n-if not \"\" == \"%GRADLE_EXIT_CONSOLE%\" exit 1\r\n-exit /b 1\r\n+set EXIT_CODE=%ERRORLEVEL%\r\n+if %EXIT_CODE% equ 0 set EXIT_CODE=1\r\n+if not \"\"==\"%GRADLE_EXIT_CONSOLE%\" exit %EXIT_CODE%\r\n+exit /b %EXIT_CODE%\r\n \r\n :mainEnd\r\n if \"%OS%\"==\"Windows_NT\" endlocal\r\ndiff --git a/templates/expo-template-bare-minimum/android/settings.gradle b/templates/expo-template-bare-minimum/android/settings.gradle\nindex fa543f0c69..b3332319f9 100644\n--- a/templates/expo-template-bare-minimum/android/settings.gradle\n+++ b/templates/expo-template-bare-minimum/android/settings.gradle\n@@ -12,4 +12,6 @@ includeBuild(new File([\"node\", \"--print\", \"require.resolve('react-native-gradle-\n if (settings.hasProperty(\"newArchEnabled\") && settings.newArchEnabled == \"true\") {\n include(\":ReactAndroid\")\n project(\":ReactAndroid\").projectDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../ReactAndroid\");\n+ include(\":ReactAndroid:hermes-engine\")\n+ project(\":ReactAndroid:hermes-engine\").projectDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../ReactAndroid/hermes-engine\");\n }\ndiff --git a/templates/expo-template-bare-minimum/gitignore b/templates/expo-template-bare-minimum/gitignore\nindex c8eb0f9a64..67397f65f9 100644\n--- a/templates/expo-template-bare-minimum/gitignore\n+++ b/templates/expo-template-bare-minimum/gitignore\n@@ -30,6 +30,7 @@ build/\n local.properties\n *.iml\n *.hprof\n+.cxx/\n \n # node.js\n #\ndiff --git a/templates/expo-template-bare-minimum/ios/.xcode.env b/templates/expo-template-bare-minimum/ios/.xcode.env\nnew file mode 100644\nindex 0000000000..3d5782c715\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/ios/.xcode.env\n@@ -0,0 +1,11 @@\n+# This `.xcode.env` file is versioned and is used to source the environment\n+# used when running script phases inside Xcode.\n+# To customize your local environment, you can create an `.xcode.env.local`\n+# file that is not versioned.\n+\n+# NODE_BINARY variable contains the PATH to the node executable.\n+#\n+# Customize the NODE_BINARY variable here.\n+# For example, to use nvm with brew, add the following line\n+# . \"$(brew --prefix nvm)/nvm.sh\" --no-use\n+export NODE_BINARY=$(command -v node)\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\nindex 2ac180e425..62a1be2493 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n@@ -214,7 +214,7 @@\n \t\t\t);\n \t\t\trunOnlyForDeploymentPostprocessing = 0;\n \t\t\tshellPath = /bin/sh;\n-\t\t\tshellScript = \"export NODE_BINARY=node\\n\\n# The project root by default is one level up from the ios directory\\nexport PROJECT_ROOT=\\\"$PROJECT_DIR\\\"/..\\n\\n`node --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\\\"`\\n\";\n+\t\t\tshellScript = \"if [[ -f \\\"$PODS_ROOT/../.xcode.env\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env\\\"\\nfi\\nif [[ -f \\\"$PODS_ROOT/../.xcode.env.local\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env.local\\\"\\nfi\\n\\n# The project root by default is one level up from the ios directory\\nexport PROJECT_ROOT=\\\"$PROJECT_DIR\\\"/..\\n\\nif [[ \\\"$CONFIGURATION\\\" = *Debug* ]]; then\\n export SKIP_BUNDLING=1\\nfi\\nif [[ -z \\\"$ENTRY_FILE\\\" ]]; then\\n # Set the entry JS file using the bundler's entry resolution.\\n export ENTRY_FILE=\\\"$(\\\"$NODE_BINARY\\\" -e \\\"require('expo/scripts/resolveAppEntry')\\\" $PROJECT_ROOT ios relative | tail -n 1)\\\"\\nfi\\n\\n`\\\"$NODE_BINARY\\\" --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\\\"`\\n\\n\";\n \t\t};\n \t\t08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {\n \t\t\tisa = PBXShellScriptBuildPhase;\n@@ -276,7 +276,7 @@\n \t\t\t);\n \t\t\trunOnlyForDeploymentPostprocessing = 0;\n \t\t\tshellPath = /bin/sh;\n-\t\t\tshellScript = \"export RCT_METRO_PORT=\\\"${RCT_METRO_PORT:=8081}\\\"\\necho \\\"export RCT_METRO_PORT=${RCT_METRO_PORT}\\\" > `node --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\\\"`\\nif [ -z \\\"${RCT_NO_LAUNCH_PACKAGER+xxx}\\\" ] ; then\\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\\n if ! curl -s \\\"http://localhost:${RCT_METRO_PORT}/status\\\" | grep -q \\\"packager-status:running\\\" ; then\\n echo \\\"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\\\"\\n exit 2\\n fi\\n else\\n open `node --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/launchPackager.command'\\\"` || echo \\\"Can't start packager automatically\\\"\\n fi\\nfi\\n\";\n+\t\t\tshellScript = \"if [[ -f \\\"$PODS_ROOT/../.xcode.env\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env\\\"\\nfi\\nif [[ -f \\\"$PODS_ROOT/../.xcode.env.local\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env.local\\\"\\nfi\\n\\nexport RCT_METRO_PORT=\\\"${RCT_METRO_PORT:=8081}\\\"\\necho \\\"export RCT_METRO_PORT=${RCT_METRO_PORT}\\\" > `$NODE_BINARY --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\\\"`\\nif [ -z \\\"${RCT_NO_LAUNCH_PACKAGER+xxx}\\\" ] ; then\\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\\n if ! curl -s \\\"http://localhost:${RCT_METRO_PORT}/status\\\" | grep -q \\\"packager-status:running\\\" ; then\\n echo \\\"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\\\"\\n exit 2\\n fi\\n else\\n open `$NODE_BINARY --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/launchPackager.command'\\\"` || echo \\\"Can't start packager automatically\\\"\\n fi\\nfi\\n\";\n \t\t\tshowEnvVarsInLog = 0;\n \t\t};\n /* End PBXShellScriptBuildPhase section */\n@@ -308,7 +308,7 @@\n \t\t\t\t\t\"FB_SONARKIT_ENABLED=1\",\n \t\t\t\t);\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n@@ -331,7 +331,7 @@\n \t\t\t\tCLANG_ENABLE_MODULES = YES;\n \t\t\t\tCURRENT_PROJECT_VERSION = 1;\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n@@ -392,7 +392,7 @@\n \t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n \t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n \t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"/usr/lib/swift $(inherited)\";\n \t\t\t\tLIBRARY_SEARCH_PATHS = \"\\\"$(inherited)\\\"\";\n \t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n@@ -441,7 +441,7 @@\n \t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n \t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n \t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"/usr/lib/swift $(inherited)\";\n \t\t\t\tLIBRARY_SEARCH_PATHS = \"\\\"$(inherited)\\\"\";\n \t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\nindex aef81ec589..a6e13e11ab 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n@@ -18,6 +18,8 @@\n \n #import \n \n+static NSString *const kRNConcurrentRoot = @\"concurrentRoot\";\n+\n @interface AppDelegate () {\n RCTTurboModuleManager *_turboModuleManager;\n RCTSurfacePresenterBridgeAdapter *_bridgeAdapter;\n@@ -43,7 +45,8 @@\n bridge.surfacePresenter = _bridgeAdapter.surfacePresenter;\n #endif\n \n- UIView *rootView = [self.reactDelegate createRootViewWithBridge:bridge moduleName:@\"main\" initialProperties:nil];\n+ NSDictionary *initProps = [self prepareInitialProps];\n+ UIView *rootView = [self.reactDelegate createRootViewWithBridge:bridge moduleName:@\"main\" initialProperties:initProps];\n \n rootView.backgroundColor = [UIColor whiteColor];\n self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n@@ -63,6 +66,26 @@\n return @[];\n }\n \n+/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off.\n+///\n+/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html\n+/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture).\n+/// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`.\n+- (BOOL)concurrentRootEnabled\n+{\n+ // Switch this bool to turn on and off the concurrent root\n+ return true;\n+}\n+\n+- (NSDictionary *)prepareInitialProps\n+{\n+ NSMutableDictionary *initProps = [NSMutableDictionary new];\n+#if RCT_NEW_ARCH_ENABLED\n+ initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]);\n+#endif\n+ return initProps;\n+}\n+\n - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge\n {\n #if DEBUG\ndiff --git a/templates/expo-template-bare-minimum/ios/Podfile b/templates/expo-template-bare-minimum/ios/Podfile\nindex 29797efaaa..474455b90d 100644\n--- a/templates/expo-template-bare-minimum/ios/Podfile\n+++ b/templates/expo-template-bare-minimum/ios/Podfile\n@@ -5,7 +5,7 @@ require File.join(File.dirname(`node --print \"require.resolve('@react-native-com\n require 'json'\n podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}\n \n-platform :ios, podfile_properties['ios.deploymentTarget'] || '12.0'\n+platform :ios, podfile_properties['ios.deploymentTarget'] || '13.0'\n install! 'cocoapods',\n :deterministic_uuids => false\n \n@@ -20,22 +20,35 @@ target 'HelloWorld' do\n \n use_react_native!(\n :path => config[:reactNativePath],\n- :hermes_enabled => flags[:hermes_enabled] || podfile_properties['expo.jsEngine'] == 'hermes',\n+ :hermes_enabled => podfile_properties['expo.jsEngine'] == 'hermes',\n :fabric_enabled => flags[:fabric_enabled],\n # An absolute path to your application root.\n- :app_path => \"#{Dir.pwd}/..\"\n+ :app_path => \"#{Pod::Config.instance.installation_root}/..\",\n+ #\n+ # Uncomment to opt-in to using Flipper\n+ # Note that if you have use_frameworks! enabled, Flipper will not work\n+ # :flipper_configuration => !ENV['CI'] ? FlipperConfiguration.enabled : FlipperConfiguration.disabled,\n )\n \n- # Uncomment to opt-in to using Flipper\n- # Note that if you have use_frameworks! enabled, Flipper will not work\n- #\n- # if !ENV['CI']\n- # use_flipper!()\n- # end\n-\n post_install do |installer|\n- react_native_post_install(installer)\n+ react_native_post_install(\n+ installer,\n+ # Set `mac_catalyst_enabled` to `true` in order to apply patches\n+ # necessary for Mac Catalyst builds\n+ :mac_catalyst_enabled => false\n+ )\n __apply_Xcode_12_5_M1_post_install_workaround(installer)\n+\n+ # This is necessary for Xcode 14, because it signs resource bundles by default\n+ # when building for devices.\n+ installer.target_installation_results.pod_target_installation_results\n+ .each do |pod_name, target_installation_result|\n+ target_installation_result.resource_bundle_targets.each do |resource_bundle_target|\n+ resource_bundle_target.build_configurations.each do |config|\n+ config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'\n+ end\n+ end\n+ end\n end\n \n post_integrate do |installer|\n@@ -45,5 +58,4 @@ target 'HelloWorld' do\n Pod::UI.warn e\n end\n end\n-\n end\ndiff --git a/templates/expo-template-bare-minimum/ios/gitignore b/templates/expo-template-bare-minimum/ios/gitignore\nindex 2b13519939..8beb344303 100644\n--- a/templates/expo-template-bare-minimum/ios/gitignore\n+++ b/templates/expo-template-bare-minimum/ios/gitignore\n@@ -21,6 +21,7 @@ DerivedData\n *.ipa\n *.xcuserstate\n project.xcworkspace\n+.xcode.env.local\n \n # Bundle artifacts\n *.jsbundle\ndiff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json\nindex 69e7eb9619..a41fdc0d8d 100644\n--- a/templates/expo-template-bare-minimum/package.json\n+++ b/templates/expo-template-bare-minimum/package.json\n@@ -1,7 +1,7 @@\n {\n \"name\": \"expo-template-bare-minimum\",\n \"description\": \"This bare project template includes a minimal setup for using unimodules with React Native.\",\n- \"version\": \"45.0.6\",\n+ \"version\": \"47.0.26\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"start\": \"expo start --dev-client\",\n@@ -10,13 +10,11 @@\n \"web\": \"expo start --web\"\n },\n \"dependencies\": {\n- \"expo\": \"~45.0.0\",\n- \"expo-splash-screen\": \"~0.15.1\",\n- \"expo-status-bar\": \"~1.3.0\",\n- \"react\": \"17.0.2\",\n- \"react-dom\": \"17.0.2\",\n- \"react-native\": \"0.68.2\",\n- \"react-native-web\": \"0.17.7\"\n+ \"expo\": \"~47.0.14\",\n+ \"expo-splash-screen\": \"~0.17.5\",\n+ \"expo-status-bar\": \"~1.4.2\",\n+ \"react\": \"18.1.0\",\n+ \"react-native\": \"0.70.8\"\n },\n \"devDependencies\": {\n \"@babel/core\": \"^7.12.9\"\n","46..47":"diff --git a/templates/expo-template-bare-minimum/android/app/build.gradle b/templates/expo-template-bare-minimum/android/app/build.gradle\nindex f0293fe400..648135611c 100644\n--- a/templates/expo-template-bare-minimum/android/app/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/app/build.gradle\n@@ -1,7 +1,6 @@\n apply plugin: \"com.android.application\"\n \n import com.android.build.OutputFile\n-import org.apache.tools.ant.taskdefs.condition.Os\n \n /**\n * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets\n@@ -151,27 +150,14 @@ android {\n buildConfigField \"boolean\", \"IS_NEW_ARCHITECTURE_ENABLED\", isNewArchitectureEnabled().toString()\n \n if (isNewArchitectureEnabled()) {\n- // We configure the NDK build only if you decide to opt-in for the New Architecture.\n+ // We configure the CMake build only if you decide to opt-in for the New Architecture.\n externalNativeBuild {\n- ndkBuild {\n- arguments \"APP_PLATFORM=android-21\",\n- \"APP_STL=c++_shared\",\n- \"NDK_TOOLCHAIN_VERSION=clang\",\n- \"GENERATED_SRC_DIR=$buildDir/generated/source\",\n- \"PROJECT_BUILD_DIR=$buildDir\",\n- \"REACT_ANDROID_DIR=${reactNativeRoot}/ReactAndroid\",\n- \"REACT_ANDROID_BUILD_DIR=${reactNativeRoot}/ReactAndroid/build\",\n- \"NODE_MODULES_DIR=$rootDir/../node_modules\"\n- cFlags \"-Wall\", \"-Werror\", \"-fexceptions\", \"-frtti\", \"-DWITH_INSPECTOR=1\"\n- cppFlags \"-std=c++17\"\n- // Make sure this target name is the same you specify inside the\n- // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.\n- targets \"helloworld_appmodules\"\n-\n- // Fix for windows limit on number of character in file paths and in command lines\n- if (Os.isFamily(Os.FAMILY_WINDOWS)) {\n- arguments \"NDK_APP_SHORT_COMMANDS=true\"\n- }\n+ cmake {\n+ arguments \"-DPROJECT_BUILD_DIR=$buildDir\",\n+ \"-DREACT_ANDROID_DIR=${reactNativeRoot}/ReactAndroid\",\n+ \"-DREACT_ANDROID_BUILD_DIR=${reactNativeRoot}/ReactAndroid/build\",\n+ \"-DNODE_MODULES_DIR=$rootDir/../node_modules\",\n+ \"-DANDROID_STL=c++_shared\"\n }\n }\n if (!enableSeparateBuildPerCPUArchitecture) {\n@@ -183,10 +169,10 @@ android {\n }\n \n if (isNewArchitectureEnabled()) {\n- // We configure the NDK build only if you decide to opt-in for the New Architecture.\n+ // We configure the CMake build only if you decide to opt-in for the New Architecture.\n externalNativeBuild {\n- ndkBuild {\n- path \"$projectDir/src/main/jni/Android.mk\"\n+ cmake {\n+ path \"$projectDir/src/main/jni/CMakeLists.txt\"\n }\n }\n def reactAndroidProjectDir = project(':ReactAndroid').projectDir\n@@ -208,15 +194,15 @@ android {\n preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)\n \n // Due to a bug inside AGP, we have to explicitly set a dependency\n- // between configureNdkBuild* tasks and the preBuild tasks.\n+ // between configureCMakeDebug* tasks and the preBuild tasks.\n // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732\n- configureNdkBuildRelease.dependsOn(preReleaseBuild)\n- configureNdkBuildDebug.dependsOn(preDebugBuild)\n+ configureCMakeRelWithDebInfo.dependsOn(preReleaseBuild)\n+ configureCMakeDebug.dependsOn(preDebugBuild)\n reactNativeArchitectures().each { architecture ->\n- tasks.findByName(\"configureNdkBuildDebug[${architecture}]\")?.configure {\n+ tasks.findByName(\"configureCMakeDebug[${architecture}]\")?.configure {\n dependsOn(\"preDebugBuild\")\n }\n- tasks.findByName(\"configureNdkBuildRelease[${architecture}]\")?.configure {\n+ tasks.findByName(\"configureCMakeRelWithDebInfo[${architecture}]\")?.configure {\n dependsOn(\"preReleaseBuild\")\n }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex cda1391225..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source\n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_runtime \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt b/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\nnew file mode 100644\nindex 0000000000..d2cad3a326\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\n@@ -0,0 +1,7 @@\n+cmake_minimum_required(VERSION 3.13)\n+\n+# Define the library name here.\n+project(helloworld_appmodules)\n+\n+# This file includes all the necessary to let you build your application with the New Architecture.\n+include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\nindex 0ac23cc626..26162dd872 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n@@ -1,12 +1,13 @@\n #include \"MainApplicationModuleProvider.h\"\n \n+#include \n #include \n \n namespace facebook {\n namespace react {\n \n std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n+ const std::string &moduleName,\n const JavaTurboModule::InitParams ¶ms) {\n // Here you can provide your own module provider for TurboModules coming from\n // either your application or from external libraries. The approach to follow\n@@ -17,6 +18,13 @@ std::shared_ptr MainApplicationModuleProvider(\n // return module;\n // }\n // return rncore_ModuleProvider(moduleName, params);\n+\n+ // Module providers autolinked by RN CLI\n+ auto rncli_module = rncli_ModuleProvider(moduleName, params);\n+ if (rncli_module != nullptr) {\n+ return rncli_module;\n+ }\n+\n return rncore_ModuleProvider(moduleName, params);\n }\n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\nindex 0fa43fa69a..b38ccf53fd 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n@@ -9,7 +9,7 @@ namespace facebook {\n namespace react {\n \n std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n+ const std::string &moduleName,\n const JavaTurboModule::InitParams ¶ms);\n \n } // namespace react\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\nindex dbbdc3d132..5fd688c509 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n@@ -22,21 +22,21 @@ void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n \n std::shared_ptr\n MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n+ const std::string &name,\n+ const std::shared_ptr &jsInvoker) {\n // Not implemented yet: provide pure-C++ NativeModules here.\n return nullptr;\n }\n \n std::shared_ptr\n MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n+ const std::string &name,\n const JavaTurboModule::InitParams ¶ms) {\n return MainApplicationModuleProvider(name, params);\n }\n \n bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n+ const std::string &name) {\n return getTurboModule(name, nullptr) != nullptr ||\n getTurboModule(name, {.moduleName = name}) != nullptr;\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\nindex 25f27722d0..9ee38a81f6 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n@@ -21,17 +21,17 @@ class MainApplicationTurboModuleManagerDelegate\n static void registerNatives();\n \n std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n+ const std::string &name,\n+ const std::shared_ptr &jsInvoker) override;\n std::shared_ptr getTurboModule(\n- const std::string name,\n+ const std::string &name,\n const JavaTurboModule::InitParams ¶ms) override;\n \n /**\n * Test-only method. Allows user to verify whether a TurboModule can be\n * created by instances of this class.\n */\n- bool canCreateTurboModule(std::string name);\n+ bool canCreateTurboModule(const std::string &name);\n };\n \n } // namespace react\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\nindex 8f7edffd64..54f598a486 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n@@ -4,6 +4,7 @@\n #include \n #include \n #include \n+#include \n \n namespace facebook {\n namespace react {\n@@ -14,6 +15,9 @@ std::shared_ptr\n MainComponentsRegistry::sharedProviderRegistry() {\n auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n \n+ // Autolinked providers registered by RN CLI\n+ rncli_registerProviders(providerRegistry);\n+\n // Custom Fabric Components go here. You can register custom\n // components coming from your App or from 3rd party libraries here.\n //\ndiff --git a/templates/expo-template-bare-minimum/android/build.gradle b/templates/expo-template-bare-minimum/android/build.gradle\nindex f259b31a11..8181b282cd 100644\n--- a/templates/expo-template-bare-minimum/android/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/build.gradle\n@@ -1,6 +1,5 @@\n-import org.apache.tools.ant.taskdefs.condition.Os\n-\n // Top-level build file where you can add configuration options common to all sub-projects/modules.\n+\n buildscript {\n ext {\n buildToolsVersion = findProperty('android.buildToolsVersion') ?: '31.0.0'\n@@ -25,7 +24,7 @@ buildscript {\n mavenCentral()\n }\n dependencies {\n- classpath('com.android.tools.build:gradle:7.1.1')\n+ classpath('com.android.tools.build:gradle:7.2.1')\n classpath('com.facebook.react:react-native-gradle-plugin')\n classpath('de.undercouch:gradle-download-task:5.0.1')\n // NOTE: Do not place your application dependencies here; they belong\n@@ -33,7 +32,7 @@ buildscript {\n }\n }\n \n-def REACT_NATIVE_VERSION = new File(['node', '--print',\"JSON.parse(require('fs').readFileSync(require.resolve('react-native/package.json'), 'utf-8')).version\"].execute(null, rootDir).text.trim())\n+def REACT_NATIVE_VERSION = new File(['node', '--print', \"JSON.parse(require('fs').readFileSync(require.resolve('react-native/package.json'), 'utf-8')).version\"].execute(null, rootDir).text.trim())\n \n allprojects {\n configurations.all {\n@@ -64,9 +63,3 @@ allprojects {\n maven { url 'https://www.jitpack.io' }\n }\n }\n-\n-configurations.all {\n- resolutionStrategy {\n- force 'com.facebook.react:react-native:0.69.6'\n- }\n-}\n\\ No newline at end of file\ndiff --git a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar\nindex 7454180f2a..249e5832f0 100644\nBinary files a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar and b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar differ\ndiff --git a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\nindex 669386b870..8fad3f5a98 100644\n--- a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\n+++ b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\n@@ -1,5 +1,5 @@\n distributionBase=GRADLE_USER_HOME\n distributionPath=wrapper/dists\n-distributionUrl=https\\://services.gradle.org/distributions/gradle-7.3.3-all.zip\n+distributionUrl=https\\://services.gradle.org/distributions/gradle-7.5.1-all.zip\n zipStoreBase=GRADLE_USER_HOME\n zipStorePath=wrapper/dists\ndiff --git a/templates/expo-template-bare-minimum/android/gradlew b/templates/expo-template-bare-minimum/android/gradlew\nindex 1b6c787337..a69d9cb6c2 100755\n--- a/templates/expo-template-bare-minimum/android/gradlew\n+++ b/templates/expo-template-bare-minimum/android/gradlew\n@@ -205,6 +205,12 @@ set -- \\\n org.gradle.wrapper.GradleWrapperMain \\\n \"$@\"\n \n+# Stop when \"xargs\" is not available.\n+if ! command -v xargs >/dev/null 2>&1\n+then\n+ die \"xargs is not available\"\n+fi\n+\n # Use \"xargs\" to parse quoted args.\n #\n # With -n1 it outputs one arg per line, with the quotes and backslashes removed.\ndiff --git a/templates/expo-template-bare-minimum/android/gradlew.bat b/templates/expo-template-bare-minimum/android/gradlew.bat\nindex ac1b06f938..53a6b238d4 100644\n--- a/templates/expo-template-bare-minimum/android/gradlew.bat\n+++ b/templates/expo-template-bare-minimum/android/gradlew.bat\n@@ -14,7 +14,7 @@\n @rem limitations under the License.\r\n @rem\r\n \r\n-@if \"%DEBUG%\" == \"\" @echo off\r\n+@if \"%DEBUG%\"==\"\" @echo off\r\n @rem ##########################################################################\r\n @rem\r\n @rem Gradle startup script for Windows\r\n@@ -25,7 +25,7 @@\n if \"%OS%\"==\"Windows_NT\" setlocal\r\n \r\n set DIRNAME=%~dp0\r\n-if \"%DIRNAME%\" == \"\" set DIRNAME=.\r\n+if \"%DIRNAME%\"==\"\" set DIRNAME=.\r\n set APP_BASE_NAME=%~n0\r\n set APP_HOME=%DIRNAME%\r\n \r\n@@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome\n \r\n set JAVA_EXE=java.exe\r\n %JAVA_EXE% -version >NUL 2>&1\r\n-if \"%ERRORLEVEL%\" == \"0\" goto execute\r\n+if %ERRORLEVEL% equ 0 goto execute\r\n \r\n echo.\r\n echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\r\n@@ -75,13 +75,15 @@ set CLASSPATH=%APP_HOME%\\gradle\\wrapper\\gradle-wrapper.jar\n \r\n :end\r\n @rem End local scope for the variables with windows NT shell\r\n-if \"%ERRORLEVEL%\"==\"0\" goto mainEnd\r\n+if %ERRORLEVEL% equ 0 goto mainEnd\r\n \r\n :fail\r\n rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of\r\n rem the _cmd.exe /c_ return code!\r\n-if not \"\" == \"%GRADLE_EXIT_CONSOLE%\" exit 1\r\n-exit /b 1\r\n+set EXIT_CODE=%ERRORLEVEL%\r\n+if %EXIT_CODE% equ 0 set EXIT_CODE=1\r\n+if not \"\"==\"%GRADLE_EXIT_CONSOLE%\" exit %EXIT_CODE%\r\n+exit /b %EXIT_CODE%\r\n \r\n :mainEnd\r\n if \"%OS%\"==\"Windows_NT\" endlocal\r\ndiff --git a/templates/expo-template-bare-minimum/gitignore b/templates/expo-template-bare-minimum/gitignore\nindex c8eb0f9a64..67397f65f9 100644\n--- a/templates/expo-template-bare-minimum/gitignore\n+++ b/templates/expo-template-bare-minimum/gitignore\n@@ -30,6 +30,7 @@ build/\n local.properties\n *.iml\n *.hprof\n+.cxx/\n \n # node.js\n #\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\nindex a4a049f05d..62a1be2493 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n@@ -214,7 +214,7 @@\n \t\t\t);\n \t\t\trunOnlyForDeploymentPostprocessing = 0;\n \t\t\tshellPath = /bin/sh;\n-\t\t\tshellScript = \"if [[ -f \\\"$PODS_ROOT/../.xcode.env\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env\\\"\\nfi\\nif [[ -f \\\"$PODS_ROOT/../.xcode.env.local\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env.local\\\"\\nfi\\n\\n# The project root by default is one level up from the ios directory\\nexport PROJECT_ROOT=\\\"$PROJECT_DIR\\\"/..\\n\\nif [[ \\\"$CONFIGURATION\\\" = *Debug* ]]; then\\n export SKIP_BUNDLING=1\\nfi\\n`\\\"$NODE_BINARY\\\" --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\\\"`\\n\\n\";\n+\t\t\tshellScript = \"if [[ -f \\\"$PODS_ROOT/../.xcode.env\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env\\\"\\nfi\\nif [[ -f \\\"$PODS_ROOT/../.xcode.env.local\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env.local\\\"\\nfi\\n\\n# The project root by default is one level up from the ios directory\\nexport PROJECT_ROOT=\\\"$PROJECT_DIR\\\"/..\\n\\nif [[ \\\"$CONFIGURATION\\\" = *Debug* ]]; then\\n export SKIP_BUNDLING=1\\nfi\\nif [[ -z \\\"$ENTRY_FILE\\\" ]]; then\\n # Set the entry JS file using the bundler's entry resolution.\\n export ENTRY_FILE=\\\"$(\\\"$NODE_BINARY\\\" -e \\\"require('expo/scripts/resolveAppEntry')\\\" $PROJECT_ROOT ios relative | tail -n 1)\\\"\\nfi\\n\\n`\\\"$NODE_BINARY\\\" --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\\\"`\\n\\n\";\n \t\t};\n \t\t08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {\n \t\t\tisa = PBXShellScriptBuildPhase;\n@@ -308,7 +308,7 @@\n \t\t\t\t\t\"FB_SONARKIT_ENABLED=1\",\n \t\t\t\t);\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n@@ -331,7 +331,7 @@\n \t\t\t\tCLANG_ENABLE_MODULES = YES;\n \t\t\t\tCURRENT_PROJECT_VERSION = 1;\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n@@ -392,7 +392,7 @@\n \t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n \t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n \t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"/usr/lib/swift $(inherited)\";\n \t\t\t\tLIBRARY_SEARCH_PATHS = \"\\\"$(inherited)\\\"\";\n \t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n@@ -441,7 +441,7 @@\n \t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n \t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n \t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"/usr/lib/swift $(inherited)\";\n \t\t\t\tLIBRARY_SEARCH_PATHS = \"\\\"$(inherited)\\\"\";\n \t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\ndiff --git a/templates/expo-template-bare-minimum/ios/Podfile b/templates/expo-template-bare-minimum/ios/Podfile\nindex 91612acca9..474455b90d 100644\n--- a/templates/expo-template-bare-minimum/ios/Podfile\n+++ b/templates/expo-template-bare-minimum/ios/Podfile\n@@ -5,7 +5,7 @@ require File.join(File.dirname(`node --print \"require.resolve('@react-native-com\n require 'json'\n podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}\n \n-platform :ios, podfile_properties['ios.deploymentTarget'] || '12.4'\n+platform :ios, podfile_properties['ios.deploymentTarget'] || '13.0'\n install! 'cocoapods',\n :deterministic_uuids => false\n \n@@ -20,21 +20,23 @@ target 'HelloWorld' do\n \n use_react_native!(\n :path => config[:reactNativePath],\n- :hermes_enabled => flags[:hermes_enabled] || podfile_properties['expo.jsEngine'] == 'hermes',\n+ :hermes_enabled => podfile_properties['expo.jsEngine'] == 'hermes',\n :fabric_enabled => flags[:fabric_enabled],\n # An absolute path to your application root.\n- :app_path => \"#{Dir.pwd}/..\"\n+ :app_path => \"#{Pod::Config.instance.installation_root}/..\",\n+ #\n+ # Uncomment to opt-in to using Flipper\n+ # Note that if you have use_frameworks! enabled, Flipper will not work\n+ # :flipper_configuration => !ENV['CI'] ? FlipperConfiguration.enabled : FlipperConfiguration.disabled,\n )\n \n- # Uncomment to opt-in to using Flipper\n- # Note that if you have use_frameworks! enabled, Flipper will not work\n- #\n- # if !ENV['CI']\n- # use_flipper!()\n- # end\n-\n post_install do |installer|\n- react_native_post_install(installer)\n+ react_native_post_install(\n+ installer,\n+ # Set `mac_catalyst_enabled` to `true` in order to apply patches\n+ # necessary for Mac Catalyst builds\n+ :mac_catalyst_enabled => false\n+ )\n __apply_Xcode_12_5_M1_post_install_workaround(installer)\n \n # This is necessary for Xcode 14, because it signs resource bundles by default\ndiff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json\nindex d5ca09a584..a41fdc0d8d 100644\n--- a/templates/expo-template-bare-minimum/package.json\n+++ b/templates/expo-template-bare-minimum/package.json\n@@ -1,7 +1,7 @@\n {\n \"name\": \"expo-template-bare-minimum\",\n \"description\": \"This bare project template includes a minimal setup for using unimodules with React Native.\",\n- \"version\": \"46.0.37\",\n+ \"version\": \"47.0.26\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"start\": \"expo start --dev-client\",\n@@ -10,13 +10,11 @@\n \"web\": \"expo start --web\"\n },\n \"dependencies\": {\n- \"expo\": \"~46.0.21\",\n- \"expo-splash-screen\": \"~0.16.2\",\n- \"expo-status-bar\": \"~1.4.0\",\n- \"react\": \"18.0.0\",\n- \"react-dom\": \"18.0.0\",\n- \"react-native\": \"0.69.9\",\n- \"react-native-web\": \"~0.18.7\"\n+ \"expo\": \"~47.0.14\",\n+ \"expo-splash-screen\": \"~0.17.5\",\n+ \"expo-status-bar\": \"~1.4.2\",\n+ \"react\": \"18.1.0\",\n+ \"react-native\": \"0.70.8\"\n },\n \"devDependencies\": {\n \"@babel/core\": \"^7.12.9\"\n","47..47":"","45..48":"diff --git a/templates/expo-template-bare-minimum/.buckconfig b/templates/expo-template-bare-minimum/.buckconfig\ndeleted file mode 100644\nindex 934256cb29..0000000000\n--- a/templates/expo-template-bare-minimum/.buckconfig\n+++ /dev/null\n@@ -1,6 +0,0 @@\n-\n-[android]\n- target = Google Inc.:Google APIs:23\n-\n-[maven_repositories]\n- central = https://repo1.maven.org/maven2\ndiff --git a/templates/expo-template-bare-minimum/.npmignore b/templates/expo-template-bare-minimum/.npmignore\nindex 35490b6612..4e6ce00391 100644\n--- a/templates/expo-template-bare-minimum/.npmignore\n+++ b/templates/expo-template-bare-minimum/.npmignore\n@@ -20,3 +20,4 @@ ios/Pods\n android/.build\n android/app/build\n android/.gradle\n+ios/.xcode.env.local\ndiff --git a/templates/expo-template-bare-minimum/android/app/BUCK b/templates/expo-template-bare-minimum/android/app/BUCK\ndeleted file mode 100644\nindex 0e77904834..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/BUCK\n+++ /dev/null\n@@ -1,55 +0,0 @@\n-# To learn about Buck see [Docs](https://buckbuild.com/).\n-# To run your application with Buck:\n-# - install Buck\n-# - `npm start` - to start the packager\n-# - `cd android`\n-# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname \"CN=Android Debug,O=Android,C=US\"`\n-# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck\n-# - `buck install -r android/app` - compile, install and run application\n-#\n-\n-load(\":build_defs.bzl\", \"create_aar_targets\", \"create_jar_targets\")\n-\n-lib_deps = []\n-\n-create_aar_targets(glob([\"libs/*.aar\"]))\n-\n-create_jar_targets(glob([\"libs/*.jar\"]))\n-\n-android_library(\n- name = \"all-libs\",\n- exported_deps = lib_deps,\n-)\n-\n-android_library(\n- name = \"app-code\",\n- srcs = glob([\n- \"src/main/java/**/*.java\",\n- ]),\n- deps = [\n- \":all-libs\",\n- \":build_config\",\n- \":res\",\n- ],\n-)\n-\n-android_build_config(\n- name = \"build_config\",\n- package = \"com.helloworld\",\n-)\n-\n-android_resource(\n- name = \"res\",\n- package = \"com.helloworld\",\n- res = \"src/main/res\",\n-)\n-\n-android_binary(\n- name = \"app\",\n- keystore = \"//android/keystores:debug\",\n- manifest = \"src/main/AndroidManifest.xml\",\n- package_type = \"debug\",\n- deps = [\n- \":app-code\",\n- ],\n-)\ndiff --git a/templates/expo-template-bare-minimum/android/app/build.gradle b/templates/expo-template-bare-minimum/android/app/build.gradle\nindex 346fb02564..189390e7e3 100644\n--- a/templates/expo-template-bare-minimum/android/app/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/app/build.gradle\n@@ -1,134 +1,107 @@\n apply plugin: \"com.android.application\"\n+apply plugin: \"com.facebook.react\"\n \n import com.android.build.OutputFile\n-import org.apache.tools.ant.taskdefs.condition.Os\n-\n-/**\n- * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets\n- * and bundleReleaseJsAndAssets).\n- * These basically call `react-native bundle` with the correct arguments during the Android build\n- * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the\n- * bundle directly from the development server. Below you can see all the possible configurations\n- * and their defaults. If you decide to add a configuration block, make sure to add it before the\n- * `apply from: \"../../node_modules/react-native/react.gradle\"` line.\n- *\n- * project.ext.react = [\n- * // the name of the generated asset file containing your JS bundle\n- * bundleAssetName: \"index.android.bundle\",\n- *\n- * // the entry file for bundle generation. If none specified and\n- * // \"index.android.js\" exists, it will be used. Otherwise \"index.js\" is\n- * // default. Can be overridden with ENTRY_FILE environment variable.\n- * entryFile: \"index.android.js\",\n- *\n- * // https://reactnative.dev/docs/performance#enable-the-ram-format\n- * bundleCommand: \"ram-bundle\",\n- *\n- * // whether to bundle JS and assets in debug mode\n- * bundleInDebug: false,\n- *\n- * // whether to bundle JS and assets in release mode\n- * bundleInRelease: true,\n- *\n- * // whether to bundle JS and assets in another build variant (if configured).\n- * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants\n- * // The configuration property can be in the following formats\n- * // 'bundleIn${productFlavor}${buildType}'\n- * // 'bundleIn${buildType}'\n- * // bundleInFreeDebug: true,\n- * // bundleInPaidRelease: true,\n- * // bundleInBeta: true,\n- *\n- * // whether to disable dev mode in custom build variants (by default only disabled in release)\n- * // for example: to disable dev mode in the staging build type (if configured)\n- * devDisabledInStaging: true,\n- * // The configuration property can be in the following formats\n- * // 'devDisabledIn${productFlavor}${buildType}'\n- * // 'devDisabledIn${buildType}'\n- *\n- * // the root of your project, i.e. where \"package.json\" lives\n- * root: \"../../\",\n- *\n- * // where to put the JS bundle asset in debug mode\n- * jsBundleDirDebug: \"$buildDir/intermediates/assets/debug\",\n- *\n- * // where to put the JS bundle asset in release mode\n- * jsBundleDirRelease: \"$buildDir/intermediates/assets/release\",\n- *\n- * // where to put drawable resources / React Native assets, e.g. the ones you use via\n- * // require('./image.png')), in debug mode\n- * resourcesDirDebug: \"$buildDir/intermediates/res/merged/debug\",\n- *\n- * // where to put drawable resources / React Native assets, e.g. the ones you use via\n- * // require('./image.png')), in release mode\n- * resourcesDirRelease: \"$buildDir/intermediates/res/merged/release\",\n- *\n- * // by default the gradle tasks are skipped if none of the JS files or assets change; this means\n- * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to\n- * // date; if you have any other folders that you want to ignore for performance reasons (gradle\n- * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/\n- * // for example, you might want to remove it from here.\n- * inputExcludes: [\"android/**\", \"ios/**\"],\n- *\n- * // override which node gets called and with what additional arguments\n- * nodeExecutableAndArgs: [\"node\"],\n- *\n- * // supply additional arguments to the packager\n- * extraPackagerArgs: []\n- * ]\n- */\n \n def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath()\n+def expoDebuggableVariants = ['debug']\n+// Override `debuggableVariants` for expo-updates debugging\n+if (System.getenv('EX_UPDATES_NATIVE_DEBUG') == \"1\") {\n+ react {\n+ expoDebuggableVariants = []\n+ }\n+}\n \n-project.ext.react = [\n- entryFile: [\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\"].execute(null, rootDir).text.trim(),\n- enableHermes: (findProperty('expo.jsEngine') ?: \"jsc\") == \"hermes\",\n- cliPath: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/cli.js\",\n- hermesCommand: new File([\"node\", \"--print\", \"require.resolve('hermes-engine/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/%OS-BIN%/hermesc\",\n- composeSourceMapsPath: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/scripts/compose-source-maps.js\",\n-]\n \n-apply from: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../react.gradle\")\n+/**\n+ * This is the configuration block to customize your React Native Android app.\n+ * By default you don't need to apply any configuration, just uncomment the lines you need.\n+ */\n+react {\n+ entryFile = file([\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\", \"absolute\"].execute(null, rootDir).text.trim())\n+ reactNativeDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()\n+ hermesCommand = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/sdks/hermesc/%OS-BIN%/hermesc\"\n+ debuggableVariants = expoDebuggableVariants\n+\n+ /* Folders */\n+ // The root of your project, i.e. where \"package.json\" lives. Default is '..'\n+ // root = file(\"../\")\n+ // The folder where the react-native NPM package is. Default is ../node_modules/react-native\n+ // reactNativeDir = file(\"../node_modules/react-native\")\n+ // The folder where the react-native Codegen package is. Default is ../node_modules/react-native-codegen\n+ // codegenDir = file(\"../node_modules/react-native-codegen\")\n+ // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js\n+ // cliFile = file(\"../node_modules/react-native/cli.js\")\n+\n+ /* Variants */\n+ // The list of variants to that are debuggable. For those we're going to\n+ // skip the bundling of the JS bundle and the assets. By default is just 'debug'.\n+ // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.\n+ // debuggableVariants = [\"liteDebug\", \"prodDebug\"]\n+\n+ /* Bundling */\n+ // A list containing the node command and its flags. Default is just 'node'.\n+ // nodeExecutableAndArgs = [\"node\"]\n+ //\n+ // The command to run when bundling. By default is 'bundle'\n+ // bundleCommand = \"ram-bundle\"\n+ //\n+ // The path to the CLI configuration file. Default is empty.\n+ // bundleConfig = file(../rn-cli.config.js)\n+ //\n+ // The name of the generated asset file containing your JS bundle\n+ // bundleAssetName = \"MyApplication.android.bundle\"\n+ //\n+ // The entry file for bundle generation. Default is 'index.android.js' or 'index.js'\n+ // entryFile = file(\"../js/MyApplication.android.js\")\n+ //\n+ // A list of extra flags to pass to the 'bundle' commands.\n+ // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle\n+ // extraPackagerArgs = []\n+\n+ /* Hermes Commands */\n+ // The hermes compiler command to run. By default it is 'hermesc'\n+ // hermesCommand = \"$rootDir/my-custom-hermesc/bin/hermesc\"\n+ //\n+ // The list of flags to pass to the Hermes compiler. By default is \"-O\", \"-output-source-map\"\n+ // hermesFlags = [\"-O\", \"-output-source-map\"]\n+}\n+\n+// Override `hermesEnabled` by `expo.jsEngine`\n+ext {\n+ hermesEnabled = (findProperty('expo.jsEngine') ?: \"hermes\") == \"hermes\"\n+}\n \n /**\n- * Set this to true to create two separate APKs instead of one:\n- * - An APK that only works on ARM devices\n- * - An APK that only works on x86 devices\n- * The advantage is the size of the APK is reduced by about 4MB.\n- * Upload all the APKs to the Play Store and people will download\n- * the correct one based on the CPU architecture of their device.\n+ * Set this to true to create four separate APKs instead of one,\n+ * one for each native architecture. This is useful if you don't\n+ * use App Bundles (https://developer.android.com/guide/app-bundle/)\n+ * and want to have separate APKs to upload to the Play Store.\n */\n def enableSeparateBuildPerCPUArchitecture = false\n \n /**\n- * Run Proguard to shrink the Java bytecode in release builds.\n+ * Set this to true to Run Proguard on Release builds to minify the Java bytecode.\n */\n def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean()\n \n /**\n- * The preferred build flavor of JavaScriptCore.\n+ * The preferred build flavor of JavaScriptCore (JSC)\n *\n * For example, to use the international variant, you can use:\n * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`\n *\n * The international variant includes ICU i18n library and necessary data\n * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that\n- * give correct results when using with locales other than en-US. Note that\n+ * give correct results when using with locales other than en-US. Note that\n * this variant is about 6MiB larger per architecture than default.\n */\n def jscFlavor = 'org.webkit:android-jsc:+'\n \n /**\n- * Whether to enable the Hermes VM.\n- *\n- * This should be set on project.ext.react and that value will be read here. If it is not set\n- * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode\n- * and the benefits of using Hermes will therefore be sharply reduced.\n- */\n-def enableHermes = project.ext.react.get(\"enableHermes\", false);\n-\n-/**\n- * Architectures to build native code for.\n+ * Private function to get the list of Native Architectures you want to build.\n+ * This reads the value from reactNativeArchitectures in your gradle.properties\n+ * file and works together with the --active-arch-only flag of react-native run-android.\n */\n def reactNativeArchitectures() {\n def value = project.getProperties().get(\"reactNativeArchitectures\")\n@@ -140,84 +113,13 @@ android {\n \n compileSdkVersion rootProject.ext.compileSdkVersion\n \n+ namespace \"com.helloworld\"\n defaultConfig {\n applicationId \"com.helloworld\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n- buildConfigField \"boolean\", \"IS_NEW_ARCHITECTURE_ENABLED\", isNewArchitectureEnabled().toString()\n-\n- if (isNewArchitectureEnabled()) {\n- // We configure the NDK build only if you decide to opt-in for the New Architecture.\n- externalNativeBuild {\n- ndkBuild {\n- arguments \"APP_PLATFORM=android-21\",\n- \"APP_STL=c++_shared\",\n- \"NDK_TOOLCHAIN_VERSION=clang\",\n- \"GENERATED_SRC_DIR=$buildDir/generated/source\",\n- \"PROJECT_BUILD_DIR=$buildDir\",\n- \"REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid\",\n- \"REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build\"\n- cFlags \"-Wall\", \"-Werror\", \"-fexceptions\", \"-frtti\", \"-DWITH_INSPECTOR=1\"\n- cppFlags \"-std=c++17\"\n- // Make sure this target name is the same you specify inside the\n- // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.\n- targets \"helloworld_appmodules\"\n-\n- // Fix for windows limit on number of character in file paths and in command lines\n- if (Os.isFamily(Os.FAMILY_WINDOWS)) {\n- arguments \"NDK_APP_SHORT_COMMANDS=true\"\n- }\n- }\n- }\n- if (!enableSeparateBuildPerCPUArchitecture) {\n- ndk {\n- abiFilters (*reactNativeArchitectures())\n- }\n- }\n- }\n- }\n-\n- if (isNewArchitectureEnabled()) {\n- // We configure the NDK build only if you decide to opt-in for the New Architecture.\n- externalNativeBuild {\n- ndkBuild {\n- path \"$projectDir/src/main/jni/Android.mk\"\n- }\n- }\n- def reactAndroidProjectDir = project(':ReactAndroid').projectDir\n- def packageReactNdkDebugLibs = tasks.register(\"packageReactNdkDebugLibs\", Copy) {\n- dependsOn(\":ReactAndroid:packageReactNdkDebugLibsForBuck\")\n- from(\"$reactAndroidProjectDir/src/main/jni/prebuilt/lib\")\n- into(\"$buildDir/react-ndk/exported\")\n- }\n- def packageReactNdkReleaseLibs = tasks.register(\"packageReactNdkReleaseLibs\", Copy) {\n- dependsOn(\":ReactAndroid:packageReactNdkReleaseLibsForBuck\")\n- from(\"$reactAndroidProjectDir/src/main/jni/prebuilt/lib\")\n- into(\"$buildDir/react-ndk/exported\")\n- }\n- afterEvaluate {\n- // If you wish to add a custom TurboModule or component locally,\n- // you should uncomment this line.\n- // preBuild.dependsOn(\"generateCodegenArtifactsFromSchema\")\n- preDebugBuild.dependsOn(packageReactNdkDebugLibs)\n- preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)\n-\n- // Due to a bug inside AGP, we have to explicitly set a dependency\n- // between configureNdkBuild* tasks and the preBuild tasks.\n- // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732\n- configureNdkBuildRelease.dependsOn(preReleaseBuild)\n- configureNdkBuildDebug.dependsOn(preDebugBuild)\n- reactNativeArchitectures().each { architecture ->\n- tasks.findByName(\"configureNdkBuildDebug[${architecture}]\")?.configure {\n- dependsOn(\"preDebugBuild\")\n- }\n- tasks.findByName(\"configureNdkBuildRelease[${architecture}]\")?.configure {\n- dependsOn(\"preReleaseBuild\")\n- }\n- }\n- }\n }\n \n splits {\n@@ -244,6 +146,7 @@ android {\n // Caution! In production, you need to generate your own keystore file.\n // see https://reactnative.dev/docs/signed-apk-android.\n signingConfig signingConfigs.debug\n+ shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false)\n minifyEnabled enableProguardInReleaseBuilds\n proguardFiles getDefaultProguardFile(\"proguard-android.txt\"), \"proguard-rules.pro\"\n }\n@@ -254,11 +157,12 @@ android {\n variant.outputs.each { output ->\n // For each separate APK per architecture, set a unique version code as described here:\n // https://developer.android.com/studio/build/configure-apk-splits.html\n+ // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.\n def versionCodes = [\"armeabi-v7a\": 1, \"x86\": 2, \"arm64-v8a\": 3, \"x86_64\": 4]\n def abi = output.getFilter(OutputFile.ABI)\n if (abi != null) { // null for the universal-debug, universal-release variants\n output.versionCodeOverride =\n- versionCodes.get(abi) * 1048576 + defaultConfig.versionCode\n+ defaultConfig.versionCode * 1000 + versionCodes.get(abi)\n }\n \n }\n@@ -286,10 +190,8 @@ android {\n }\n \n dependencies {\n- implementation fileTree(dir: \"libs\", include: [\"*.jar\"])\n-\n- //noinspection GradleDynamicVersion\n- implementation \"com.facebook.react:react-native:+\" // From node_modules\n+ // The version of react-native is set by the React Native Gradle Plugin\n+ implementation(\"com.facebook.react:react-android\")\n \n def isGifEnabled = (findProperty('expo.gif.enabled') ?: \"\") == \"true\";\n def isWebpEnabled = (findProperty('expo.webp.enabled') ?: \"\") == \"true\";\n@@ -298,70 +200,38 @@ dependencies {\n \n // If your app supports Android versions before Ice Cream Sandwich (API level 14)\n if (isGifEnabled || isWebpEnabled) {\n- implementation \"com.facebook.fresco:fresco:${frescoVersion}\"\n- implementation \"com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:fresco:${frescoVersion}\")\n+ implementation(\"com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}\")\n }\n \n if (isGifEnabled) {\n // For animated gif support\n- implementation \"com.facebook.fresco:animated-gif:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:animated-gif:${frescoVersion}\")\n }\n \n if (isWebpEnabled) {\n // For webp support\n- implementation \"com.facebook.fresco:webpsupport:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:webpsupport:${frescoVersion}\")\n if (isWebpAnimatedEnabled) {\n // Animated webp support\n- implementation \"com.facebook.fresco:animated-webp:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:animated-webp:${frescoVersion}\")\n }\n }\n \n- implementation \"androidx.swiperefreshlayout:swiperefreshlayout:1.0.0\"\n- debugImplementation(\"com.facebook.flipper:flipper:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.fbjni'\n- }\n+ implementation(\"androidx.swiperefreshlayout:swiperefreshlayout:1.0.0\")\n+\n+ debugImplementation(\"com.facebook.flipper:flipper:${FLIPPER_VERSION}\")\n debugImplementation(\"com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.flipper'\n exclude group:'com.squareup.okhttp3', module:'okhttp'\n }\n- debugImplementation(\"com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.flipper'\n- }\n+ debugImplementation(\"com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}\")\n \n- if (enableHermes) {\n- debugImplementation files(new File([\"node\", \"--print\", \"require.resolve('hermes-engine/package.json')\"].execute(null, rootDir).text.trim(), \"../android/hermes-debug.aar\"))\n- releaseImplementation files(new File([\"node\", \"--print\", \"require.resolve('hermes-engine/package.json')\"].execute(null, rootDir).text.trim(), \"../android/hermes-release.aar\"))\n+ if (hermesEnabled.toBoolean()) {\n+ implementation(\"com.facebook.react:hermes-android\")\n } else {\n implementation jscFlavor\n }\n }\n \n-if (isNewArchitectureEnabled()) {\n- // If new architecture is enabled, we let you build RN from source\n- // Otherwise we fallback to a prebuilt .aar bundled in the NPM package.\n- // This will be applied to all the imported transtitive dependency.\n- configurations.all {\n- resolutionStrategy.dependencySubstitution {\n- substitute(module(\"com.facebook.react:react-native\"))\n- .using(project(\":ReactAndroid\")).because(\"On New Architecture we're building React Native from source\")\n- }\n- }\n-}\n-\n-// Run this once to be able to run the application with BUCK\n-// puts all compile dependencies into folder libs for BUCK to use\n-task copyDownloadableDepsToLibs(type: Copy) {\n- from configurations.implementation\n- into 'libs'\n-}\n-\n apply from: new File([\"node\", \"--print\", \"require.resolve('@react-native-community/cli-platform-android/package.json')\"].execute(null, rootDir).text.trim(), \"../native_modules.gradle\");\n applyNativeModulesAppBuildGradle(project)\n-\n-def isNewArchitectureEnabled() {\n- // To opt-in for the New Architecture, you can either:\n- // - Set `newArchEnabled` to true inside the `gradle.properties` file\n- // - Invoke gradle with `-newArchEnabled=true`\n- // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`\n- return project.hasProperty(\"newArchEnabled\") && project.newArchEnabled == \"true\"\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/build_defs.bzl b/templates/expo-template-bare-minimum/android/app/build_defs.bzl\ndeleted file mode 100644\nindex fff270f8d1..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/build_defs.bzl\n+++ /dev/null\n@@ -1,19 +0,0 @@\n-\"\"\"Helper definitions to glob .aar and .jar targets\"\"\"\n-\n-def create_aar_targets(aarfiles):\n- for aarfile in aarfiles:\n- name = \"aars__\" + aarfile[aarfile.rindex(\"/\") + 1:aarfile.rindex(\".aar\")]\n- lib_deps.append(\":\" + name)\n- android_prebuilt_aar(\n- name = name,\n- aar = aarfile,\n- )\n-\n-def create_jar_targets(jarfiles):\n- for jarfile in jarfiles:\n- name = \"jars__\" + jarfile[jarfile.rindex(\"/\") + 1:jarfile.rindex(\".jar\")]\n- lib_deps.append(\":\" + name)\n- prebuilt_jar(\n- name = name,\n- binary_jar = jarfile,\n- )\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java b/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\nindex 8cddb11cb2..595dd5831c 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\n@@ -1,5 +1,5 @@\n /**\n- * Copyright (c) Facebook, Inc. and its affiliates.\n+ * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n *

This source code is licensed under the MIT license found in the LICENSE file in the root\n * directory of this source tree.\n@@ -17,22 +17,27 @@ import com.facebook.flipper.plugins.inspector.DescriptorMapping;\n import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;\n import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;\n import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;\n-import com.facebook.flipper.plugins.react.ReactFlipperPlugin;\n import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;\n+import com.facebook.react.ReactInstanceEventListener;\n import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.bridge.ReactContext;\n import com.facebook.react.modules.network.NetworkingModule;\n import okhttp3.OkHttpClient;\n \n+/**\n+ * Class responsible of loading Flipper inside your React Native application. This is the debug\n+ * flavor of it. Here you can add your own plugins and customize the Flipper setup.\n+ */\n public class ReactNativeFlipper {\n public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {\n if (FlipperUtils.shouldEnableFlipper(context)) {\n final FlipperClient client = AndroidFlipperClient.getInstance(context);\n+\n client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));\n- client.addPlugin(new ReactFlipperPlugin());\n client.addPlugin(new DatabasesFlipperPlugin(context));\n client.addPlugin(new SharedPreferencesFlipperPlugin(context));\n client.addPlugin(CrashReporterPlugin.getInstance());\n+\n NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();\n NetworkingModule.setCustomClientBuilder(\n new NetworkingModule.CustomClientBuilder() {\n@@ -43,12 +48,13 @@ public class ReactNativeFlipper {\n });\n client.addPlugin(networkFlipperPlugin);\n client.start();\n+\n // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized\n // Hence we run if after all native modules have been initialized\n ReactContext reactContext = reactInstanceManager.getCurrentReactContext();\n if (reactContext == null) {\n reactInstanceManager.addReactInstanceEventListener(\n- new ReactInstanceManager.ReactInstanceEventListener() {\n+ new ReactInstanceEventListener() {\n @Override\n public void onReactContextInitialized(ReactContext reactContext) {\n reactInstanceManager.removeReactInstanceEventListener(this);\n@@ -66,4 +72,4 @@ public class ReactNativeFlipper {\n }\n }\n }\n-}\n\\ No newline at end of file\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\nindex 0cad655b33..6536fc03ad 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n@@ -1,4 +1,4 @@\n-\n+\n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\nindex 576e23db45..7e2823fb6c 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n@@ -5,7 +5,8 @@ import android.os.Bundle;\n \n import com.facebook.react.ReactActivity;\n import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactActivityDelegate;\n \n import expo.modules.ReactActivityDelegateWrapper;\n \n@@ -28,11 +29,21 @@ public class MainActivity extends ReactActivity {\n return \"main\";\n }\n \n+ /**\n+ * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link\n+ * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React\n+ * (aka React 18) with two boolean flags.\n+ */\n @Override\n protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this,\n- new ReactActivityDelegate(this, getMainComponentName())\n- );\n+ return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate(\n+ this,\n+ getMainComponentName(),\n+ // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n+ DefaultNewArchitectureEntryPoint.getFabricEnabled(), // fabricEnabled\n+ // If you opted-in for the New Architecture, we enable Concurrent React (i.e. React 18).\n+ DefaultNewArchitectureEntryPoint.getConcurrentReactEnabled() // concurrentRootEnabled\n+ ));\n }\n \n /**\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\nindex 7deb688b07..31c2b288c1 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n@@ -1,69 +1,70 @@\n package com.helloworld;\n \n import android.app.Application;\n-import android.content.Context;\n import android.content.res.Configuration;\n import androidx.annotation.NonNull;\n \n import com.facebook.react.PackageList;\n import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.ReactNativeHost;\n import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactNativeHost;\n import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n \n import expo.modules.ApplicationLifecycleDispatcher;\n import expo.modules.ReactNativeHostWrapper;\n \n-import java.lang.reflect.InvocationTargetException;\n import java.util.List;\n \n public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n \n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n+ private final ReactNativeHost mReactNativeHost =\n+ new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) {\n+ @Override\n+ public boolean getUseDeveloperSupport() {\n+ return BuildConfig.DEBUG;\n+ }\n \n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n+ @Override\n+ protected List getPackages() {\n+ @SuppressWarnings(\"UnnecessaryLocalVariable\")\n+ List packages = new PackageList(this).getPackages();\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return packages;\n+ }\n \n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n+ @Override\n+ protected String getJSMainModuleName() {\n+ return \"index\";\n+ }\n+\n+ @Override\n+ protected boolean isNewArchEnabled() {\n+ return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n+ }\n+\n+ @Override\n+ protected Boolean isHermesEnabled() {\n+ return BuildConfig.IS_HERMES_ENABLED;\n+ }\n+ });\n \n @Override\n public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n+ return mReactNativeHost;\n }\n \n @Override\n public void onCreate() {\n super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ DefaultNewArchitectureEntryPoint.load();\n+ }\n+ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n ApplicationLifecycleDispatcher.onApplicationCreate(this);\n }\n \n@@ -72,35 +73,4 @@ public class MainApplication extends Application implements ReactApplication {\n super.onConfigurationChanged(newConfig);\n ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex f555e36448..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,116 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- new EmptyReactNativeConfig(),\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex 0ae6366756..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,49 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source \n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_futures \\\n- libfolly_json \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java b/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java\nnew file mode 100644\nindex 0000000000..b510364404\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java\n@@ -0,0 +1,20 @@\n+/**\n+ * Copyright (c) Meta Platforms, Inc. and affiliates.\n+ *\n+ *

This source code is licensed under the MIT license found in the LICENSE file in the root\n+ * directory of this source tree.\n+ */\n+package com.helloworld;\n+\n+import android.content.Context;\n+import com.facebook.react.ReactInstanceManager;\n+\n+/**\n+ * Class responsible of loading Flipper inside your React Native application. This is the release\n+ * flavor of it so it's empty as we don't want to load Flipper.\n+ */\n+public class ReactNativeFlipper {\n+ public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {\n+ // Do nothing as we don't want to initialize Flipper on Release.\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/build.gradle b/templates/expo-template-bare-minimum/android/build.gradle\nindex fa77528908..e5fda82878 100644\n--- a/templates/expo-template-bare-minimum/android/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/build.gradle\n@@ -1,50 +1,31 @@\n-import org.apache.tools.ant.taskdefs.condition.Os\n-\n // Top-level build file where you can add configuration options common to all sub-projects/modules.\n \n buildscript {\n ext {\n- buildToolsVersion = findProperty('android.buildToolsVersion') ?: '31.0.0'\n+ buildToolsVersion = findProperty('android.buildToolsVersion') ?: '33.0.0'\n minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '21')\n- compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '31')\n- targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '31')\n+ compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '33')\n+ targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '33')\n if (findProperty('android.kotlinVersion')) {\n kotlinVersion = findProperty('android.kotlinVersion')\n }\n frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0'\n \n- if (System.properties['os.arch'] == 'aarch64') {\n- // For M1 Users we need to use the NDK 24 which added support for aarch64\n- ndkVersion = '24.0.8215888'\n- } else {\n- // Otherwise we default to the side-by-side NDK version from AGP.\n- ndkVersion = '21.4.7075529'\n- }\n+ // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.\n+ ndkVersion = \"23.1.7779620\"\n }\n repositories {\n google()\n mavenCentral()\n }\n dependencies {\n- classpath('com.android.tools.build:gradle:7.0.4')\n+ classpath('com.android.tools.build:gradle:7.4.1')\n classpath('com.facebook.react:react-native-gradle-plugin')\n- classpath('de.undercouch:gradle-download-task:4.1.2')\n- // NOTE: Do not place your application dependencies here; they belong\n- // in the individual module build.gradle files\n }\n }\n \n-def REACT_NATIVE_VERSION = new File(['node', '--print',\"JSON.parse(require('fs').readFileSync(require.resolve('react-native/package.json'), 'utf-8')).version\"].execute(null, rootDir).text.trim())\n-\n allprojects {\n- configurations.all {\n- resolutionStrategy {\n- force \"com.facebook.react:react-native:\" + REACT_NATIVE_VERSION\n- }\n- }\n-\n repositories {\n- mavenLocal()\n maven {\n // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm\n url(new File(['node', '--print', \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), '../android'))\n@@ -55,13 +36,7 @@ allprojects {\n }\n \n google()\n- mavenCentral {\n- // We don't want to fetch react-native from Maven Central as there are\n- // older versions over there.\n- content {\n- excludeGroup 'com.facebook.react'\n- }\n- }\n+ mavenCentral()\n maven { url 'https://www.jitpack.io' }\n }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/gitignore b/templates/expo-template-bare-minimum/android/gitignore\nindex 64436baaf5..877b87e9a5 100644\n--- a/templates/expo-template-bare-minimum/android/gitignore\n+++ b/templates/expo-template-bare-minimum/android/gitignore\n@@ -11,11 +11,5 @@ local.properties\n *.iml\n *.hprof\n \n-# BUCK\n-buck-out/\n-\\.buckd/\n-*.keystore\n-!debug.keystore\n-\n # Bundle artifacts\n *.jsbundle\ndiff --git a/templates/expo-template-bare-minimum/android/gradle.properties b/templates/expo-template-bare-minimum/android/gradle.properties\nindex fab3fb6bcf..9911ac4afd 100644\n--- a/templates/expo-template-bare-minimum/android/gradle.properties\n+++ b/templates/expo-template-bare-minimum/android/gradle.properties\n@@ -42,7 +42,7 @@ newArchEnabled=false\n \n # The hosted JavaScript engine\n # Supported values: expo.jsEngine = \"hermes\" | \"jsc\"\n-expo.jsEngine=jsc\n+expo.jsEngine=hermes\n \n # Enable GIF support in React Native images (~200 B increase)\n expo.gif.enabled=true\ndiff --git a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar\nindex 7454180f2a..249e5832f0 100644\nBinary files a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar and b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar differ\ndiff --git a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\nindex 669386b870..8fad3f5a98 100644\n--- a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\n+++ b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\n@@ -1,5 +1,5 @@\n distributionBase=GRADLE_USER_HOME\n distributionPath=wrapper/dists\n-distributionUrl=https\\://services.gradle.org/distributions/gradle-7.3.3-all.zip\n+distributionUrl=https\\://services.gradle.org/distributions/gradle-7.5.1-all.zip\n zipStoreBase=GRADLE_USER_HOME\n zipStorePath=wrapper/dists\ndiff --git a/templates/expo-template-bare-minimum/android/gradlew b/templates/expo-template-bare-minimum/android/gradlew\nindex 1b6c787337..a69d9cb6c2 100755\n--- a/templates/expo-template-bare-minimum/android/gradlew\n+++ b/templates/expo-template-bare-minimum/android/gradlew\n@@ -205,6 +205,12 @@ set -- \\\n org.gradle.wrapper.GradleWrapperMain \\\n \"$@\"\n \n+# Stop when \"xargs\" is not available.\n+if ! command -v xargs >/dev/null 2>&1\n+then\n+ die \"xargs is not available\"\n+fi\n+\n # Use \"xargs\" to parse quoted args.\n #\n # With -n1 it outputs one arg per line, with the quotes and backslashes removed.\ndiff --git a/templates/expo-template-bare-minimum/android/gradlew.bat b/templates/expo-template-bare-minimum/android/gradlew.bat\nindex ac1b06f938..53a6b238d4 100644\n--- a/templates/expo-template-bare-minimum/android/gradlew.bat\n+++ b/templates/expo-template-bare-minimum/android/gradlew.bat\n@@ -14,7 +14,7 @@\n @rem limitations under the License.\r\n @rem\r\n \r\n-@if \"%DEBUG%\" == \"\" @echo off\r\n+@if \"%DEBUG%\"==\"\" @echo off\r\n @rem ##########################################################################\r\n @rem\r\n @rem Gradle startup script for Windows\r\n@@ -25,7 +25,7 @@\n if \"%OS%\"==\"Windows_NT\" setlocal\r\n \r\n set DIRNAME=%~dp0\r\n-if \"%DIRNAME%\" == \"\" set DIRNAME=.\r\n+if \"%DIRNAME%\"==\"\" set DIRNAME=.\r\n set APP_BASE_NAME=%~n0\r\n set APP_HOME=%DIRNAME%\r\n \r\n@@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome\n \r\n set JAVA_EXE=java.exe\r\n %JAVA_EXE% -version >NUL 2>&1\r\n-if \"%ERRORLEVEL%\" == \"0\" goto execute\r\n+if %ERRORLEVEL% equ 0 goto execute\r\n \r\n echo.\r\n echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\r\n@@ -75,13 +75,15 @@ set CLASSPATH=%APP_HOME%\\gradle\\wrapper\\gradle-wrapper.jar\n \r\n :end\r\n @rem End local scope for the variables with windows NT shell\r\n-if \"%ERRORLEVEL%\"==\"0\" goto mainEnd\r\n+if %ERRORLEVEL% equ 0 goto mainEnd\r\n \r\n :fail\r\n rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of\r\n rem the _cmd.exe /c_ return code!\r\n-if not \"\" == \"%GRADLE_EXIT_CONSOLE%\" exit 1\r\n-exit /b 1\r\n+set EXIT_CODE=%ERRORLEVEL%\r\n+if %EXIT_CODE% equ 0 set EXIT_CODE=1\r\n+if not \"\"==\"%GRADLE_EXIT_CONSOLE%\" exit %EXIT_CODE%\r\n+exit /b %EXIT_CODE%\r\n \r\n :mainEnd\r\n if \"%OS%\"==\"Windows_NT\" endlocal\r\ndiff --git a/templates/expo-template-bare-minimum/android/settings.gradle b/templates/expo-template-bare-minimum/android/settings.gradle\nindex fa543f0c69..1dc416e7c1 100644\n--- a/templates/expo-template-bare-minimum/android/settings.gradle\n+++ b/templates/expo-template-bare-minimum/android/settings.gradle\n@@ -8,8 +8,3 @@ applyNativeModulesSettingsGradle(settings)\n \n include ':app'\n includeBuild(new File([\"node\", \"--print\", \"require.resolve('react-native-gradle-plugin/package.json')\"].execute(null, rootDir).text.trim()).getParentFile())\n-\n-if (settings.hasProperty(\"newArchEnabled\") && settings.newArchEnabled == \"true\") {\n- include(\":ReactAndroid\")\n- project(\":ReactAndroid\").projectDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../ReactAndroid\");\n-}\ndiff --git a/templates/expo-template-bare-minimum/gitignore b/templates/expo-template-bare-minimum/gitignore\nindex c8eb0f9a64..df57ba88a1 100644\n--- a/templates/expo-template-bare-minimum/gitignore\n+++ b/templates/expo-template-bare-minimum/gitignore\n@@ -30,6 +30,9 @@ build/\n local.properties\n *.iml\n *.hprof\n+.cxx/\n+*.keystore\n+!debug.keystore\n \n # node.js\n #\n@@ -37,18 +40,15 @@ node_modules/\n npm-debug.log\n yarn-error.log\n \n-# BUCK\n-buck-out/\n-\\.buckd/\n-*.keystore\n-!debug.keystore\n-\n # Bundle artifacts\n *.jsbundle\n \n # CocoaPods\n /ios/Pods/\n \n+# Temporary files created by Metro to check the health of the file watcher\n+.metro-health-check*\n+\n # Expo\n .expo/\n web-build/\ndiff --git a/templates/expo-template-bare-minimum/ios/.xcode.env b/templates/expo-template-bare-minimum/ios/.xcode.env\nnew file mode 100644\nindex 0000000000..3d5782c715\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/ios/.xcode.env\n@@ -0,0 +1,11 @@\n+# This `.xcode.env` file is versioned and is used to source the environment\n+# used when running script phases inside Xcode.\n+# To customize your local environment, you can create an `.xcode.env.local`\n+# file that is not versioned.\n+\n+# NODE_BINARY variable contains the PATH to the node executable.\n+#\n+# Customize the NODE_BINARY variable here.\n+# For example, to use nvm with brew, add the following line\n+# . \"$(brew --prefix nvm)/nvm.sh\" --no-use\n+export NODE_BINARY=$(command -v node)\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\nindex 2ac180e425..98e6c2afea 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n@@ -214,7 +214,7 @@\n \t\t\t);\n \t\t\trunOnlyForDeploymentPostprocessing = 0;\n \t\t\tshellPath = /bin/sh;\n-\t\t\tshellScript = \"export NODE_BINARY=node\\n\\n# The project root by default is one level up from the ios directory\\nexport PROJECT_ROOT=\\\"$PROJECT_DIR\\\"/..\\n\\n`node --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\\\"`\\n\";\n+\t\t\tshellScript = \"if [[ -f \\\"$PODS_ROOT/../.xcode.env\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env\\\"\\nfi\\nif [[ -f \\\"$PODS_ROOT/../.xcode.env.local\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env.local\\\"\\nfi\\n\\n# The project root by default is one level up from the ios directory\\nexport PROJECT_ROOT=\\\"$PROJECT_DIR\\\"/..\\n\\nif [[ \\\"$CONFIGURATION\\\" = *Debug* ]]; then\\n export SKIP_BUNDLING=1\\nfi\\nif [[ -z \\\"$ENTRY_FILE\\\" ]]; then\\n # Set the entry JS file using the bundler's entry resolution.\\n export ENTRY_FILE=\\\"$(\\\"$NODE_BINARY\\\" -e \\\"require('expo/scripts/resolveAppEntry')\\\" $PROJECT_ROOT ios relative | tail -n 1)\\\"\\nfi\\n\\n`\\\"$NODE_BINARY\\\" --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\\\"`\\n\\n\";\n \t\t};\n \t\t08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {\n \t\t\tisa = PBXShellScriptBuildPhase;\n@@ -276,7 +276,7 @@\n \t\t\t);\n \t\t\trunOnlyForDeploymentPostprocessing = 0;\n \t\t\tshellPath = /bin/sh;\n-\t\t\tshellScript = \"export RCT_METRO_PORT=\\\"${RCT_METRO_PORT:=8081}\\\"\\necho \\\"export RCT_METRO_PORT=${RCT_METRO_PORT}\\\" > `node --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\\\"`\\nif [ -z \\\"${RCT_NO_LAUNCH_PACKAGER+xxx}\\\" ] ; then\\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\\n if ! curl -s \\\"http://localhost:${RCT_METRO_PORT}/status\\\" | grep -q \\\"packager-status:running\\\" ; then\\n echo \\\"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\\\"\\n exit 2\\n fi\\n else\\n open `node --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/launchPackager.command'\\\"` || echo \\\"Can't start packager automatically\\\"\\n fi\\nfi\\n\";\n+\t\t\tshellScript = \"if [[ -f \\\"$PODS_ROOT/../.xcode.env\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env\\\"\\nfi\\nif [[ -f \\\"$PODS_ROOT/../.xcode.env.local\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env.local\\\"\\nfi\\n\\nexport RCT_METRO_PORT=\\\"${RCT_METRO_PORT:=8081}\\\"\\necho \\\"export RCT_METRO_PORT=${RCT_METRO_PORT}\\\" > `$NODE_BINARY --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\\\"`\\nif [ -z \\\"${RCT_NO_LAUNCH_PACKAGER+xxx}\\\" ] ; then\\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\\n if ! curl -s \\\"http://localhost:${RCT_METRO_PORT}/status\\\" | grep -q \\\"packager-status:running\\\" ; then\\n echo \\\"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\\\"\\n exit 2\\n fi\\n else\\n open `$NODE_BINARY --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/launchPackager.command'\\\"` || echo \\\"Can't start packager automatically\\\"\\n fi\\nfi\\n\";\n \t\t\tshowEnvVarsInLog = 0;\n \t\t};\n /* End PBXShellScriptBuildPhase section */\n@@ -308,8 +308,9 @@\n \t\t\t\t\t\"FB_SONARKIT_ENABLED=1\",\n \t\t\t\t);\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n+ MARKETING_VERSION = 1.0;\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n \t\t\t\t\t\"-ObjC\",\n@@ -331,8 +332,9 @@\n \t\t\t\tCLANG_ENABLE_MODULES = YES;\n \t\t\t\tCURRENT_PROJECT_VERSION = 1;\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n+ MARKETING_VERSION = 1.0;\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n \t\t\t\t\t\"-ObjC\",\n@@ -392,7 +394,7 @@\n \t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n \t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n \t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"/usr/lib/swift $(inherited)\";\n \t\t\t\tLIBRARY_SEARCH_PATHS = \"\\\"$(inherited)\\\"\";\n \t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n@@ -441,7 +443,7 @@\n \t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n \t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n \t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"/usr/lib/swift $(inherited)\";\n \t\t\t\tLIBRARY_SEARCH_PATHS = \"\\\"$(inherited)\\\"\";\n \t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\nindex f7d2972042..1658a437eb 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\n@@ -1,9 +1,7 @@\n-#import \n-#import \n+#import \n #import \n-\n #import \n \n-@interface AppDelegate : EXAppDelegateWrapper \n+@interface AppDelegate : EXAppDelegateWrapper\n \n @end\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\nindex aef81ec589..8cb5aef137 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n@@ -1,66 +1,19 @@\n #import \"AppDelegate.h\"\n \n-#import \n #import \n-#import \n #import \n-#import \n-\n-#import \n-\n-#if RCT_NEW_ARCH_ENABLED\n-#import \n-#import \n-#import \n-#import \n-#import \n-#import \n-\n-#import \n-\n-@interface AppDelegate () {\n- RCTTurboModuleManager *_turboModuleManager;\n- RCTSurfacePresenterBridgeAdapter *_bridgeAdapter;\n- std::shared_ptr _reactNativeConfig;\n- facebook::react::ContextContainer::Shared _contextContainer;\n-}\n-@end\n-#endif\n \n @implementation AppDelegate\n \n - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n {\n- RCTAppSetupPrepareApp(application);\n-\n- RCTBridge *bridge = [self.reactDelegate createBridgeWithDelegate:self launchOptions:launchOptions];\n-\n-#if RCT_NEW_ARCH_ENABLED\n- _contextContainer = std::make_shared();\n- _reactNativeConfig = std::make_shared();\n- _contextContainer->insert(\"ReactNativeConfig\", _reactNativeConfig);\n- _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer];\n- bridge.surfacePresenter = _bridgeAdapter.surfacePresenter;\n-#endif\n+ self.moduleName = @\"main\";\n \n- UIView *rootView = [self.reactDelegate createRootViewWithBridge:bridge moduleName:@\"main\" initialProperties:nil];\n+ // You can add your custom initial props in the dictionary below.\n+ // They will be passed down to the ViewController used by React Native.\n+ self.initialProps = @{};\n \n- rootView.backgroundColor = [UIColor whiteColor];\n- self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n- UIViewController *rootViewController = [self.reactDelegate createRootViewController];\n- rootViewController.view = rootView;\n- self.window.rootViewController = rootViewController;\n- [self.window makeKeyAndVisible];\n-\n- [super application:application didFinishLaunchingWithOptions:launchOptions];\n-\n- return YES;\n-}\n-\n-- (NSArray> *)extraModulesForBridge:(RCTBridge *)bridge\n-{\n- // If you'd like to export some custom RCTBridgeModules, add them here!\n- return @[];\n+ return [super application:application didFinishLaunchingWithOptions:launchOptions];\n }\n \n - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge\n@@ -72,6 +25,16 @@\n #endif\n }\n \n+/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off.\n+///\n+/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html\n+/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture).\n+/// @return: `true` if the `concurrentRoot` feature is enabled. Otherwise, it returns `false`.\n+- (BOOL)concurrentRootEnabled\n+{\n+ return true;\n+}\n+\n // Linking API\n - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options {\n return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options];\n@@ -101,43 +64,4 @@\n return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];\n }\n \n-#if RCT_NEW_ARCH_ENABLED\n-\n-#pragma mark - RCTCxxBridgeDelegate\n-\n-- (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge\n-{\n- _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge\n- delegate:self\n- jsInvoker:bridge.jsCallInvoker];\n- return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager);\n-}\n-\n-#pragma mark RCTTurboModuleManagerDelegate\n-\n-- (Class)getModuleClassFromName:(const char *)name\n-{\n- return RCTCoreModulesClassProvider(name);\n-}\n-\n-- (std::shared_ptr)getTurboModule:(const std::string &)name\n- jsInvoker:(std::shared_ptr)jsInvoker\n-{\n- return nullptr;\n-}\n-\n-- (std::shared_ptr)getTurboModule:(const std::string &)name\n- initParams:\n- (const facebook::react::ObjCTurboModule::InitParams &)params\n-{\n- return nullptr;\n-}\n-\n-- (id)getModuleInstanceFromClass:(Class)moduleClass\n-{\n- return RCTAppSetupDefaultModuleFromClass(moduleClass);\n-}\n-\n-#endif\n-\n @end\ndiff --git a/templates/expo-template-bare-minimum/ios/Podfile b/templates/expo-template-bare-minimum/ios/Podfile\nindex 29797efaaa..e523ea5cac 100644\n--- a/templates/expo-template-bare-minimum/ios/Podfile\n+++ b/templates/expo-template-bare-minimum/ios/Podfile\n@@ -5,37 +5,79 @@ require File.join(File.dirname(`node --print \"require.resolve('@react-native-com\n require 'json'\n podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}\n \n-platform :ios, podfile_properties['ios.deploymentTarget'] || '12.0'\n+ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0'\n+ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = '1' if podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] == 'true'\n+\n+platform :ios, podfile_properties['ios.deploymentTarget'] || '13.0'\n install! 'cocoapods',\n :deterministic_uuids => false\n \n+prepare_react_native_project!\n+\n+# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.\n+# because `react-native-flipper` depends on (FlipperKit,...), which will be excluded. To fix this,\n+# you can also exclude `react-native-flipper` in `react-native.config.js`\n+#\n+# ```js\n+# module.exports = {\n+# dependencies: {\n+# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),\n+# }\n+# }\n+# ```\n+flipper_config = FlipperConfiguration.disabled\n+if ENV['NO_FLIPPER'] == '1' then\n+ # Explicitly disabled through environment variables\n+ flipper_config = FlipperConfiguration.disabled\n+elsif podfile_properties.key?('ios.flipper') then\n+ # Configure Flipper in Podfile.properties.json\n+ if podfile_properties['ios.flipper'] == 'true' then\n+ flipper_config = FlipperConfiguration.enabled([\"Debug\", \"Release\"])\n+ elsif podfile_properties['ios.flipper'] != 'false' then\n+ flipper_config = FlipperConfiguration.enabled([\"Debug\", \"Release\"], { 'Flipper' => podfile_properties['ios.flipper'] })\n+ end\n+end\n+\n target 'HelloWorld' do\n use_expo_modules!\n config = use_native_modules!\n \n use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks']\n+ use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS']\n \n # Flags change depending on the env values.\n flags = get_default_flags()\n \n use_react_native!(\n :path => config[:reactNativePath],\n- :hermes_enabled => flags[:hermes_enabled] || podfile_properties['expo.jsEngine'] == 'hermes',\n+ :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes',\n :fabric_enabled => flags[:fabric_enabled],\n # An absolute path to your application root.\n- :app_path => \"#{Dir.pwd}/..\"\n+ :app_path => \"#{Pod::Config.instance.installation_root}/..\",\n+ # Note that if you have use_frameworks! enabled, Flipper will not work if enabled\n+ :flipper_configuration => flipper_config\n )\n \n- # Uncomment to opt-in to using Flipper\n- # Note that if you have use_frameworks! enabled, Flipper will not work\n- #\n- # if !ENV['CI']\n- # use_flipper!()\n- # end\n-\n post_install do |installer|\n- react_native_post_install(installer)\n+ react_native_post_install(\n+ installer,\n+ config[:reactNativePath],\n+ # Set `mac_catalyst_enabled` to `true` in order to apply patches\n+ # necessary for Mac Catalyst builds\n+ :mac_catalyst_enabled => false\n+ )\n __apply_Xcode_12_5_M1_post_install_workaround(installer)\n+\n+ # This is necessary for Xcode 14, because it signs resource bundles by default\n+ # when building for devices.\n+ installer.target_installation_results.pod_target_installation_results\n+ .each do |pod_name, target_installation_result|\n+ target_installation_result.resource_bundle_targets.each do |resource_bundle_target|\n+ resource_bundle_target.build_configurations.each do |config|\n+ config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'\n+ end\n+ end\n+ end\n end\n \n post_integrate do |installer|\n@@ -45,5 +87,4 @@ target 'HelloWorld' do\n Pod::UI.warn e\n end\n end\n-\n end\ndiff --git a/templates/expo-template-bare-minimum/ios/Podfile.properties.json b/templates/expo-template-bare-minimum/ios/Podfile.properties.json\nindex f6d872e81a..b1bd45da51 100644\n--- a/templates/expo-template-bare-minimum/ios/Podfile.properties.json\n+++ b/templates/expo-template-bare-minimum/ios/Podfile.properties.json\n@@ -1,3 +1,3 @@\n {\n- \"expo.jsEngine\": \"jsc\"\n+ \"expo.jsEngine\": \"hermes\"\n }\ndiff --git a/templates/expo-template-bare-minimum/ios/gitignore b/templates/expo-template-bare-minimum/ios/gitignore\nindex 2b13519939..8beb344303 100644\n--- a/templates/expo-template-bare-minimum/ios/gitignore\n+++ b/templates/expo-template-bare-minimum/ios/gitignore\n@@ -21,6 +21,7 @@ DerivedData\n *.ipa\n *.xcuserstate\n project.xcworkspace\n+.xcode.env.local\n \n # Bundle artifacts\n *.jsbundle\ndiff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json\nindex 69e7eb9619..d1fcd513cc 100644\n--- a/templates/expo-template-bare-minimum/package.json\n+++ b/templates/expo-template-bare-minimum/package.json\n@@ -1,7 +1,7 @@\n {\n \"name\": \"expo-template-bare-minimum\",\n \"description\": \"This bare project template includes a minimal setup for using unimodules with React Native.\",\n- \"version\": \"45.0.6\",\n+ \"version\": \"48.0.21\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"start\": \"expo start --dev-client\",\n@@ -10,15 +10,13 @@\n \"web\": \"expo start --web\"\n },\n \"dependencies\": {\n- \"expo\": \"~45.0.0\",\n- \"expo-splash-screen\": \"~0.15.1\",\n- \"expo-status-bar\": \"~1.3.0\",\n- \"react\": \"17.0.2\",\n- \"react-dom\": \"17.0.2\",\n- \"react-native\": \"0.68.2\",\n- \"react-native-web\": \"0.17.7\"\n+ \"expo\": \"~48.0.21\",\n+ \"expo-splash-screen\": \"~0.18.2\",\n+ \"expo-status-bar\": \"~1.4.4\",\n+ \"react\": \"18.2.0\",\n+ \"react-native\": \"0.71.14\"\n },\n \"devDependencies\": {\n- \"@babel/core\": \"^7.12.9\"\n+ \"@babel/core\": \"^7.20.0\"\n }\n }\n","46..48":"diff --git a/templates/expo-template-bare-minimum/.buckconfig b/templates/expo-template-bare-minimum/.buckconfig\ndeleted file mode 100644\nindex 934256cb29..0000000000\n--- a/templates/expo-template-bare-minimum/.buckconfig\n+++ /dev/null\n@@ -1,6 +0,0 @@\n-\n-[android]\n- target = Google Inc.:Google APIs:23\n-\n-[maven_repositories]\n- central = https://repo1.maven.org/maven2\ndiff --git a/templates/expo-template-bare-minimum/.npmignore b/templates/expo-template-bare-minimum/.npmignore\nindex 35490b6612..4e6ce00391 100644\n--- a/templates/expo-template-bare-minimum/.npmignore\n+++ b/templates/expo-template-bare-minimum/.npmignore\n@@ -20,3 +20,4 @@ ios/Pods\n android/.build\n android/app/build\n android/.gradle\n+ios/.xcode.env.local\ndiff --git a/templates/expo-template-bare-minimum/android/app/BUCK b/templates/expo-template-bare-minimum/android/app/BUCK\ndeleted file mode 100644\nindex 0e77904834..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/BUCK\n+++ /dev/null\n@@ -1,55 +0,0 @@\n-# To learn about Buck see [Docs](https://buckbuild.com/).\n-# To run your application with Buck:\n-# - install Buck\n-# - `npm start` - to start the packager\n-# - `cd android`\n-# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname \"CN=Android Debug,O=Android,C=US\"`\n-# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck\n-# - `buck install -r android/app` - compile, install and run application\n-#\n-\n-load(\":build_defs.bzl\", \"create_aar_targets\", \"create_jar_targets\")\n-\n-lib_deps = []\n-\n-create_aar_targets(glob([\"libs/*.aar\"]))\n-\n-create_jar_targets(glob([\"libs/*.jar\"]))\n-\n-android_library(\n- name = \"all-libs\",\n- exported_deps = lib_deps,\n-)\n-\n-android_library(\n- name = \"app-code\",\n- srcs = glob([\n- \"src/main/java/**/*.java\",\n- ]),\n- deps = [\n- \":all-libs\",\n- \":build_config\",\n- \":res\",\n- ],\n-)\n-\n-android_build_config(\n- name = \"build_config\",\n- package = \"com.helloworld\",\n-)\n-\n-android_resource(\n- name = \"res\",\n- package = \"com.helloworld\",\n- res = \"src/main/res\",\n-)\n-\n-android_binary(\n- name = \"app\",\n- keystore = \"//android/keystores:debug\",\n- manifest = \"src/main/AndroidManifest.xml\",\n- package_type = \"debug\",\n- deps = [\n- \":app-code\",\n- ],\n-)\ndiff --git a/templates/expo-template-bare-minimum/android/app/build.gradle b/templates/expo-template-bare-minimum/android/app/build.gradle\nindex f0293fe400..189390e7e3 100644\n--- a/templates/expo-template-bare-minimum/android/app/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/app/build.gradle\n@@ -1,136 +1,107 @@\n apply plugin: \"com.android.application\"\n+apply plugin: \"com.facebook.react\"\n \n import com.android.build.OutputFile\n-import org.apache.tools.ant.taskdefs.condition.Os\n-\n-/**\n- * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets\n- * and bundleReleaseJsAndAssets).\n- * These basically call `react-native bundle` with the correct arguments during the Android build\n- * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the\n- * bundle directly from the development server. Below you can see all the possible configurations\n- * and their defaults. If you decide to add a configuration block, make sure to add it before the\n- * `apply from: \"../../node_modules/react-native/react.gradle\"` line.\n- *\n- * project.ext.react = [\n- * // the name of the generated asset file containing your JS bundle\n- * bundleAssetName: \"index.android.bundle\",\n- *\n- * // the entry file for bundle generation. If none specified and\n- * // \"index.android.js\" exists, it will be used. Otherwise \"index.js\" is\n- * // default. Can be overridden with ENTRY_FILE environment variable.\n- * entryFile: \"index.android.js\",\n- *\n- * // https://reactnative.dev/docs/performance#enable-the-ram-format\n- * bundleCommand: \"ram-bundle\",\n- *\n- * // whether to bundle JS and assets in debug mode\n- * bundleInDebug: false,\n- *\n- * // whether to bundle JS and assets in release mode\n- * bundleInRelease: true,\n- *\n- * // whether to bundle JS and assets in another build variant (if configured).\n- * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants\n- * // The configuration property can be in the following formats\n- * // 'bundleIn${productFlavor}${buildType}'\n- * // 'bundleIn${buildType}'\n- * // bundleInFreeDebug: true,\n- * // bundleInPaidRelease: true,\n- * // bundleInBeta: true,\n- *\n- * // whether to disable dev mode in custom build variants (by default only disabled in release)\n- * // for example: to disable dev mode in the staging build type (if configured)\n- * devDisabledInStaging: true,\n- * // The configuration property can be in the following formats\n- * // 'devDisabledIn${productFlavor}${buildType}'\n- * // 'devDisabledIn${buildType}'\n- *\n- * // the root of your project, i.e. where \"package.json\" lives\n- * root: \"../../\",\n- *\n- * // where to put the JS bundle asset in debug mode\n- * jsBundleDirDebug: \"$buildDir/intermediates/assets/debug\",\n- *\n- * // where to put the JS bundle asset in release mode\n- * jsBundleDirRelease: \"$buildDir/intermediates/assets/release\",\n- *\n- * // where to put drawable resources / React Native assets, e.g. the ones you use via\n- * // require('./image.png')), in debug mode\n- * resourcesDirDebug: \"$buildDir/intermediates/res/merged/debug\",\n- *\n- * // where to put drawable resources / React Native assets, e.g. the ones you use via\n- * // require('./image.png')), in release mode\n- * resourcesDirRelease: \"$buildDir/intermediates/res/merged/release\",\n- *\n- * // by default the gradle tasks are skipped if none of the JS files or assets change; this means\n- * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to\n- * // date; if you have any other folders that you want to ignore for performance reasons (gradle\n- * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/\n- * // for example, you might want to remove it from here.\n- * inputExcludes: [\"android/**\", \"ios/**\"],\n- *\n- * // override which node gets called and with what additional arguments\n- * nodeExecutableAndArgs: [\"node\"],\n- *\n- * // supply additional arguments to the packager\n- * extraPackagerArgs: []\n- * ]\n- */\n \n def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath()\n+def expoDebuggableVariants = ['debug']\n+// Override `debuggableVariants` for expo-updates debugging\n+if (System.getenv('EX_UPDATES_NATIVE_DEBUG') == \"1\") {\n+ react {\n+ expoDebuggableVariants = []\n+ }\n+}\n \n-def reactNativeRoot = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath()\n \n-project.ext.react = [\n- entryFile: [\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\"].execute(null, rootDir).text.trim(),\n- enableHermes: (findProperty('expo.jsEngine') ?: \"jsc\") == \"hermes\",\n- hermesCommand: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/sdks/hermesc/%OS-BIN%/hermesc\",\n- cliPath: \"${reactNativeRoot}/cli.js\",\n- composeSourceMapsPath: \"${reactNativeRoot}/scripts/compose-source-maps.js\",\n-]\n+/**\n+ * This is the configuration block to customize your React Native Android app.\n+ * By default you don't need to apply any configuration, just uncomment the lines you need.\n+ */\n+react {\n+ entryFile = file([\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\", \"absolute\"].execute(null, rootDir).text.trim())\n+ reactNativeDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()\n+ hermesCommand = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/sdks/hermesc/%OS-BIN%/hermesc\"\n+ debuggableVariants = expoDebuggableVariants\n+\n+ /* Folders */\n+ // The root of your project, i.e. where \"package.json\" lives. Default is '..'\n+ // root = file(\"../\")\n+ // The folder where the react-native NPM package is. Default is ../node_modules/react-native\n+ // reactNativeDir = file(\"../node_modules/react-native\")\n+ // The folder where the react-native Codegen package is. Default is ../node_modules/react-native-codegen\n+ // codegenDir = file(\"../node_modules/react-native-codegen\")\n+ // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js\n+ // cliFile = file(\"../node_modules/react-native/cli.js\")\n+\n+ /* Variants */\n+ // The list of variants to that are debuggable. For those we're going to\n+ // skip the bundling of the JS bundle and the assets. By default is just 'debug'.\n+ // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.\n+ // debuggableVariants = [\"liteDebug\", \"prodDebug\"]\n+\n+ /* Bundling */\n+ // A list containing the node command and its flags. Default is just 'node'.\n+ // nodeExecutableAndArgs = [\"node\"]\n+ //\n+ // The command to run when bundling. By default is 'bundle'\n+ // bundleCommand = \"ram-bundle\"\n+ //\n+ // The path to the CLI configuration file. Default is empty.\n+ // bundleConfig = file(../rn-cli.config.js)\n+ //\n+ // The name of the generated asset file containing your JS bundle\n+ // bundleAssetName = \"MyApplication.android.bundle\"\n+ //\n+ // The entry file for bundle generation. Default is 'index.android.js' or 'index.js'\n+ // entryFile = file(\"../js/MyApplication.android.js\")\n+ //\n+ // A list of extra flags to pass to the 'bundle' commands.\n+ // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle\n+ // extraPackagerArgs = []\n+\n+ /* Hermes Commands */\n+ // The hermes compiler command to run. By default it is 'hermesc'\n+ // hermesCommand = \"$rootDir/my-custom-hermesc/bin/hermesc\"\n+ //\n+ // The list of flags to pass to the Hermes compiler. By default is \"-O\", \"-output-source-map\"\n+ // hermesFlags = [\"-O\", \"-output-source-map\"]\n+}\n \n-apply from: new File(reactNativeRoot, \"react.gradle\")\n+// Override `hermesEnabled` by `expo.jsEngine`\n+ext {\n+ hermesEnabled = (findProperty('expo.jsEngine') ?: \"hermes\") == \"hermes\"\n+}\n \n /**\n- * Set this to true to create two separate APKs instead of one:\n- * - An APK that only works on ARM devices\n- * - An APK that only works on x86 devices\n- * The advantage is the size of the APK is reduced by about 4MB.\n- * Upload all the APKs to the Play Store and people will download\n- * the correct one based on the CPU architecture of their device.\n+ * Set this to true to create four separate APKs instead of one,\n+ * one for each native architecture. This is useful if you don't\n+ * use App Bundles (https://developer.android.com/guide/app-bundle/)\n+ * and want to have separate APKs to upload to the Play Store.\n */\n def enableSeparateBuildPerCPUArchitecture = false\n \n /**\n- * Run Proguard to shrink the Java bytecode in release builds.\n+ * Set this to true to Run Proguard on Release builds to minify the Java bytecode.\n */\n def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean()\n \n /**\n- * The preferred build flavor of JavaScriptCore.\n+ * The preferred build flavor of JavaScriptCore (JSC)\n *\n * For example, to use the international variant, you can use:\n * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`\n *\n * The international variant includes ICU i18n library and necessary data\n * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that\n- * give correct results when using with locales other than en-US. Note that\n+ * give correct results when using with locales other than en-US. Note that\n * this variant is about 6MiB larger per architecture than default.\n */\n def jscFlavor = 'org.webkit:android-jsc:+'\n \n /**\n- * Whether to enable the Hermes VM.\n- *\n- * This should be set on project.ext.react and that value will be read here. If it is not set\n- * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode\n- * and the benefits of using Hermes will therefore be sharply reduced.\n- */\n-def enableHermes = project.ext.react.get(\"enableHermes\", false);\n-\n-/**\n- * Architectures to build native code for.\n+ * Private function to get the list of Native Architectures you want to build.\n+ * This reads the value from reactNativeArchitectures in your gradle.properties\n+ * file and works together with the --active-arch-only flag of react-native run-android.\n */\n def reactNativeArchitectures() {\n def value = project.getProperties().get(\"reactNativeArchitectures\")\n@@ -142,85 +113,13 @@ android {\n \n compileSdkVersion rootProject.ext.compileSdkVersion\n \n+ namespace \"com.helloworld\"\n defaultConfig {\n applicationId \"com.helloworld\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n- buildConfigField \"boolean\", \"IS_NEW_ARCHITECTURE_ENABLED\", isNewArchitectureEnabled().toString()\n-\n- if (isNewArchitectureEnabled()) {\n- // We configure the NDK build only if you decide to opt-in for the New Architecture.\n- externalNativeBuild {\n- ndkBuild {\n- arguments \"APP_PLATFORM=android-21\",\n- \"APP_STL=c++_shared\",\n- \"NDK_TOOLCHAIN_VERSION=clang\",\n- \"GENERATED_SRC_DIR=$buildDir/generated/source\",\n- \"PROJECT_BUILD_DIR=$buildDir\",\n- \"REACT_ANDROID_DIR=${reactNativeRoot}/ReactAndroid\",\n- \"REACT_ANDROID_BUILD_DIR=${reactNativeRoot}/ReactAndroid/build\",\n- \"NODE_MODULES_DIR=$rootDir/../node_modules\"\n- cFlags \"-Wall\", \"-Werror\", \"-fexceptions\", \"-frtti\", \"-DWITH_INSPECTOR=1\"\n- cppFlags \"-std=c++17\"\n- // Make sure this target name is the same you specify inside the\n- // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.\n- targets \"helloworld_appmodules\"\n-\n- // Fix for windows limit on number of character in file paths and in command lines\n- if (Os.isFamily(Os.FAMILY_WINDOWS)) {\n- arguments \"NDK_APP_SHORT_COMMANDS=true\"\n- }\n- }\n- }\n- if (!enableSeparateBuildPerCPUArchitecture) {\n- ndk {\n- abiFilters (*reactNativeArchitectures())\n- }\n- }\n- }\n- }\n-\n- if (isNewArchitectureEnabled()) {\n- // We configure the NDK build only if you decide to opt-in for the New Architecture.\n- externalNativeBuild {\n- ndkBuild {\n- path \"$projectDir/src/main/jni/Android.mk\"\n- }\n- }\n- def reactAndroidProjectDir = project(':ReactAndroid').projectDir\n- def packageReactNdkDebugLibs = tasks.register(\"packageReactNdkDebugLibs\", Copy) {\n- dependsOn(\":ReactAndroid:packageReactNdkDebugLibsForBuck\")\n- from(\"$reactAndroidProjectDir/src/main/jni/prebuilt/lib\")\n- into(\"$buildDir/react-ndk/exported\")\n- }\n- def packageReactNdkReleaseLibs = tasks.register(\"packageReactNdkReleaseLibs\", Copy) {\n- dependsOn(\":ReactAndroid:packageReactNdkReleaseLibsForBuck\")\n- from(\"$reactAndroidProjectDir/src/main/jni/prebuilt/lib\")\n- into(\"$buildDir/react-ndk/exported\")\n- }\n- afterEvaluate {\n- // If you wish to add a custom TurboModule or component locally,\n- // you should uncomment this line.\n- // preBuild.dependsOn(\"generateCodegenArtifactsFromSchema\")\n- preDebugBuild.dependsOn(packageReactNdkDebugLibs)\n- preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)\n-\n- // Due to a bug inside AGP, we have to explicitly set a dependency\n- // between configureNdkBuild* tasks and the preBuild tasks.\n- // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732\n- configureNdkBuildRelease.dependsOn(preReleaseBuild)\n- configureNdkBuildDebug.dependsOn(preDebugBuild)\n- reactNativeArchitectures().each { architecture ->\n- tasks.findByName(\"configureNdkBuildDebug[${architecture}]\")?.configure {\n- dependsOn(\"preDebugBuild\")\n- }\n- tasks.findByName(\"configureNdkBuildRelease[${architecture}]\")?.configure {\n- dependsOn(\"preReleaseBuild\")\n- }\n- }\n- }\n }\n \n splits {\n@@ -247,6 +146,7 @@ android {\n // Caution! In production, you need to generate your own keystore file.\n // see https://reactnative.dev/docs/signed-apk-android.\n signingConfig signingConfigs.debug\n+ shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false)\n minifyEnabled enableProguardInReleaseBuilds\n proguardFiles getDefaultProguardFile(\"proguard-android.txt\"), \"proguard-rules.pro\"\n }\n@@ -257,11 +157,12 @@ android {\n variant.outputs.each { output ->\n // For each separate APK per architecture, set a unique version code as described here:\n // https://developer.android.com/studio/build/configure-apk-splits.html\n+ // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.\n def versionCodes = [\"armeabi-v7a\": 1, \"x86\": 2, \"arm64-v8a\": 3, \"x86_64\": 4]\n def abi = output.getFilter(OutputFile.ABI)\n if (abi != null) { // null for the universal-debug, universal-release variants\n output.versionCodeOverride =\n- versionCodes.get(abi) * 1048576 + defaultConfig.versionCode\n+ defaultConfig.versionCode * 1000 + versionCodes.get(abi)\n }\n \n }\n@@ -289,10 +190,8 @@ android {\n }\n \n dependencies {\n- implementation fileTree(dir: \"libs\", include: [\"*.jar\"])\n-\n- //noinspection GradleDynamicVersion\n- implementation \"com.facebook.react:react-native:+\" // From node_modules\n+ // The version of react-native is set by the React Native Gradle Plugin\n+ implementation(\"com.facebook.react:react-android\")\n \n def isGifEnabled = (findProperty('expo.gif.enabled') ?: \"\") == \"true\";\n def isWebpEnabled = (findProperty('expo.webp.enabled') ?: \"\") == \"true\";\n@@ -301,76 +200,38 @@ dependencies {\n \n // If your app supports Android versions before Ice Cream Sandwich (API level 14)\n if (isGifEnabled || isWebpEnabled) {\n- implementation \"com.facebook.fresco:fresco:${frescoVersion}\"\n- implementation \"com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:fresco:${frescoVersion}\")\n+ implementation(\"com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}\")\n }\n \n if (isGifEnabled) {\n // For animated gif support\n- implementation \"com.facebook.fresco:animated-gif:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:animated-gif:${frescoVersion}\")\n }\n \n if (isWebpEnabled) {\n // For webp support\n- implementation \"com.facebook.fresco:webpsupport:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:webpsupport:${frescoVersion}\")\n if (isWebpAnimatedEnabled) {\n // Animated webp support\n- implementation \"com.facebook.fresco:animated-webp:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:animated-webp:${frescoVersion}\")\n }\n }\n \n- implementation \"androidx.swiperefreshlayout:swiperefreshlayout:1.0.0\"\n- debugImplementation(\"com.facebook.flipper:flipper:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.fbjni'\n- }\n+ implementation(\"androidx.swiperefreshlayout:swiperefreshlayout:1.0.0\")\n+\n+ debugImplementation(\"com.facebook.flipper:flipper:${FLIPPER_VERSION}\")\n debugImplementation(\"com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.flipper'\n exclude group:'com.squareup.okhttp3', module:'okhttp'\n }\n- debugImplementation(\"com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.flipper'\n- }\n+ debugImplementation(\"com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}\")\n \n- if (enableHermes) {\n- //noinspection GradleDynamicVersion\n- implementation(\"com.facebook.react:hermes-engine:+\") { // From node_modules\n- exclude group:'com.facebook.fbjni'\n- }\n+ if (hermesEnabled.toBoolean()) {\n+ implementation(\"com.facebook.react:hermes-android\")\n } else {\n implementation jscFlavor\n }\n }\n \n-if (isNewArchitectureEnabled()) {\n- // If new architecture is enabled, we let you build RN from source\n- // Otherwise we fallback to a prebuilt .aar bundled in the NPM package.\n- // This will be applied to all the imported transtitive dependency.\n- configurations.all {\n- resolutionStrategy.dependencySubstitution {\n- substitute(module(\"com.facebook.react:react-native\"))\n- .using(project(\":ReactAndroid\"))\n- .because(\"On New Architecture we're building React Native from source\")\n- substitute(module(\"com.facebook.react:hermes-engine\"))\n- .using(project(\":ReactAndroid:hermes-engine\"))\n- .because(\"On New Architecture we're building Hermes from source\")\n- }\n- }\n-}\n-\n-// Run this once to be able to run the application with BUCK\n-// puts all compile dependencies into folder libs for BUCK to use\n-task copyDownloadableDepsToLibs(type: Copy) {\n- from configurations.implementation\n- into 'libs'\n-}\n-\n apply from: new File([\"node\", \"--print\", \"require.resolve('@react-native-community/cli-platform-android/package.json')\"].execute(null, rootDir).text.trim(), \"../native_modules.gradle\");\n applyNativeModulesAppBuildGradle(project)\n-\n-def isNewArchitectureEnabled() {\n- // To opt-in for the New Architecture, you can either:\n- // - Set `newArchEnabled` to true inside the `gradle.properties` file\n- // - Invoke gradle with `-newArchEnabled=true`\n- // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`\n- return project.hasProperty(\"newArchEnabled\") && project.newArchEnabled == \"true\"\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/build_defs.bzl b/templates/expo-template-bare-minimum/android/app/build_defs.bzl\ndeleted file mode 100644\nindex fff270f8d1..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/build_defs.bzl\n+++ /dev/null\n@@ -1,19 +0,0 @@\n-\"\"\"Helper definitions to glob .aar and .jar targets\"\"\"\n-\n-def create_aar_targets(aarfiles):\n- for aarfile in aarfiles:\n- name = \"aars__\" + aarfile[aarfile.rindex(\"/\") + 1:aarfile.rindex(\".aar\")]\n- lib_deps.append(\":\" + name)\n- android_prebuilt_aar(\n- name = name,\n- aar = aarfile,\n- )\n-\n-def create_jar_targets(jarfiles):\n- for jarfile in jarfiles:\n- name = \"jars__\" + jarfile[jarfile.rindex(\"/\") + 1:jarfile.rindex(\".jar\")]\n- lib_deps.append(\":\" + name)\n- prebuilt_jar(\n- name = name,\n- binary_jar = jarfile,\n- )\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java b/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\nindex 8cddb11cb2..595dd5831c 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\n@@ -1,5 +1,5 @@\n /**\n- * Copyright (c) Facebook, Inc. and its affiliates.\n+ * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n *

This source code is licensed under the MIT license found in the LICENSE file in the root\n * directory of this source tree.\n@@ -17,22 +17,27 @@ import com.facebook.flipper.plugins.inspector.DescriptorMapping;\n import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;\n import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;\n import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;\n-import com.facebook.flipper.plugins.react.ReactFlipperPlugin;\n import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;\n+import com.facebook.react.ReactInstanceEventListener;\n import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.bridge.ReactContext;\n import com.facebook.react.modules.network.NetworkingModule;\n import okhttp3.OkHttpClient;\n \n+/**\n+ * Class responsible of loading Flipper inside your React Native application. This is the debug\n+ * flavor of it. Here you can add your own plugins and customize the Flipper setup.\n+ */\n public class ReactNativeFlipper {\n public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {\n if (FlipperUtils.shouldEnableFlipper(context)) {\n final FlipperClient client = AndroidFlipperClient.getInstance(context);\n+\n client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));\n- client.addPlugin(new ReactFlipperPlugin());\n client.addPlugin(new DatabasesFlipperPlugin(context));\n client.addPlugin(new SharedPreferencesFlipperPlugin(context));\n client.addPlugin(CrashReporterPlugin.getInstance());\n+\n NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();\n NetworkingModule.setCustomClientBuilder(\n new NetworkingModule.CustomClientBuilder() {\n@@ -43,12 +48,13 @@ public class ReactNativeFlipper {\n });\n client.addPlugin(networkFlipperPlugin);\n client.start();\n+\n // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized\n // Hence we run if after all native modules have been initialized\n ReactContext reactContext = reactInstanceManager.getCurrentReactContext();\n if (reactContext == null) {\n reactInstanceManager.addReactInstanceEventListener(\n- new ReactInstanceManager.ReactInstanceEventListener() {\n+ new ReactInstanceEventListener() {\n @Override\n public void onReactContextInitialized(ReactContext reactContext) {\n reactInstanceManager.removeReactInstanceEventListener(this);\n@@ -66,4 +72,4 @@ public class ReactNativeFlipper {\n }\n }\n }\n-}\n\\ No newline at end of file\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\nindex 0cad655b33..6536fc03ad 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n@@ -1,4 +1,4 @@\n-\n+\n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\nindex 8e13797d9b..7e2823fb6c 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n@@ -5,7 +5,8 @@ import android.os.Bundle;\n \n import com.facebook.react.ReactActivity;\n import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactActivityDelegate;\n \n import expo.modules.ReactActivityDelegateWrapper;\n \n@@ -29,15 +30,20 @@ public class MainActivity extends ReactActivity {\n }\n \n /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n+ * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link\n+ * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React\n+ * (aka React 18) with two boolean flags.\n */\n @Override\n protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n+ return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate(\n+ this,\n+ getMainComponentName(),\n+ // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n+ DefaultNewArchitectureEntryPoint.getFabricEnabled(), // fabricEnabled\n+ // If you opted-in for the New Architecture, we enable Concurrent React (i.e. React 18).\n+ DefaultNewArchitectureEntryPoint.getConcurrentReactEnabled() // concurrentRootEnabled\n+ ));\n }\n \n /**\n@@ -59,25 +65,4 @@ public class MainActivity extends ReactActivity {\n // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n super.invokeDefaultOnBackPressed();\n }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\nindex 7deb688b07..31c2b288c1 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n@@ -1,69 +1,70 @@\n package com.helloworld;\n \n import android.app.Application;\n-import android.content.Context;\n import android.content.res.Configuration;\n import androidx.annotation.NonNull;\n \n import com.facebook.react.PackageList;\n import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.ReactNativeHost;\n import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactNativeHost;\n import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n \n import expo.modules.ApplicationLifecycleDispatcher;\n import expo.modules.ReactNativeHostWrapper;\n \n-import java.lang.reflect.InvocationTargetException;\n import java.util.List;\n \n public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n \n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n+ private final ReactNativeHost mReactNativeHost =\n+ new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) {\n+ @Override\n+ public boolean getUseDeveloperSupport() {\n+ return BuildConfig.DEBUG;\n+ }\n \n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n+ @Override\n+ protected List getPackages() {\n+ @SuppressWarnings(\"UnnecessaryLocalVariable\")\n+ List packages = new PackageList(this).getPackages();\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return packages;\n+ }\n \n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n+ @Override\n+ protected String getJSMainModuleName() {\n+ return \"index\";\n+ }\n+\n+ @Override\n+ protected boolean isNewArchEnabled() {\n+ return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n+ }\n+\n+ @Override\n+ protected Boolean isHermesEnabled() {\n+ return BuildConfig.IS_HERMES_ENABLED;\n+ }\n+ });\n \n @Override\n public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n+ return mReactNativeHost;\n }\n \n @Override\n public void onCreate() {\n super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ DefaultNewArchitectureEntryPoint.load();\n+ }\n+ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n ApplicationLifecycleDispatcher.onApplicationCreate(this);\n }\n \n@@ -72,35 +73,4 @@ public class MainApplication extends Application implements ReactApplication {\n super.onConfigurationChanged(newConfig);\n ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex cda1391225..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source\n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_runtime \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java b/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java\nnew file mode 100644\nindex 0000000000..b510364404\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java\n@@ -0,0 +1,20 @@\n+/**\n+ * Copyright (c) Meta Platforms, Inc. and affiliates.\n+ *\n+ *

This source code is licensed under the MIT license found in the LICENSE file in the root\n+ * directory of this source tree.\n+ */\n+package com.helloworld;\n+\n+import android.content.Context;\n+import com.facebook.react.ReactInstanceManager;\n+\n+/**\n+ * Class responsible of loading Flipper inside your React Native application. This is the release\n+ * flavor of it so it's empty as we don't want to load Flipper.\n+ */\n+public class ReactNativeFlipper {\n+ public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {\n+ // Do nothing as we don't want to initialize Flipper on Release.\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/build.gradle b/templates/expo-template-bare-minimum/android/build.gradle\nindex f259b31a11..e5fda82878 100644\n--- a/templates/expo-template-bare-minimum/android/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/build.gradle\n@@ -1,49 +1,31 @@\n-import org.apache.tools.ant.taskdefs.condition.Os\n-\n // Top-level build file where you can add configuration options common to all sub-projects/modules.\n+\n buildscript {\n ext {\n- buildToolsVersion = findProperty('android.buildToolsVersion') ?: '31.0.0'\n+ buildToolsVersion = findProperty('android.buildToolsVersion') ?: '33.0.0'\n minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '21')\n- compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '31')\n- targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '31')\n+ compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '33')\n+ targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '33')\n if (findProperty('android.kotlinVersion')) {\n kotlinVersion = findProperty('android.kotlinVersion')\n }\n frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0'\n \n- if (System.properties['os.arch'] == 'aarch64') {\n- // For M1 Users we need to use the NDK 24 which added support for aarch64\n- ndkVersion = '24.0.8215888'\n- } else {\n- // Otherwise we default to the side-by-side NDK version from AGP.\n- ndkVersion = '21.4.7075529'\n- }\n+ // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.\n+ ndkVersion = \"23.1.7779620\"\n }\n repositories {\n google()\n mavenCentral()\n }\n dependencies {\n- classpath('com.android.tools.build:gradle:7.1.1')\n+ classpath('com.android.tools.build:gradle:7.4.1')\n classpath('com.facebook.react:react-native-gradle-plugin')\n- classpath('de.undercouch:gradle-download-task:5.0.1')\n- // NOTE: Do not place your application dependencies here; they belong\n- // in the individual module build.gradle files\n }\n }\n \n-def REACT_NATIVE_VERSION = new File(['node', '--print',\"JSON.parse(require('fs').readFileSync(require.resolve('react-native/package.json'), 'utf-8')).version\"].execute(null, rootDir).text.trim())\n-\n allprojects {\n- configurations.all {\n- resolutionStrategy {\n- force \"com.facebook.react:react-native:\" + REACT_NATIVE_VERSION\n- }\n- }\n-\n repositories {\n- mavenLocal()\n maven {\n // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm\n url(new File(['node', '--print', \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), '../android'))\n@@ -54,19 +36,7 @@ allprojects {\n }\n \n google()\n- mavenCentral {\n- // We don't want to fetch react-native from Maven Central as there are\n- // older versions over there.\n- content {\n- excludeGroup 'com.facebook.react'\n- }\n- }\n+ mavenCentral()\n maven { url 'https://www.jitpack.io' }\n }\n }\n-\n-configurations.all {\n- resolutionStrategy {\n- force 'com.facebook.react:react-native:0.69.6'\n- }\n-}\n\\ No newline at end of file\ndiff --git a/templates/expo-template-bare-minimum/android/gitignore b/templates/expo-template-bare-minimum/android/gitignore\nindex 64436baaf5..877b87e9a5 100644\n--- a/templates/expo-template-bare-minimum/android/gitignore\n+++ b/templates/expo-template-bare-minimum/android/gitignore\n@@ -11,11 +11,5 @@ local.properties\n *.iml\n *.hprof\n \n-# BUCK\n-buck-out/\n-\\.buckd/\n-*.keystore\n-!debug.keystore\n-\n # Bundle artifacts\n *.jsbundle\ndiff --git a/templates/expo-template-bare-minimum/android/gradle.properties b/templates/expo-template-bare-minimum/android/gradle.properties\nindex fab3fb6bcf..9911ac4afd 100644\n--- a/templates/expo-template-bare-minimum/android/gradle.properties\n+++ b/templates/expo-template-bare-minimum/android/gradle.properties\n@@ -42,7 +42,7 @@ newArchEnabled=false\n \n # The hosted JavaScript engine\n # Supported values: expo.jsEngine = \"hermes\" | \"jsc\"\n-expo.jsEngine=jsc\n+expo.jsEngine=hermes\n \n # Enable GIF support in React Native images (~200 B increase)\n expo.gif.enabled=true\ndiff --git a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar\nindex 7454180f2a..249e5832f0 100644\nBinary files a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar and b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar differ\ndiff --git a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\nindex 669386b870..8fad3f5a98 100644\n--- a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\n+++ b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\n@@ -1,5 +1,5 @@\n distributionBase=GRADLE_USER_HOME\n distributionPath=wrapper/dists\n-distributionUrl=https\\://services.gradle.org/distributions/gradle-7.3.3-all.zip\n+distributionUrl=https\\://services.gradle.org/distributions/gradle-7.5.1-all.zip\n zipStoreBase=GRADLE_USER_HOME\n zipStorePath=wrapper/dists\ndiff --git a/templates/expo-template-bare-minimum/android/gradlew b/templates/expo-template-bare-minimum/android/gradlew\nindex 1b6c787337..a69d9cb6c2 100755\n--- a/templates/expo-template-bare-minimum/android/gradlew\n+++ b/templates/expo-template-bare-minimum/android/gradlew\n@@ -205,6 +205,12 @@ set -- \\\n org.gradle.wrapper.GradleWrapperMain \\\n \"$@\"\n \n+# Stop when \"xargs\" is not available.\n+if ! command -v xargs >/dev/null 2>&1\n+then\n+ die \"xargs is not available\"\n+fi\n+\n # Use \"xargs\" to parse quoted args.\n #\n # With -n1 it outputs one arg per line, with the quotes and backslashes removed.\ndiff --git a/templates/expo-template-bare-minimum/android/gradlew.bat b/templates/expo-template-bare-minimum/android/gradlew.bat\nindex ac1b06f938..53a6b238d4 100644\n--- a/templates/expo-template-bare-minimum/android/gradlew.bat\n+++ b/templates/expo-template-bare-minimum/android/gradlew.bat\n@@ -14,7 +14,7 @@\n @rem limitations under the License.\r\n @rem\r\n \r\n-@if \"%DEBUG%\" == \"\" @echo off\r\n+@if \"%DEBUG%\"==\"\" @echo off\r\n @rem ##########################################################################\r\n @rem\r\n @rem Gradle startup script for Windows\r\n@@ -25,7 +25,7 @@\n if \"%OS%\"==\"Windows_NT\" setlocal\r\n \r\n set DIRNAME=%~dp0\r\n-if \"%DIRNAME%\" == \"\" set DIRNAME=.\r\n+if \"%DIRNAME%\"==\"\" set DIRNAME=.\r\n set APP_BASE_NAME=%~n0\r\n set APP_HOME=%DIRNAME%\r\n \r\n@@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome\n \r\n set JAVA_EXE=java.exe\r\n %JAVA_EXE% -version >NUL 2>&1\r\n-if \"%ERRORLEVEL%\" == \"0\" goto execute\r\n+if %ERRORLEVEL% equ 0 goto execute\r\n \r\n echo.\r\n echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\r\n@@ -75,13 +75,15 @@ set CLASSPATH=%APP_HOME%\\gradle\\wrapper\\gradle-wrapper.jar\n \r\n :end\r\n @rem End local scope for the variables with windows NT shell\r\n-if \"%ERRORLEVEL%\"==\"0\" goto mainEnd\r\n+if %ERRORLEVEL% equ 0 goto mainEnd\r\n \r\n :fail\r\n rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of\r\n rem the _cmd.exe /c_ return code!\r\n-if not \"\" == \"%GRADLE_EXIT_CONSOLE%\" exit 1\r\n-exit /b 1\r\n+set EXIT_CODE=%ERRORLEVEL%\r\n+if %EXIT_CODE% equ 0 set EXIT_CODE=1\r\n+if not \"\"==\"%GRADLE_EXIT_CONSOLE%\" exit %EXIT_CODE%\r\n+exit /b %EXIT_CODE%\r\n \r\n :mainEnd\r\n if \"%OS%\"==\"Windows_NT\" endlocal\r\ndiff --git a/templates/expo-template-bare-minimum/android/settings.gradle b/templates/expo-template-bare-minimum/android/settings.gradle\nindex b3332319f9..1dc416e7c1 100644\n--- a/templates/expo-template-bare-minimum/android/settings.gradle\n+++ b/templates/expo-template-bare-minimum/android/settings.gradle\n@@ -8,10 +8,3 @@ applyNativeModulesSettingsGradle(settings)\n \n include ':app'\n includeBuild(new File([\"node\", \"--print\", \"require.resolve('react-native-gradle-plugin/package.json')\"].execute(null, rootDir).text.trim()).getParentFile())\n-\n-if (settings.hasProperty(\"newArchEnabled\") && settings.newArchEnabled == \"true\") {\n- include(\":ReactAndroid\")\n- project(\":ReactAndroid\").projectDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../ReactAndroid\");\n- include(\":ReactAndroid:hermes-engine\")\n- project(\":ReactAndroid:hermes-engine\").projectDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../ReactAndroid/hermes-engine\");\n-}\ndiff --git a/templates/expo-template-bare-minimum/gitignore b/templates/expo-template-bare-minimum/gitignore\nindex c8eb0f9a64..df57ba88a1 100644\n--- a/templates/expo-template-bare-minimum/gitignore\n+++ b/templates/expo-template-bare-minimum/gitignore\n@@ -30,6 +30,9 @@ build/\n local.properties\n *.iml\n *.hprof\n+.cxx/\n+*.keystore\n+!debug.keystore\n \n # node.js\n #\n@@ -37,18 +40,15 @@ node_modules/\n npm-debug.log\n yarn-error.log\n \n-# BUCK\n-buck-out/\n-\\.buckd/\n-*.keystore\n-!debug.keystore\n-\n # Bundle artifacts\n *.jsbundle\n \n # CocoaPods\n /ios/Pods/\n \n+# Temporary files created by Metro to check the health of the file watcher\n+.metro-health-check*\n+\n # Expo\n .expo/\n web-build/\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\nindex a4a049f05d..98e6c2afea 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n@@ -214,7 +214,7 @@\n \t\t\t);\n \t\t\trunOnlyForDeploymentPostprocessing = 0;\n \t\t\tshellPath = /bin/sh;\n-\t\t\tshellScript = \"if [[ -f \\\"$PODS_ROOT/../.xcode.env\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env\\\"\\nfi\\nif [[ -f \\\"$PODS_ROOT/../.xcode.env.local\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env.local\\\"\\nfi\\n\\n# The project root by default is one level up from the ios directory\\nexport PROJECT_ROOT=\\\"$PROJECT_DIR\\\"/..\\n\\nif [[ \\\"$CONFIGURATION\\\" = *Debug* ]]; then\\n export SKIP_BUNDLING=1\\nfi\\n`\\\"$NODE_BINARY\\\" --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\\\"`\\n\\n\";\n+\t\t\tshellScript = \"if [[ -f \\\"$PODS_ROOT/../.xcode.env\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env\\\"\\nfi\\nif [[ -f \\\"$PODS_ROOT/../.xcode.env.local\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env.local\\\"\\nfi\\n\\n# The project root by default is one level up from the ios directory\\nexport PROJECT_ROOT=\\\"$PROJECT_DIR\\\"/..\\n\\nif [[ \\\"$CONFIGURATION\\\" = *Debug* ]]; then\\n export SKIP_BUNDLING=1\\nfi\\nif [[ -z \\\"$ENTRY_FILE\\\" ]]; then\\n # Set the entry JS file using the bundler's entry resolution.\\n export ENTRY_FILE=\\\"$(\\\"$NODE_BINARY\\\" -e \\\"require('expo/scripts/resolveAppEntry')\\\" $PROJECT_ROOT ios relative | tail -n 1)\\\"\\nfi\\n\\n`\\\"$NODE_BINARY\\\" --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\\\"`\\n\\n\";\n \t\t};\n \t\t08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {\n \t\t\tisa = PBXShellScriptBuildPhase;\n@@ -308,8 +308,9 @@\n \t\t\t\t\t\"FB_SONARKIT_ENABLED=1\",\n \t\t\t\t);\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n+ MARKETING_VERSION = 1.0;\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n \t\t\t\t\t\"-ObjC\",\n@@ -331,8 +332,9 @@\n \t\t\t\tCLANG_ENABLE_MODULES = YES;\n \t\t\t\tCURRENT_PROJECT_VERSION = 1;\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n+ MARKETING_VERSION = 1.0;\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n \t\t\t\t\t\"-ObjC\",\n@@ -392,7 +394,7 @@\n \t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n \t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n \t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"/usr/lib/swift $(inherited)\";\n \t\t\t\tLIBRARY_SEARCH_PATHS = \"\\\"$(inherited)\\\"\";\n \t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n@@ -441,7 +443,7 @@\n \t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n \t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n \t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"/usr/lib/swift $(inherited)\";\n \t\t\t\tLIBRARY_SEARCH_PATHS = \"\\\"$(inherited)\\\"\";\n \t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\nindex f7d2972042..1658a437eb 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\n@@ -1,9 +1,7 @@\n-#import \n-#import \n+#import \n #import \n-\n #import \n \n-@interface AppDelegate : EXAppDelegateWrapper \n+@interface AppDelegate : EXAppDelegateWrapper\n \n @end\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\nindex a6e13e11ab..8cb5aef137 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n@@ -1,100 +1,40 @@\n #import \"AppDelegate.h\"\n \n-#import \n #import \n-#import \n #import \n-#import \n-\n-#import \n-\n-#if RCT_NEW_ARCH_ENABLED\n-#import \n-#import \n-#import \n-#import \n-#import \n-#import \n-\n-#import \n-\n-static NSString *const kRNConcurrentRoot = @\"concurrentRoot\";\n-\n-@interface AppDelegate () {\n- RCTTurboModuleManager *_turboModuleManager;\n- RCTSurfacePresenterBridgeAdapter *_bridgeAdapter;\n- std::shared_ptr _reactNativeConfig;\n- facebook::react::ContextContainer::Shared _contextContainer;\n-}\n-@end\n-#endif\n \n @implementation AppDelegate\n \n - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n {\n- RCTAppSetupPrepareApp(application);\n-\n- RCTBridge *bridge = [self.reactDelegate createBridgeWithDelegate:self launchOptions:launchOptions];\n-\n-#if RCT_NEW_ARCH_ENABLED\n- _contextContainer = std::make_shared();\n- _reactNativeConfig = std::make_shared();\n- _contextContainer->insert(\"ReactNativeConfig\", _reactNativeConfig);\n- _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer];\n- bridge.surfacePresenter = _bridgeAdapter.surfacePresenter;\n-#endif\n-\n- NSDictionary *initProps = [self prepareInitialProps];\n- UIView *rootView = [self.reactDelegate createRootViewWithBridge:bridge moduleName:@\"main\" initialProperties:initProps];\n-\n- rootView.backgroundColor = [UIColor whiteColor];\n- self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n- UIViewController *rootViewController = [self.reactDelegate createRootViewController];\n- rootViewController.view = rootView;\n- self.window.rootViewController = rootViewController;\n- [self.window makeKeyAndVisible];\n+ self.moduleName = @\"main\";\n \n- [super application:application didFinishLaunchingWithOptions:launchOptions];\n+ // You can add your custom initial props in the dictionary below.\n+ // They will be passed down to the ViewController used by React Native.\n+ self.initialProps = @{};\n \n- return YES;\n+ return [super application:application didFinishLaunchingWithOptions:launchOptions];\n }\n \n-- (NSArray> *)extraModulesForBridge:(RCTBridge *)bridge\n+- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge\n {\n- // If you'd like to export some custom RCTBridgeModules, add them here!\n- return @[];\n+#if DEBUG\n+ return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\"];\n+#else\n+ return [[NSBundle mainBundle] URLForResource:@\"main\" withExtension:@\"jsbundle\"];\n+#endif\n }\n \n /// This method controls whether the `concurrentRoot`feature of React18 is turned on or off.\n ///\n /// @see: https://reactjs.org/blog/2022/03/29/react-v18.html\n /// @note: This requires to be rendering on Fabric (i.e. on the New Architecture).\n-/// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`.\n+/// @return: `true` if the `concurrentRoot` feature is enabled. Otherwise, it returns `false`.\n - (BOOL)concurrentRootEnabled\n {\n- // Switch this bool to turn on and off the concurrent root\n return true;\n }\n \n-- (NSDictionary *)prepareInitialProps\n-{\n- NSMutableDictionary *initProps = [NSMutableDictionary new];\n-#if RCT_NEW_ARCH_ENABLED\n- initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]);\n-#endif\n- return initProps;\n-}\n-\n-- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge\n-{\n-#if DEBUG\n- return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\"];\n-#else\n- return [[NSBundle mainBundle] URLForResource:@\"main\" withExtension:@\"jsbundle\"];\n-#endif\n-}\n-\n // Linking API\n - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options {\n return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options];\n@@ -124,43 +64,4 @@ static NSString *const kRNConcurrentRoot = @\"concurrentRoot\";\n return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];\n }\n \n-#if RCT_NEW_ARCH_ENABLED\n-\n-#pragma mark - RCTCxxBridgeDelegate\n-\n-- (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge\n-{\n- _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge\n- delegate:self\n- jsInvoker:bridge.jsCallInvoker];\n- return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager);\n-}\n-\n-#pragma mark RCTTurboModuleManagerDelegate\n-\n-- (Class)getModuleClassFromName:(const char *)name\n-{\n- return RCTCoreModulesClassProvider(name);\n-}\n-\n-- (std::shared_ptr)getTurboModule:(const std::string &)name\n- jsInvoker:(std::shared_ptr)jsInvoker\n-{\n- return nullptr;\n-}\n-\n-- (std::shared_ptr)getTurboModule:(const std::string &)name\n- initParams:\n- (const facebook::react::ObjCTurboModule::InitParams &)params\n-{\n- return nullptr;\n-}\n-\n-- (id)getModuleInstanceFromClass:(Class)moduleClass\n-{\n- return RCTAppSetupDefaultModuleFromClass(moduleClass);\n-}\n-\n-#endif\n-\n @end\ndiff --git a/templates/expo-template-bare-minimum/ios/Podfile b/templates/expo-template-bare-minimum/ios/Podfile\nindex 91612acca9..e523ea5cac 100644\n--- a/templates/expo-template-bare-minimum/ios/Podfile\n+++ b/templates/expo-template-bare-minimum/ios/Podfile\n@@ -5,36 +5,67 @@ require File.join(File.dirname(`node --print \"require.resolve('@react-native-com\n require 'json'\n podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}\n \n-platform :ios, podfile_properties['ios.deploymentTarget'] || '12.4'\n+ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0'\n+ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = '1' if podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] == 'true'\n+\n+platform :ios, podfile_properties['ios.deploymentTarget'] || '13.0'\n install! 'cocoapods',\n :deterministic_uuids => false\n \n+prepare_react_native_project!\n+\n+# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.\n+# because `react-native-flipper` depends on (FlipperKit,...), which will be excluded. To fix this,\n+# you can also exclude `react-native-flipper` in `react-native.config.js`\n+#\n+# ```js\n+# module.exports = {\n+# dependencies: {\n+# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),\n+# }\n+# }\n+# ```\n+flipper_config = FlipperConfiguration.disabled\n+if ENV['NO_FLIPPER'] == '1' then\n+ # Explicitly disabled through environment variables\n+ flipper_config = FlipperConfiguration.disabled\n+elsif podfile_properties.key?('ios.flipper') then\n+ # Configure Flipper in Podfile.properties.json\n+ if podfile_properties['ios.flipper'] == 'true' then\n+ flipper_config = FlipperConfiguration.enabled([\"Debug\", \"Release\"])\n+ elsif podfile_properties['ios.flipper'] != 'false' then\n+ flipper_config = FlipperConfiguration.enabled([\"Debug\", \"Release\"], { 'Flipper' => podfile_properties['ios.flipper'] })\n+ end\n+end\n+\n target 'HelloWorld' do\n use_expo_modules!\n config = use_native_modules!\n \n use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks']\n+ use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS']\n \n # Flags change depending on the env values.\n flags = get_default_flags()\n \n use_react_native!(\n :path => config[:reactNativePath],\n- :hermes_enabled => flags[:hermes_enabled] || podfile_properties['expo.jsEngine'] == 'hermes',\n+ :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes',\n :fabric_enabled => flags[:fabric_enabled],\n # An absolute path to your application root.\n- :app_path => \"#{Dir.pwd}/..\"\n+ :app_path => \"#{Pod::Config.instance.installation_root}/..\",\n+ # Note that if you have use_frameworks! enabled, Flipper will not work if enabled\n+ :flipper_configuration => flipper_config\n )\n \n- # Uncomment to opt-in to using Flipper\n- # Note that if you have use_frameworks! enabled, Flipper will not work\n- #\n- # if !ENV['CI']\n- # use_flipper!()\n- # end\n-\n post_install do |installer|\n- react_native_post_install(installer)\n+ react_native_post_install(\n+ installer,\n+ config[:reactNativePath],\n+ # Set `mac_catalyst_enabled` to `true` in order to apply patches\n+ # necessary for Mac Catalyst builds\n+ :mac_catalyst_enabled => false\n+ )\n __apply_Xcode_12_5_M1_post_install_workaround(installer)\n \n # This is necessary for Xcode 14, because it signs resource bundles by default\ndiff --git a/templates/expo-template-bare-minimum/ios/Podfile.properties.json b/templates/expo-template-bare-minimum/ios/Podfile.properties.json\nindex f6d872e81a..b1bd45da51 100644\n--- a/templates/expo-template-bare-minimum/ios/Podfile.properties.json\n+++ b/templates/expo-template-bare-minimum/ios/Podfile.properties.json\n@@ -1,3 +1,3 @@\n {\n- \"expo.jsEngine\": \"jsc\"\n+ \"expo.jsEngine\": \"hermes\"\n }\ndiff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json\nindex d5ca09a584..d1fcd513cc 100644\n--- a/templates/expo-template-bare-minimum/package.json\n+++ b/templates/expo-template-bare-minimum/package.json\n@@ -1,7 +1,7 @@\n {\n \"name\": \"expo-template-bare-minimum\",\n \"description\": \"This bare project template includes a minimal setup for using unimodules with React Native.\",\n- \"version\": \"46.0.37\",\n+ \"version\": \"48.0.21\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"start\": \"expo start --dev-client\",\n@@ -10,15 +10,13 @@\n \"web\": \"expo start --web\"\n },\n \"dependencies\": {\n- \"expo\": \"~46.0.21\",\n- \"expo-splash-screen\": \"~0.16.2\",\n- \"expo-status-bar\": \"~1.4.0\",\n- \"react\": \"18.0.0\",\n- \"react-dom\": \"18.0.0\",\n- \"react-native\": \"0.69.9\",\n- \"react-native-web\": \"~0.18.7\"\n+ \"expo\": \"~48.0.21\",\n+ \"expo-splash-screen\": \"~0.18.2\",\n+ \"expo-status-bar\": \"~1.4.4\",\n+ \"react\": \"18.2.0\",\n+ \"react-native\": \"0.71.14\"\n },\n \"devDependencies\": {\n- \"@babel/core\": \"^7.12.9\"\n+ \"@babel/core\": \"^7.20.0\"\n }\n }\n","47..48":"diff --git a/templates/expo-template-bare-minimum/.buckconfig b/templates/expo-template-bare-minimum/.buckconfig\ndeleted file mode 100644\nindex 934256cb29..0000000000\n--- a/templates/expo-template-bare-minimum/.buckconfig\n+++ /dev/null\n@@ -1,6 +0,0 @@\n-\n-[android]\n- target = Google Inc.:Google APIs:23\n-\n-[maven_repositories]\n- central = https://repo1.maven.org/maven2\ndiff --git a/templates/expo-template-bare-minimum/.npmignore b/templates/expo-template-bare-minimum/.npmignore\nindex 35490b6612..4e6ce00391 100644\n--- a/templates/expo-template-bare-minimum/.npmignore\n+++ b/templates/expo-template-bare-minimum/.npmignore\n@@ -20,3 +20,4 @@ ios/Pods\n android/.build\n android/app/build\n android/.gradle\n+ios/.xcode.env.local\ndiff --git a/templates/expo-template-bare-minimum/android/app/BUCK b/templates/expo-template-bare-minimum/android/app/BUCK\ndeleted file mode 100644\nindex 0e77904834..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/BUCK\n+++ /dev/null\n@@ -1,55 +0,0 @@\n-# To learn about Buck see [Docs](https://buckbuild.com/).\n-# To run your application with Buck:\n-# - install Buck\n-# - `npm start` - to start the packager\n-# - `cd android`\n-# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname \"CN=Android Debug,O=Android,C=US\"`\n-# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck\n-# - `buck install -r android/app` - compile, install and run application\n-#\n-\n-load(\":build_defs.bzl\", \"create_aar_targets\", \"create_jar_targets\")\n-\n-lib_deps = []\n-\n-create_aar_targets(glob([\"libs/*.aar\"]))\n-\n-create_jar_targets(glob([\"libs/*.jar\"]))\n-\n-android_library(\n- name = \"all-libs\",\n- exported_deps = lib_deps,\n-)\n-\n-android_library(\n- name = \"app-code\",\n- srcs = glob([\n- \"src/main/java/**/*.java\",\n- ]),\n- deps = [\n- \":all-libs\",\n- \":build_config\",\n- \":res\",\n- ],\n-)\n-\n-android_build_config(\n- name = \"build_config\",\n- package = \"com.helloworld\",\n-)\n-\n-android_resource(\n- name = \"res\",\n- package = \"com.helloworld\",\n- res = \"src/main/res\",\n-)\n-\n-android_binary(\n- name = \"app\",\n- keystore = \"//android/keystores:debug\",\n- manifest = \"src/main/AndroidManifest.xml\",\n- package_type = \"debug\",\n- deps = [\n- \":app-code\",\n- ],\n-)\ndiff --git a/templates/expo-template-bare-minimum/android/app/build.gradle b/templates/expo-template-bare-minimum/android/app/build.gradle\nindex 648135611c..189390e7e3 100644\n--- a/templates/expo-template-bare-minimum/android/app/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/app/build.gradle\n@@ -1,135 +1,107 @@\n apply plugin: \"com.android.application\"\n+apply plugin: \"com.facebook.react\"\n \n import com.android.build.OutputFile\n \n-/**\n- * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets\n- * and bundleReleaseJsAndAssets).\n- * These basically call `react-native bundle` with the correct arguments during the Android build\n- * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the\n- * bundle directly from the development server. Below you can see all the possible configurations\n- * and their defaults. If you decide to add a configuration block, make sure to add it before the\n- * `apply from: \"../../node_modules/react-native/react.gradle\"` line.\n- *\n- * project.ext.react = [\n- * // the name of the generated asset file containing your JS bundle\n- * bundleAssetName: \"index.android.bundle\",\n- *\n- * // the entry file for bundle generation. If none specified and\n- * // \"index.android.js\" exists, it will be used. Otherwise \"index.js\" is\n- * // default. Can be overridden with ENTRY_FILE environment variable.\n- * entryFile: \"index.android.js\",\n- *\n- * // https://reactnative.dev/docs/performance#enable-the-ram-format\n- * bundleCommand: \"ram-bundle\",\n- *\n- * // whether to bundle JS and assets in debug mode\n- * bundleInDebug: false,\n- *\n- * // whether to bundle JS and assets in release mode\n- * bundleInRelease: true,\n- *\n- * // whether to bundle JS and assets in another build variant (if configured).\n- * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants\n- * // The configuration property can be in the following formats\n- * // 'bundleIn${productFlavor}${buildType}'\n- * // 'bundleIn${buildType}'\n- * // bundleInFreeDebug: true,\n- * // bundleInPaidRelease: true,\n- * // bundleInBeta: true,\n- *\n- * // whether to disable dev mode in custom build variants (by default only disabled in release)\n- * // for example: to disable dev mode in the staging build type (if configured)\n- * devDisabledInStaging: true,\n- * // The configuration property can be in the following formats\n- * // 'devDisabledIn${productFlavor}${buildType}'\n- * // 'devDisabledIn${buildType}'\n- *\n- * // the root of your project, i.e. where \"package.json\" lives\n- * root: \"../../\",\n- *\n- * // where to put the JS bundle asset in debug mode\n- * jsBundleDirDebug: \"$buildDir/intermediates/assets/debug\",\n- *\n- * // where to put the JS bundle asset in release mode\n- * jsBundleDirRelease: \"$buildDir/intermediates/assets/release\",\n- *\n- * // where to put drawable resources / React Native assets, e.g. the ones you use via\n- * // require('./image.png')), in debug mode\n- * resourcesDirDebug: \"$buildDir/intermediates/res/merged/debug\",\n- *\n- * // where to put drawable resources / React Native assets, e.g. the ones you use via\n- * // require('./image.png')), in release mode\n- * resourcesDirRelease: \"$buildDir/intermediates/res/merged/release\",\n- *\n- * // by default the gradle tasks are skipped if none of the JS files or assets change; this means\n- * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to\n- * // date; if you have any other folders that you want to ignore for performance reasons (gradle\n- * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/\n- * // for example, you might want to remove it from here.\n- * inputExcludes: [\"android/**\", \"ios/**\"],\n- *\n- * // override which node gets called and with what additional arguments\n- * nodeExecutableAndArgs: [\"node\"],\n- *\n- * // supply additional arguments to the packager\n- * extraPackagerArgs: []\n- * ]\n- */\n-\n def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath()\n+def expoDebuggableVariants = ['debug']\n+// Override `debuggableVariants` for expo-updates debugging\n+if (System.getenv('EX_UPDATES_NATIVE_DEBUG') == \"1\") {\n+ react {\n+ expoDebuggableVariants = []\n+ }\n+}\n \n-def reactNativeRoot = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath()\n \n-project.ext.react = [\n- entryFile: [\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\"].execute(null, rootDir).text.trim(),\n- enableHermes: (findProperty('expo.jsEngine') ?: \"jsc\") == \"hermes\",\n- hermesCommand: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/sdks/hermesc/%OS-BIN%/hermesc\",\n- cliPath: \"${reactNativeRoot}/cli.js\",\n- composeSourceMapsPath: \"${reactNativeRoot}/scripts/compose-source-maps.js\",\n-]\n+/**\n+ * This is the configuration block to customize your React Native Android app.\n+ * By default you don't need to apply any configuration, just uncomment the lines you need.\n+ */\n+react {\n+ entryFile = file([\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\", \"absolute\"].execute(null, rootDir).text.trim())\n+ reactNativeDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()\n+ hermesCommand = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/sdks/hermesc/%OS-BIN%/hermesc\"\n+ debuggableVariants = expoDebuggableVariants\n+\n+ /* Folders */\n+ // The root of your project, i.e. where \"package.json\" lives. Default is '..'\n+ // root = file(\"../\")\n+ // The folder where the react-native NPM package is. Default is ../node_modules/react-native\n+ // reactNativeDir = file(\"../node_modules/react-native\")\n+ // The folder where the react-native Codegen package is. Default is ../node_modules/react-native-codegen\n+ // codegenDir = file(\"../node_modules/react-native-codegen\")\n+ // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js\n+ // cliFile = file(\"../node_modules/react-native/cli.js\")\n+\n+ /* Variants */\n+ // The list of variants to that are debuggable. For those we're going to\n+ // skip the bundling of the JS bundle and the assets. By default is just 'debug'.\n+ // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.\n+ // debuggableVariants = [\"liteDebug\", \"prodDebug\"]\n+\n+ /* Bundling */\n+ // A list containing the node command and its flags. Default is just 'node'.\n+ // nodeExecutableAndArgs = [\"node\"]\n+ //\n+ // The command to run when bundling. By default is 'bundle'\n+ // bundleCommand = \"ram-bundle\"\n+ //\n+ // The path to the CLI configuration file. Default is empty.\n+ // bundleConfig = file(../rn-cli.config.js)\n+ //\n+ // The name of the generated asset file containing your JS bundle\n+ // bundleAssetName = \"MyApplication.android.bundle\"\n+ //\n+ // The entry file for bundle generation. Default is 'index.android.js' or 'index.js'\n+ // entryFile = file(\"../js/MyApplication.android.js\")\n+ //\n+ // A list of extra flags to pass to the 'bundle' commands.\n+ // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle\n+ // extraPackagerArgs = []\n+\n+ /* Hermes Commands */\n+ // The hermes compiler command to run. By default it is 'hermesc'\n+ // hermesCommand = \"$rootDir/my-custom-hermesc/bin/hermesc\"\n+ //\n+ // The list of flags to pass to the Hermes compiler. By default is \"-O\", \"-output-source-map\"\n+ // hermesFlags = [\"-O\", \"-output-source-map\"]\n+}\n \n-apply from: new File(reactNativeRoot, \"react.gradle\")\n+// Override `hermesEnabled` by `expo.jsEngine`\n+ext {\n+ hermesEnabled = (findProperty('expo.jsEngine') ?: \"hermes\") == \"hermes\"\n+}\n \n /**\n- * Set this to true to create two separate APKs instead of one:\n- * - An APK that only works on ARM devices\n- * - An APK that only works on x86 devices\n- * The advantage is the size of the APK is reduced by about 4MB.\n- * Upload all the APKs to the Play Store and people will download\n- * the correct one based on the CPU architecture of their device.\n+ * Set this to true to create four separate APKs instead of one,\n+ * one for each native architecture. This is useful if you don't\n+ * use App Bundles (https://developer.android.com/guide/app-bundle/)\n+ * and want to have separate APKs to upload to the Play Store.\n */\n def enableSeparateBuildPerCPUArchitecture = false\n \n /**\n- * Run Proguard to shrink the Java bytecode in release builds.\n+ * Set this to true to Run Proguard on Release builds to minify the Java bytecode.\n */\n def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean()\n \n /**\n- * The preferred build flavor of JavaScriptCore.\n+ * The preferred build flavor of JavaScriptCore (JSC)\n *\n * For example, to use the international variant, you can use:\n * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`\n *\n * The international variant includes ICU i18n library and necessary data\n * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that\n- * give correct results when using with locales other than en-US. Note that\n+ * give correct results when using with locales other than en-US. Note that\n * this variant is about 6MiB larger per architecture than default.\n */\n def jscFlavor = 'org.webkit:android-jsc:+'\n \n /**\n- * Whether to enable the Hermes VM.\n- *\n- * This should be set on project.ext.react and that value will be read here. If it is not set\n- * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode\n- * and the benefits of using Hermes will therefore be sharply reduced.\n- */\n-def enableHermes = project.ext.react.get(\"enableHermes\", false);\n-\n-/**\n- * Architectures to build native code for.\n+ * Private function to get the list of Native Architectures you want to build.\n+ * This reads the value from reactNativeArchitectures in your gradle.properties\n+ * file and works together with the --active-arch-only flag of react-native run-android.\n */\n def reactNativeArchitectures() {\n def value = project.getProperties().get(\"reactNativeArchitectures\")\n@@ -141,72 +113,13 @@ android {\n \n compileSdkVersion rootProject.ext.compileSdkVersion\n \n+ namespace \"com.helloworld\"\n defaultConfig {\n applicationId \"com.helloworld\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n- buildConfigField \"boolean\", \"IS_NEW_ARCHITECTURE_ENABLED\", isNewArchitectureEnabled().toString()\n-\n- if (isNewArchitectureEnabled()) {\n- // We configure the CMake build only if you decide to opt-in for the New Architecture.\n- externalNativeBuild {\n- cmake {\n- arguments \"-DPROJECT_BUILD_DIR=$buildDir\",\n- \"-DREACT_ANDROID_DIR=${reactNativeRoot}/ReactAndroid\",\n- \"-DREACT_ANDROID_BUILD_DIR=${reactNativeRoot}/ReactAndroid/build\",\n- \"-DNODE_MODULES_DIR=$rootDir/../node_modules\",\n- \"-DANDROID_STL=c++_shared\"\n- }\n- }\n- if (!enableSeparateBuildPerCPUArchitecture) {\n- ndk {\n- abiFilters (*reactNativeArchitectures())\n- }\n- }\n- }\n- }\n-\n- if (isNewArchitectureEnabled()) {\n- // We configure the CMake build only if you decide to opt-in for the New Architecture.\n- externalNativeBuild {\n- cmake {\n- path \"$projectDir/src/main/jni/CMakeLists.txt\"\n- }\n- }\n- def reactAndroidProjectDir = project(':ReactAndroid').projectDir\n- def packageReactNdkDebugLibs = tasks.register(\"packageReactNdkDebugLibs\", Copy) {\n- dependsOn(\":ReactAndroid:packageReactNdkDebugLibsForBuck\")\n- from(\"$reactAndroidProjectDir/src/main/jni/prebuilt/lib\")\n- into(\"$buildDir/react-ndk/exported\")\n- }\n- def packageReactNdkReleaseLibs = tasks.register(\"packageReactNdkReleaseLibs\", Copy) {\n- dependsOn(\":ReactAndroid:packageReactNdkReleaseLibsForBuck\")\n- from(\"$reactAndroidProjectDir/src/main/jni/prebuilt/lib\")\n- into(\"$buildDir/react-ndk/exported\")\n- }\n- afterEvaluate {\n- // If you wish to add a custom TurboModule or component locally,\n- // you should uncomment this line.\n- // preBuild.dependsOn(\"generateCodegenArtifactsFromSchema\")\n- preDebugBuild.dependsOn(packageReactNdkDebugLibs)\n- preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)\n-\n- // Due to a bug inside AGP, we have to explicitly set a dependency\n- // between configureCMakeDebug* tasks and the preBuild tasks.\n- // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732\n- configureCMakeRelWithDebInfo.dependsOn(preReleaseBuild)\n- configureCMakeDebug.dependsOn(preDebugBuild)\n- reactNativeArchitectures().each { architecture ->\n- tasks.findByName(\"configureCMakeDebug[${architecture}]\")?.configure {\n- dependsOn(\"preDebugBuild\")\n- }\n- tasks.findByName(\"configureCMakeRelWithDebInfo[${architecture}]\")?.configure {\n- dependsOn(\"preReleaseBuild\")\n- }\n- }\n- }\n }\n \n splits {\n@@ -233,6 +146,7 @@ android {\n // Caution! In production, you need to generate your own keystore file.\n // see https://reactnative.dev/docs/signed-apk-android.\n signingConfig signingConfigs.debug\n+ shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false)\n minifyEnabled enableProguardInReleaseBuilds\n proguardFiles getDefaultProguardFile(\"proguard-android.txt\"), \"proguard-rules.pro\"\n }\n@@ -243,11 +157,12 @@ android {\n variant.outputs.each { output ->\n // For each separate APK per architecture, set a unique version code as described here:\n // https://developer.android.com/studio/build/configure-apk-splits.html\n+ // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.\n def versionCodes = [\"armeabi-v7a\": 1, \"x86\": 2, \"arm64-v8a\": 3, \"x86_64\": 4]\n def abi = output.getFilter(OutputFile.ABI)\n if (abi != null) { // null for the universal-debug, universal-release variants\n output.versionCodeOverride =\n- versionCodes.get(abi) * 1048576 + defaultConfig.versionCode\n+ defaultConfig.versionCode * 1000 + versionCodes.get(abi)\n }\n \n }\n@@ -275,10 +190,8 @@ android {\n }\n \n dependencies {\n- implementation fileTree(dir: \"libs\", include: [\"*.jar\"])\n-\n- //noinspection GradleDynamicVersion\n- implementation \"com.facebook.react:react-native:+\" // From node_modules\n+ // The version of react-native is set by the React Native Gradle Plugin\n+ implementation(\"com.facebook.react:react-android\")\n \n def isGifEnabled = (findProperty('expo.gif.enabled') ?: \"\") == \"true\";\n def isWebpEnabled = (findProperty('expo.webp.enabled') ?: \"\") == \"true\";\n@@ -287,76 +200,38 @@ dependencies {\n \n // If your app supports Android versions before Ice Cream Sandwich (API level 14)\n if (isGifEnabled || isWebpEnabled) {\n- implementation \"com.facebook.fresco:fresco:${frescoVersion}\"\n- implementation \"com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:fresco:${frescoVersion}\")\n+ implementation(\"com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}\")\n }\n \n if (isGifEnabled) {\n // For animated gif support\n- implementation \"com.facebook.fresco:animated-gif:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:animated-gif:${frescoVersion}\")\n }\n \n if (isWebpEnabled) {\n // For webp support\n- implementation \"com.facebook.fresco:webpsupport:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:webpsupport:${frescoVersion}\")\n if (isWebpAnimatedEnabled) {\n // Animated webp support\n- implementation \"com.facebook.fresco:animated-webp:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:animated-webp:${frescoVersion}\")\n }\n }\n \n- implementation \"androidx.swiperefreshlayout:swiperefreshlayout:1.0.0\"\n- debugImplementation(\"com.facebook.flipper:flipper:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.fbjni'\n- }\n+ implementation(\"androidx.swiperefreshlayout:swiperefreshlayout:1.0.0\")\n+\n+ debugImplementation(\"com.facebook.flipper:flipper:${FLIPPER_VERSION}\")\n debugImplementation(\"com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.flipper'\n exclude group:'com.squareup.okhttp3', module:'okhttp'\n }\n- debugImplementation(\"com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.flipper'\n- }\n+ debugImplementation(\"com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}\")\n \n- if (enableHermes) {\n- //noinspection GradleDynamicVersion\n- implementation(\"com.facebook.react:hermes-engine:+\") { // From node_modules\n- exclude group:'com.facebook.fbjni'\n- }\n+ if (hermesEnabled.toBoolean()) {\n+ implementation(\"com.facebook.react:hermes-android\")\n } else {\n implementation jscFlavor\n }\n }\n \n-if (isNewArchitectureEnabled()) {\n- // If new architecture is enabled, we let you build RN from source\n- // Otherwise we fallback to a prebuilt .aar bundled in the NPM package.\n- // This will be applied to all the imported transtitive dependency.\n- configurations.all {\n- resolutionStrategy.dependencySubstitution {\n- substitute(module(\"com.facebook.react:react-native\"))\n- .using(project(\":ReactAndroid\"))\n- .because(\"On New Architecture we're building React Native from source\")\n- substitute(module(\"com.facebook.react:hermes-engine\"))\n- .using(project(\":ReactAndroid:hermes-engine\"))\n- .because(\"On New Architecture we're building Hermes from source\")\n- }\n- }\n-}\n-\n-// Run this once to be able to run the application with BUCK\n-// puts all compile dependencies into folder libs for BUCK to use\n-task copyDownloadableDepsToLibs(type: Copy) {\n- from configurations.implementation\n- into 'libs'\n-}\n-\n apply from: new File([\"node\", \"--print\", \"require.resolve('@react-native-community/cli-platform-android/package.json')\"].execute(null, rootDir).text.trim(), \"../native_modules.gradle\");\n applyNativeModulesAppBuildGradle(project)\n-\n-def isNewArchitectureEnabled() {\n- // To opt-in for the New Architecture, you can either:\n- // - Set `newArchEnabled` to true inside the `gradle.properties` file\n- // - Invoke gradle with `-newArchEnabled=true`\n- // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`\n- return project.hasProperty(\"newArchEnabled\") && project.newArchEnabled == \"true\"\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/build_defs.bzl b/templates/expo-template-bare-minimum/android/app/build_defs.bzl\ndeleted file mode 100644\nindex fff270f8d1..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/build_defs.bzl\n+++ /dev/null\n@@ -1,19 +0,0 @@\n-\"\"\"Helper definitions to glob .aar and .jar targets\"\"\"\n-\n-def create_aar_targets(aarfiles):\n- for aarfile in aarfiles:\n- name = \"aars__\" + aarfile[aarfile.rindex(\"/\") + 1:aarfile.rindex(\".aar\")]\n- lib_deps.append(\":\" + name)\n- android_prebuilt_aar(\n- name = name,\n- aar = aarfile,\n- )\n-\n-def create_jar_targets(jarfiles):\n- for jarfile in jarfiles:\n- name = \"jars__\" + jarfile[jarfile.rindex(\"/\") + 1:jarfile.rindex(\".jar\")]\n- lib_deps.append(\":\" + name)\n- prebuilt_jar(\n- name = name,\n- binary_jar = jarfile,\n- )\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java b/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\nindex 8cddb11cb2..595dd5831c 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\n@@ -1,5 +1,5 @@\n /**\n- * Copyright (c) Facebook, Inc. and its affiliates.\n+ * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n *

This source code is licensed under the MIT license found in the LICENSE file in the root\n * directory of this source tree.\n@@ -17,22 +17,27 @@ import com.facebook.flipper.plugins.inspector.DescriptorMapping;\n import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;\n import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;\n import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;\n-import com.facebook.flipper.plugins.react.ReactFlipperPlugin;\n import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;\n+import com.facebook.react.ReactInstanceEventListener;\n import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.bridge.ReactContext;\n import com.facebook.react.modules.network.NetworkingModule;\n import okhttp3.OkHttpClient;\n \n+/**\n+ * Class responsible of loading Flipper inside your React Native application. This is the debug\n+ * flavor of it. Here you can add your own plugins and customize the Flipper setup.\n+ */\n public class ReactNativeFlipper {\n public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {\n if (FlipperUtils.shouldEnableFlipper(context)) {\n final FlipperClient client = AndroidFlipperClient.getInstance(context);\n+\n client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));\n- client.addPlugin(new ReactFlipperPlugin());\n client.addPlugin(new DatabasesFlipperPlugin(context));\n client.addPlugin(new SharedPreferencesFlipperPlugin(context));\n client.addPlugin(CrashReporterPlugin.getInstance());\n+\n NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();\n NetworkingModule.setCustomClientBuilder(\n new NetworkingModule.CustomClientBuilder() {\n@@ -43,12 +48,13 @@ public class ReactNativeFlipper {\n });\n client.addPlugin(networkFlipperPlugin);\n client.start();\n+\n // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized\n // Hence we run if after all native modules have been initialized\n ReactContext reactContext = reactInstanceManager.getCurrentReactContext();\n if (reactContext == null) {\n reactInstanceManager.addReactInstanceEventListener(\n- new ReactInstanceManager.ReactInstanceEventListener() {\n+ new ReactInstanceEventListener() {\n @Override\n public void onReactContextInitialized(ReactContext reactContext) {\n reactInstanceManager.removeReactInstanceEventListener(this);\n@@ -66,4 +72,4 @@ public class ReactNativeFlipper {\n }\n }\n }\n-}\n\\ No newline at end of file\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\nindex 0cad655b33..6536fc03ad 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n@@ -1,4 +1,4 @@\n-\n+\n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\nindex 8e13797d9b..7e2823fb6c 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n@@ -5,7 +5,8 @@ import android.os.Bundle;\n \n import com.facebook.react.ReactActivity;\n import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactActivityDelegate;\n \n import expo.modules.ReactActivityDelegateWrapper;\n \n@@ -29,15 +30,20 @@ public class MainActivity extends ReactActivity {\n }\n \n /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n+ * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link\n+ * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React\n+ * (aka React 18) with two boolean flags.\n */\n @Override\n protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n+ return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate(\n+ this,\n+ getMainComponentName(),\n+ // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n+ DefaultNewArchitectureEntryPoint.getFabricEnabled(), // fabricEnabled\n+ // If you opted-in for the New Architecture, we enable Concurrent React (i.e. React 18).\n+ DefaultNewArchitectureEntryPoint.getConcurrentReactEnabled() // concurrentRootEnabled\n+ ));\n }\n \n /**\n@@ -59,25 +65,4 @@ public class MainActivity extends ReactActivity {\n // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n super.invokeDefaultOnBackPressed();\n }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\nindex 7deb688b07..31c2b288c1 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n@@ -1,69 +1,70 @@\n package com.helloworld;\n \n import android.app.Application;\n-import android.content.Context;\n import android.content.res.Configuration;\n import androidx.annotation.NonNull;\n \n import com.facebook.react.PackageList;\n import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.ReactNativeHost;\n import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactNativeHost;\n import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n \n import expo.modules.ApplicationLifecycleDispatcher;\n import expo.modules.ReactNativeHostWrapper;\n \n-import java.lang.reflect.InvocationTargetException;\n import java.util.List;\n \n public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n \n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n+ private final ReactNativeHost mReactNativeHost =\n+ new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) {\n+ @Override\n+ public boolean getUseDeveloperSupport() {\n+ return BuildConfig.DEBUG;\n+ }\n \n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n+ @Override\n+ protected List getPackages() {\n+ @SuppressWarnings(\"UnnecessaryLocalVariable\")\n+ List packages = new PackageList(this).getPackages();\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return packages;\n+ }\n \n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n+ @Override\n+ protected String getJSMainModuleName() {\n+ return \"index\";\n+ }\n+\n+ @Override\n+ protected boolean isNewArchEnabled() {\n+ return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n+ }\n+\n+ @Override\n+ protected Boolean isHermesEnabled() {\n+ return BuildConfig.IS_HERMES_ENABLED;\n+ }\n+ });\n \n @Override\n public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n+ return mReactNativeHost;\n }\n \n @Override\n public void onCreate() {\n super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ DefaultNewArchitectureEntryPoint.load();\n+ }\n+ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n ApplicationLifecycleDispatcher.onApplicationCreate(this);\n }\n \n@@ -72,35 +73,4 @@ public class MainApplication extends Application implements ReactApplication {\n super.onConfigurationChanged(newConfig);\n ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt b/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\ndeleted file mode 100644\nindex d2cad3a326..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-cmake_minimum_required(VERSION 3.13)\n-\n-# Define the library name here.\n-project(helloworld_appmodules)\n-\n-# This file includes all the necessary to let you build your application with the New Architecture.\n-include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 26162dd872..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n-\n- // Module providers autolinked by RN CLI\n- auto rncli_module = rncli_ModuleProvider(moduleName, params);\n- if (rncli_module != nullptr) {\n- return rncli_module;\n- }\n-\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex b38ccf53fd..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex 5fd688c509..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- const std::string &name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 9ee38a81f6..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(const std::string &name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 54f598a486..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,65 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Autolinked providers registered by RN CLI\n- rncli_registerProviders(providerRegistry);\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java b/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java\nnew file mode 100644\nindex 0000000000..b510364404\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java\n@@ -0,0 +1,20 @@\n+/**\n+ * Copyright (c) Meta Platforms, Inc. and affiliates.\n+ *\n+ *

This source code is licensed under the MIT license found in the LICENSE file in the root\n+ * directory of this source tree.\n+ */\n+package com.helloworld;\n+\n+import android.content.Context;\n+import com.facebook.react.ReactInstanceManager;\n+\n+/**\n+ * Class responsible of loading Flipper inside your React Native application. This is the release\n+ * flavor of it so it's empty as we don't want to load Flipper.\n+ */\n+public class ReactNativeFlipper {\n+ public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {\n+ // Do nothing as we don't want to initialize Flipper on Release.\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/build.gradle b/templates/expo-template-bare-minimum/android/build.gradle\nindex 8181b282cd..e5fda82878 100644\n--- a/templates/expo-template-bare-minimum/android/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/build.gradle\n@@ -2,47 +2,30 @@\n \n buildscript {\n ext {\n- buildToolsVersion = findProperty('android.buildToolsVersion') ?: '31.0.0'\n+ buildToolsVersion = findProperty('android.buildToolsVersion') ?: '33.0.0'\n minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '21')\n- compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '31')\n- targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '31')\n+ compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '33')\n+ targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '33')\n if (findProperty('android.kotlinVersion')) {\n kotlinVersion = findProperty('android.kotlinVersion')\n }\n frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0'\n \n- if (System.properties['os.arch'] == 'aarch64') {\n- // For M1 Users we need to use the NDK 24 which added support for aarch64\n- ndkVersion = '24.0.8215888'\n- } else {\n- // Otherwise we default to the side-by-side NDK version from AGP.\n- ndkVersion = '21.4.7075529'\n- }\n+ // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.\n+ ndkVersion = \"23.1.7779620\"\n }\n repositories {\n google()\n mavenCentral()\n }\n dependencies {\n- classpath('com.android.tools.build:gradle:7.2.1')\n+ classpath('com.android.tools.build:gradle:7.4.1')\n classpath('com.facebook.react:react-native-gradle-plugin')\n- classpath('de.undercouch:gradle-download-task:5.0.1')\n- // NOTE: Do not place your application dependencies here; they belong\n- // in the individual module build.gradle files\n }\n }\n \n-def REACT_NATIVE_VERSION = new File(['node', '--print', \"JSON.parse(require('fs').readFileSync(require.resolve('react-native/package.json'), 'utf-8')).version\"].execute(null, rootDir).text.trim())\n-\n allprojects {\n- configurations.all {\n- resolutionStrategy {\n- force \"com.facebook.react:react-native:\" + REACT_NATIVE_VERSION\n- }\n- }\n-\n repositories {\n- mavenLocal()\n maven {\n // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm\n url(new File(['node', '--print', \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), '../android'))\n@@ -53,13 +36,7 @@ allprojects {\n }\n \n google()\n- mavenCentral {\n- // We don't want to fetch react-native from Maven Central as there are\n- // older versions over there.\n- content {\n- excludeGroup 'com.facebook.react'\n- }\n- }\n+ mavenCentral()\n maven { url 'https://www.jitpack.io' }\n }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/gitignore b/templates/expo-template-bare-minimum/android/gitignore\nindex 64436baaf5..877b87e9a5 100644\n--- a/templates/expo-template-bare-minimum/android/gitignore\n+++ b/templates/expo-template-bare-minimum/android/gitignore\n@@ -11,11 +11,5 @@ local.properties\n *.iml\n *.hprof\n \n-# BUCK\n-buck-out/\n-\\.buckd/\n-*.keystore\n-!debug.keystore\n-\n # Bundle artifacts\n *.jsbundle\ndiff --git a/templates/expo-template-bare-minimum/android/gradle.properties b/templates/expo-template-bare-minimum/android/gradle.properties\nindex fab3fb6bcf..9911ac4afd 100644\n--- a/templates/expo-template-bare-minimum/android/gradle.properties\n+++ b/templates/expo-template-bare-minimum/android/gradle.properties\n@@ -42,7 +42,7 @@ newArchEnabled=false\n \n # The hosted JavaScript engine\n # Supported values: expo.jsEngine = \"hermes\" | \"jsc\"\n-expo.jsEngine=jsc\n+expo.jsEngine=hermes\n \n # Enable GIF support in React Native images (~200 B increase)\n expo.gif.enabled=true\ndiff --git a/templates/expo-template-bare-minimum/android/settings.gradle b/templates/expo-template-bare-minimum/android/settings.gradle\nindex b3332319f9..1dc416e7c1 100644\n--- a/templates/expo-template-bare-minimum/android/settings.gradle\n+++ b/templates/expo-template-bare-minimum/android/settings.gradle\n@@ -8,10 +8,3 @@ applyNativeModulesSettingsGradle(settings)\n \n include ':app'\n includeBuild(new File([\"node\", \"--print\", \"require.resolve('react-native-gradle-plugin/package.json')\"].execute(null, rootDir).text.trim()).getParentFile())\n-\n-if (settings.hasProperty(\"newArchEnabled\") && settings.newArchEnabled == \"true\") {\n- include(\":ReactAndroid\")\n- project(\":ReactAndroid\").projectDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../ReactAndroid\");\n- include(\":ReactAndroid:hermes-engine\")\n- project(\":ReactAndroid:hermes-engine\").projectDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../ReactAndroid/hermes-engine\");\n-}\ndiff --git a/templates/expo-template-bare-minimum/gitignore b/templates/expo-template-bare-minimum/gitignore\nindex 67397f65f9..df57ba88a1 100644\n--- a/templates/expo-template-bare-minimum/gitignore\n+++ b/templates/expo-template-bare-minimum/gitignore\n@@ -31,6 +31,8 @@ local.properties\n *.iml\n *.hprof\n .cxx/\n+*.keystore\n+!debug.keystore\n \n # node.js\n #\n@@ -38,18 +40,15 @@ node_modules/\n npm-debug.log\n yarn-error.log\n \n-# BUCK\n-buck-out/\n-\\.buckd/\n-*.keystore\n-!debug.keystore\n-\n # Bundle artifacts\n *.jsbundle\n \n # CocoaPods\n /ios/Pods/\n \n+# Temporary files created by Metro to check the health of the file watcher\n+.metro-health-check*\n+\n # Expo\n .expo/\n web-build/\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\nindex 62a1be2493..98e6c2afea 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n@@ -310,6 +310,7 @@\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n \t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n+ MARKETING_VERSION = 1.0;\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n \t\t\t\t\t\"-ObjC\",\n@@ -333,6 +334,7 @@\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n \t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n+ MARKETING_VERSION = 1.0;\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n \t\t\t\t\t\"-ObjC\",\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\nindex f7d2972042..1658a437eb 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\n@@ -1,9 +1,7 @@\n-#import \n-#import \n+#import \n #import \n-\n #import \n \n-@interface AppDelegate : EXAppDelegateWrapper \n+@interface AppDelegate : EXAppDelegateWrapper\n \n @end\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\nindex a6e13e11ab..8cb5aef137 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n@@ -1,100 +1,40 @@\n #import \"AppDelegate.h\"\n \n-#import \n #import \n-#import \n #import \n-#import \n-\n-#import \n-\n-#if RCT_NEW_ARCH_ENABLED\n-#import \n-#import \n-#import \n-#import \n-#import \n-#import \n-\n-#import \n-\n-static NSString *const kRNConcurrentRoot = @\"concurrentRoot\";\n-\n-@interface AppDelegate () {\n- RCTTurboModuleManager *_turboModuleManager;\n- RCTSurfacePresenterBridgeAdapter *_bridgeAdapter;\n- std::shared_ptr _reactNativeConfig;\n- facebook::react::ContextContainer::Shared _contextContainer;\n-}\n-@end\n-#endif\n \n @implementation AppDelegate\n \n - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n {\n- RCTAppSetupPrepareApp(application);\n-\n- RCTBridge *bridge = [self.reactDelegate createBridgeWithDelegate:self launchOptions:launchOptions];\n-\n-#if RCT_NEW_ARCH_ENABLED\n- _contextContainer = std::make_shared();\n- _reactNativeConfig = std::make_shared();\n- _contextContainer->insert(\"ReactNativeConfig\", _reactNativeConfig);\n- _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer];\n- bridge.surfacePresenter = _bridgeAdapter.surfacePresenter;\n-#endif\n-\n- NSDictionary *initProps = [self prepareInitialProps];\n- UIView *rootView = [self.reactDelegate createRootViewWithBridge:bridge moduleName:@\"main\" initialProperties:initProps];\n-\n- rootView.backgroundColor = [UIColor whiteColor];\n- self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n- UIViewController *rootViewController = [self.reactDelegate createRootViewController];\n- rootViewController.view = rootView;\n- self.window.rootViewController = rootViewController;\n- [self.window makeKeyAndVisible];\n+ self.moduleName = @\"main\";\n \n- [super application:application didFinishLaunchingWithOptions:launchOptions];\n+ // You can add your custom initial props in the dictionary below.\n+ // They will be passed down to the ViewController used by React Native.\n+ self.initialProps = @{};\n \n- return YES;\n+ return [super application:application didFinishLaunchingWithOptions:launchOptions];\n }\n \n-- (NSArray> *)extraModulesForBridge:(RCTBridge *)bridge\n+- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge\n {\n- // If you'd like to export some custom RCTBridgeModules, add them here!\n- return @[];\n+#if DEBUG\n+ return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\"];\n+#else\n+ return [[NSBundle mainBundle] URLForResource:@\"main\" withExtension:@\"jsbundle\"];\n+#endif\n }\n \n /// This method controls whether the `concurrentRoot`feature of React18 is turned on or off.\n ///\n /// @see: https://reactjs.org/blog/2022/03/29/react-v18.html\n /// @note: This requires to be rendering on Fabric (i.e. on the New Architecture).\n-/// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`.\n+/// @return: `true` if the `concurrentRoot` feature is enabled. Otherwise, it returns `false`.\n - (BOOL)concurrentRootEnabled\n {\n- // Switch this bool to turn on and off the concurrent root\n return true;\n }\n \n-- (NSDictionary *)prepareInitialProps\n-{\n- NSMutableDictionary *initProps = [NSMutableDictionary new];\n-#if RCT_NEW_ARCH_ENABLED\n- initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]);\n-#endif\n- return initProps;\n-}\n-\n-- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge\n-{\n-#if DEBUG\n- return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\"];\n-#else\n- return [[NSBundle mainBundle] URLForResource:@\"main\" withExtension:@\"jsbundle\"];\n-#endif\n-}\n-\n // Linking API\n - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options {\n return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options];\n@@ -124,43 +64,4 @@ static NSString *const kRNConcurrentRoot = @\"concurrentRoot\";\n return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];\n }\n \n-#if RCT_NEW_ARCH_ENABLED\n-\n-#pragma mark - RCTCxxBridgeDelegate\n-\n-- (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge\n-{\n- _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge\n- delegate:self\n- jsInvoker:bridge.jsCallInvoker];\n- return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager);\n-}\n-\n-#pragma mark RCTTurboModuleManagerDelegate\n-\n-- (Class)getModuleClassFromName:(const char *)name\n-{\n- return RCTCoreModulesClassProvider(name);\n-}\n-\n-- (std::shared_ptr)getTurboModule:(const std::string &)name\n- jsInvoker:(std::shared_ptr)jsInvoker\n-{\n- return nullptr;\n-}\n-\n-- (std::shared_ptr)getTurboModule:(const std::string &)name\n- initParams:\n- (const facebook::react::ObjCTurboModule::InitParams &)params\n-{\n- return nullptr;\n-}\n-\n-- (id)getModuleInstanceFromClass:(Class)moduleClass\n-{\n- return RCTAppSetupDefaultModuleFromClass(moduleClass);\n-}\n-\n-#endif\n-\n @end\ndiff --git a/templates/expo-template-bare-minimum/ios/Podfile b/templates/expo-template-bare-minimum/ios/Podfile\nindex 474455b90d..e523ea5cac 100644\n--- a/templates/expo-template-bare-minimum/ios/Podfile\n+++ b/templates/expo-template-bare-minimum/ios/Podfile\n@@ -5,34 +5,63 @@ require File.join(File.dirname(`node --print \"require.resolve('@react-native-com\n require 'json'\n podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}\n \n+ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0'\n+ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = '1' if podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] == 'true'\n+\n platform :ios, podfile_properties['ios.deploymentTarget'] || '13.0'\n install! 'cocoapods',\n :deterministic_uuids => false\n \n+prepare_react_native_project!\n+\n+# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.\n+# because `react-native-flipper` depends on (FlipperKit,...), which will be excluded. To fix this,\n+# you can also exclude `react-native-flipper` in `react-native.config.js`\n+#\n+# ```js\n+# module.exports = {\n+# dependencies: {\n+# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),\n+# }\n+# }\n+# ```\n+flipper_config = FlipperConfiguration.disabled\n+if ENV['NO_FLIPPER'] == '1' then\n+ # Explicitly disabled through environment variables\n+ flipper_config = FlipperConfiguration.disabled\n+elsif podfile_properties.key?('ios.flipper') then\n+ # Configure Flipper in Podfile.properties.json\n+ if podfile_properties['ios.flipper'] == 'true' then\n+ flipper_config = FlipperConfiguration.enabled([\"Debug\", \"Release\"])\n+ elsif podfile_properties['ios.flipper'] != 'false' then\n+ flipper_config = FlipperConfiguration.enabled([\"Debug\", \"Release\"], { 'Flipper' => podfile_properties['ios.flipper'] })\n+ end\n+end\n+\n target 'HelloWorld' do\n use_expo_modules!\n config = use_native_modules!\n \n use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks']\n+ use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS']\n \n # Flags change depending on the env values.\n flags = get_default_flags()\n \n use_react_native!(\n :path => config[:reactNativePath],\n- :hermes_enabled => podfile_properties['expo.jsEngine'] == 'hermes',\n+ :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes',\n :fabric_enabled => flags[:fabric_enabled],\n # An absolute path to your application root.\n :app_path => \"#{Pod::Config.instance.installation_root}/..\",\n- #\n- # Uncomment to opt-in to using Flipper\n- # Note that if you have use_frameworks! enabled, Flipper will not work\n- # :flipper_configuration => !ENV['CI'] ? FlipperConfiguration.enabled : FlipperConfiguration.disabled,\n+ # Note that if you have use_frameworks! enabled, Flipper will not work if enabled\n+ :flipper_configuration => flipper_config\n )\n \n post_install do |installer|\n react_native_post_install(\n installer,\n+ config[:reactNativePath],\n # Set `mac_catalyst_enabled` to `true` in order to apply patches\n # necessary for Mac Catalyst builds\n :mac_catalyst_enabled => false\ndiff --git a/templates/expo-template-bare-minimum/ios/Podfile.properties.json b/templates/expo-template-bare-minimum/ios/Podfile.properties.json\nindex f6d872e81a..b1bd45da51 100644\n--- a/templates/expo-template-bare-minimum/ios/Podfile.properties.json\n+++ b/templates/expo-template-bare-minimum/ios/Podfile.properties.json\n@@ -1,3 +1,3 @@\n {\n- \"expo.jsEngine\": \"jsc\"\n+ \"expo.jsEngine\": \"hermes\"\n }\ndiff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json\nindex a41fdc0d8d..d1fcd513cc 100644\n--- a/templates/expo-template-bare-minimum/package.json\n+++ b/templates/expo-template-bare-minimum/package.json\n@@ -1,7 +1,7 @@\n {\n \"name\": \"expo-template-bare-minimum\",\n \"description\": \"This bare project template includes a minimal setup for using unimodules with React Native.\",\n- \"version\": \"47.0.26\",\n+ \"version\": \"48.0.21\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"start\": \"expo start --dev-client\",\n@@ -10,13 +10,13 @@\n \"web\": \"expo start --web\"\n },\n \"dependencies\": {\n- \"expo\": \"~47.0.14\",\n- \"expo-splash-screen\": \"~0.17.5\",\n- \"expo-status-bar\": \"~1.4.2\",\n- \"react\": \"18.1.0\",\n- \"react-native\": \"0.70.8\"\n+ \"expo\": \"~48.0.21\",\n+ \"expo-splash-screen\": \"~0.18.2\",\n+ \"expo-status-bar\": \"~1.4.4\",\n+ \"react\": \"18.2.0\",\n+ \"react-native\": \"0.71.14\"\n },\n \"devDependencies\": {\n- \"@babel/core\": \"^7.12.9\"\n+ \"@babel/core\": \"^7.20.0\"\n }\n }\n","48..48":"","45..49":"diff --git a/templates/expo-template-bare-minimum/.buckconfig b/templates/expo-template-bare-minimum/.buckconfig\ndeleted file mode 100644\nindex 934256cb29..0000000000\n--- a/templates/expo-template-bare-minimum/.buckconfig\n+++ /dev/null\n@@ -1,6 +0,0 @@\n-\n-[android]\n- target = Google Inc.:Google APIs:23\n-\n-[maven_repositories]\n- central = https://repo1.maven.org/maven2\ndiff --git a/templates/expo-template-bare-minimum/.npmignore b/templates/expo-template-bare-minimum/.npmignore\nindex 35490b6612..bc0b76356d 100644\n--- a/templates/expo-template-bare-minimum/.npmignore\n+++ b/templates/expo-template-bare-minimum/.npmignore\n@@ -17,6 +17,8 @@ web-build/\n HelloWorld.xcworkspace\n Podfile.lock\n ios/Pods\n+ios/.xcode.env.local\n android/.build\n android/app/build\n android/.gradle\n+ios/.xcode.env.local\ndiff --git a/templates/expo-template-bare-minimum/android/app/BUCK b/templates/expo-template-bare-minimum/android/app/BUCK\ndeleted file mode 100644\nindex 0e77904834..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/BUCK\n+++ /dev/null\n@@ -1,55 +0,0 @@\n-# To learn about Buck see [Docs](https://buckbuild.com/).\n-# To run your application with Buck:\n-# - install Buck\n-# - `npm start` - to start the packager\n-# - `cd android`\n-# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname \"CN=Android Debug,O=Android,C=US\"`\n-# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck\n-# - `buck install -r android/app` - compile, install and run application\n-#\n-\n-load(\":build_defs.bzl\", \"create_aar_targets\", \"create_jar_targets\")\n-\n-lib_deps = []\n-\n-create_aar_targets(glob([\"libs/*.aar\"]))\n-\n-create_jar_targets(glob([\"libs/*.jar\"]))\n-\n-android_library(\n- name = \"all-libs\",\n- exported_deps = lib_deps,\n-)\n-\n-android_library(\n- name = \"app-code\",\n- srcs = glob([\n- \"src/main/java/**/*.java\",\n- ]),\n- deps = [\n- \":all-libs\",\n- \":build_config\",\n- \":res\",\n- ],\n-)\n-\n-android_build_config(\n- name = \"build_config\",\n- package = \"com.helloworld\",\n-)\n-\n-android_resource(\n- name = \"res\",\n- package = \"com.helloworld\",\n- res = \"src/main/res\",\n-)\n-\n-android_binary(\n- name = \"app\",\n- keystore = \"//android/keystores:debug\",\n- manifest = \"src/main/AndroidManifest.xml\",\n- package_type = \"debug\",\n- deps = [\n- \":app-code\",\n- ],\n-)\ndiff --git a/templates/expo-template-bare-minimum/android/app/build.gradle b/templates/expo-template-bare-minimum/android/app/build.gradle\nindex 346fb02564..7105aaaa3f 100644\n--- a/templates/expo-template-bare-minimum/android/app/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/app/build.gradle\n@@ -1,232 +1,95 @@\n apply plugin: \"com.android.application\"\n-\n-import com.android.build.OutputFile\n-import org.apache.tools.ant.taskdefs.condition.Os\n-\n-/**\n- * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets\n- * and bundleReleaseJsAndAssets).\n- * These basically call `react-native bundle` with the correct arguments during the Android build\n- * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the\n- * bundle directly from the development server. Below you can see all the possible configurations\n- * and their defaults. If you decide to add a configuration block, make sure to add it before the\n- * `apply from: \"../../node_modules/react-native/react.gradle\"` line.\n- *\n- * project.ext.react = [\n- * // the name of the generated asset file containing your JS bundle\n- * bundleAssetName: \"index.android.bundle\",\n- *\n- * // the entry file for bundle generation. If none specified and\n- * // \"index.android.js\" exists, it will be used. Otherwise \"index.js\" is\n- * // default. Can be overridden with ENTRY_FILE environment variable.\n- * entryFile: \"index.android.js\",\n- *\n- * // https://reactnative.dev/docs/performance#enable-the-ram-format\n- * bundleCommand: \"ram-bundle\",\n- *\n- * // whether to bundle JS and assets in debug mode\n- * bundleInDebug: false,\n- *\n- * // whether to bundle JS and assets in release mode\n- * bundleInRelease: true,\n- *\n- * // whether to bundle JS and assets in another build variant (if configured).\n- * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants\n- * // The configuration property can be in the following formats\n- * // 'bundleIn${productFlavor}${buildType}'\n- * // 'bundleIn${buildType}'\n- * // bundleInFreeDebug: true,\n- * // bundleInPaidRelease: true,\n- * // bundleInBeta: true,\n- *\n- * // whether to disable dev mode in custom build variants (by default only disabled in release)\n- * // for example: to disable dev mode in the staging build type (if configured)\n- * devDisabledInStaging: true,\n- * // The configuration property can be in the following formats\n- * // 'devDisabledIn${productFlavor}${buildType}'\n- * // 'devDisabledIn${buildType}'\n- *\n- * // the root of your project, i.e. where \"package.json\" lives\n- * root: \"../../\",\n- *\n- * // where to put the JS bundle asset in debug mode\n- * jsBundleDirDebug: \"$buildDir/intermediates/assets/debug\",\n- *\n- * // where to put the JS bundle asset in release mode\n- * jsBundleDirRelease: \"$buildDir/intermediates/assets/release\",\n- *\n- * // where to put drawable resources / React Native assets, e.g. the ones you use via\n- * // require('./image.png')), in debug mode\n- * resourcesDirDebug: \"$buildDir/intermediates/res/merged/debug\",\n- *\n- * // where to put drawable resources / React Native assets, e.g. the ones you use via\n- * // require('./image.png')), in release mode\n- * resourcesDirRelease: \"$buildDir/intermediates/res/merged/release\",\n- *\n- * // by default the gradle tasks are skipped if none of the JS files or assets change; this means\n- * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to\n- * // date; if you have any other folders that you want to ignore for performance reasons (gradle\n- * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/\n- * // for example, you might want to remove it from here.\n- * inputExcludes: [\"android/**\", \"ios/**\"],\n- *\n- * // override which node gets called and with what additional arguments\n- * nodeExecutableAndArgs: [\"node\"],\n- *\n- * // supply additional arguments to the packager\n- * extraPackagerArgs: []\n- * ]\n- */\n+apply plugin: \"com.facebook.react\"\n \n def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath()\n \n-project.ext.react = [\n- entryFile: [\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\"].execute(null, rootDir).text.trim(),\n- enableHermes: (findProperty('expo.jsEngine') ?: \"jsc\") == \"hermes\",\n- cliPath: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/cli.js\",\n- hermesCommand: new File([\"node\", \"--print\", \"require.resolve('hermes-engine/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/%OS-BIN%/hermesc\",\n- composeSourceMapsPath: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/scripts/compose-source-maps.js\",\n-]\n-\n-apply from: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../react.gradle\")\n-\n /**\n- * Set this to true to create two separate APKs instead of one:\n- * - An APK that only works on ARM devices\n- * - An APK that only works on x86 devices\n- * The advantage is the size of the APK is reduced by about 4MB.\n- * Upload all the APKs to the Play Store and people will download\n- * the correct one based on the CPU architecture of their device.\n+ * This is the configuration block to customize your React Native Android app.\n+ * By default you don't need to apply any configuration, just uncomment the lines you need.\n */\n-def enableSeparateBuildPerCPUArchitecture = false\n+react {\n+ entryFile = file([\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\", \"absolute\"].execute(null, rootDir).text.trim())\n+ reactNativeDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()\n+ hermesCommand = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/sdks/hermesc/%OS-BIN%/hermesc\"\n+ codegenDir = new File([\"node\", \"--print\", \"require.resolve('@react-native/codegen/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()\n+\n+ // Use Expo CLI to bundle the app, this ensures the Metro config\n+ // works correctly with Expo projects.\n+ cliFile = new File([\"node\", \"--print\", \"require.resolve('@expo/cli')\"].execute(null, rootDir).text.trim())\n+ bundleCommand = \"export:embed\"\n+\n+ /* Folders */\n+ // The root of your project, i.e. where \"package.json\" lives. Default is '..'\n+ // root = file(\"../\")\n+ // The folder where the react-native NPM package is. Default is ../node_modules/react-native\n+ // reactNativeDir = file(\"../node_modules/react-native\")\n+ // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen\n+ // codegenDir = file(\"../node_modules/@react-native/codegen\")\n+\n+ /* Variants */\n+ // The list of variants to that are debuggable. For those we're going to\n+ // skip the bundling of the JS bundle and the assets. By default is just 'debug'.\n+ // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.\n+ // debuggableVariants = [\"liteDebug\", \"prodDebug\"]\n+\n+ /* Bundling */\n+ // A list containing the node command and its flags. Default is just 'node'.\n+ // nodeExecutableAndArgs = [\"node\"]\n+\n+ //\n+ // The path to the CLI configuration file. Default is empty.\n+ // bundleConfig = file(../rn-cli.config.js)\n+ //\n+ // The name of the generated asset file containing your JS bundle\n+ // bundleAssetName = \"MyApplication.android.bundle\"\n+ //\n+ // The entry file for bundle generation. Default is 'index.android.js' or 'index.js'\n+ // entryFile = file(\"../js/MyApplication.android.js\")\n+ //\n+ // A list of extra flags to pass to the 'bundle' commands.\n+ // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle\n+ // extraPackagerArgs = []\n+\n+ /* Hermes Commands */\n+ // The hermes compiler command to run. By default it is 'hermesc'\n+ // hermesCommand = \"$rootDir/my-custom-hermesc/bin/hermesc\"\n+ //\n+ // The list of flags to pass to the Hermes compiler. By default is \"-O\", \"-output-source-map\"\n+ // hermesFlags = [\"-O\", \"-output-source-map\"]\n+}\n \n /**\n- * Run Proguard to shrink the Java bytecode in release builds.\n+ * Set this to true to Run Proguard on Release builds to minify the Java bytecode.\n */\n def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean()\n \n /**\n- * The preferred build flavor of JavaScriptCore.\n+ * The preferred build flavor of JavaScriptCore (JSC)\n *\n * For example, to use the international variant, you can use:\n * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`\n *\n * The international variant includes ICU i18n library and necessary data\n * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that\n- * give correct results when using with locales other than en-US. Note that\n+ * give correct results when using with locales other than en-US. Note that\n * this variant is about 6MiB larger per architecture than default.\n */\n def jscFlavor = 'org.webkit:android-jsc:+'\n \n-/**\n- * Whether to enable the Hermes VM.\n- *\n- * This should be set on project.ext.react and that value will be read here. If it is not set\n- * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode\n- * and the benefits of using Hermes will therefore be sharply reduced.\n- */\n-def enableHermes = project.ext.react.get(\"enableHermes\", false);\n-\n-/**\n- * Architectures to build native code for.\n- */\n-def reactNativeArchitectures() {\n- def value = project.getProperties().get(\"reactNativeArchitectures\")\n- return value ? value.split(\",\") : [\"armeabi-v7a\", \"x86\", \"x86_64\", \"arm64-v8a\"]\n-}\n-\n android {\n ndkVersion rootProject.ext.ndkVersion\n \n compileSdkVersion rootProject.ext.compileSdkVersion\n \n+ namespace \"com.helloworld\"\n defaultConfig {\n applicationId \"com.helloworld\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n- buildConfigField \"boolean\", \"IS_NEW_ARCHITECTURE_ENABLED\", isNewArchitectureEnabled().toString()\n-\n- if (isNewArchitectureEnabled()) {\n- // We configure the NDK build only if you decide to opt-in for the New Architecture.\n- externalNativeBuild {\n- ndkBuild {\n- arguments \"APP_PLATFORM=android-21\",\n- \"APP_STL=c++_shared\",\n- \"NDK_TOOLCHAIN_VERSION=clang\",\n- \"GENERATED_SRC_DIR=$buildDir/generated/source\",\n- \"PROJECT_BUILD_DIR=$buildDir\",\n- \"REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid\",\n- \"REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build\"\n- cFlags \"-Wall\", \"-Werror\", \"-fexceptions\", \"-frtti\", \"-DWITH_INSPECTOR=1\"\n- cppFlags \"-std=c++17\"\n- // Make sure this target name is the same you specify inside the\n- // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.\n- targets \"helloworld_appmodules\"\n-\n- // Fix for windows limit on number of character in file paths and in command lines\n- if (Os.isFamily(Os.FAMILY_WINDOWS)) {\n- arguments \"NDK_APP_SHORT_COMMANDS=true\"\n- }\n- }\n- }\n- if (!enableSeparateBuildPerCPUArchitecture) {\n- ndk {\n- abiFilters (*reactNativeArchitectures())\n- }\n- }\n- }\n- }\n-\n- if (isNewArchitectureEnabled()) {\n- // We configure the NDK build only if you decide to opt-in for the New Architecture.\n- externalNativeBuild {\n- ndkBuild {\n- path \"$projectDir/src/main/jni/Android.mk\"\n- }\n- }\n- def reactAndroidProjectDir = project(':ReactAndroid').projectDir\n- def packageReactNdkDebugLibs = tasks.register(\"packageReactNdkDebugLibs\", Copy) {\n- dependsOn(\":ReactAndroid:packageReactNdkDebugLibsForBuck\")\n- from(\"$reactAndroidProjectDir/src/main/jni/prebuilt/lib\")\n- into(\"$buildDir/react-ndk/exported\")\n- }\n- def packageReactNdkReleaseLibs = tasks.register(\"packageReactNdkReleaseLibs\", Copy) {\n- dependsOn(\":ReactAndroid:packageReactNdkReleaseLibsForBuck\")\n- from(\"$reactAndroidProjectDir/src/main/jni/prebuilt/lib\")\n- into(\"$buildDir/react-ndk/exported\")\n- }\n- afterEvaluate {\n- // If you wish to add a custom TurboModule or component locally,\n- // you should uncomment this line.\n- // preBuild.dependsOn(\"generateCodegenArtifactsFromSchema\")\n- preDebugBuild.dependsOn(packageReactNdkDebugLibs)\n- preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)\n \n- // Due to a bug inside AGP, we have to explicitly set a dependency\n- // between configureNdkBuild* tasks and the preBuild tasks.\n- // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732\n- configureNdkBuildRelease.dependsOn(preReleaseBuild)\n- configureNdkBuildDebug.dependsOn(preDebugBuild)\n- reactNativeArchitectures().each { architecture ->\n- tasks.findByName(\"configureNdkBuildDebug[${architecture}]\")?.configure {\n- dependsOn(\"preDebugBuild\")\n- }\n- tasks.findByName(\"configureNdkBuildRelease[${architecture}]\")?.configure {\n- dependsOn(\"preReleaseBuild\")\n- }\n- }\n- }\n- }\n-\n- splits {\n- abi {\n- reset()\n- enable enableSeparateBuildPerCPUArchitecture\n- universalApk false // If true, also generate a universal APK\n- include (*reactNativeArchitectures())\n- }\n+ buildConfigField(\"boolean\", \"REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS\", (findProperty(\"reactNative.unstable_useRuntimeSchedulerAlways\") ?: true).toString())\n }\n signingConfigs {\n debug {\n@@ -244,25 +107,11 @@ android {\n // Caution! In production, you need to generate your own keystore file.\n // see https://reactnative.dev/docs/signed-apk-android.\n signingConfig signingConfigs.debug\n+ shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false)\n minifyEnabled enableProguardInReleaseBuilds\n proguardFiles getDefaultProguardFile(\"proguard-android.txt\"), \"proguard-rules.pro\"\n }\n }\n-\n- // applicationVariants are e.g. debug, release\n- applicationVariants.all { variant ->\n- variant.outputs.each { output ->\n- // For each separate APK per architecture, set a unique version code as described here:\n- // https://developer.android.com/studio/build/configure-apk-splits.html\n- def versionCodes = [\"armeabi-v7a\": 1, \"x86\": 2, \"arm64-v8a\": 3, \"x86_64\": 4]\n- def abi = output.getFilter(OutputFile.ABI)\n- if (abi != null) { // null for the universal-debug, universal-release variants\n- output.versionCodeOverride =\n- versionCodes.get(abi) * 1048576 + defaultConfig.versionCode\n- }\n-\n- }\n- }\n }\n \n // Apply static values from `gradle.properties` to the `android.packagingOptions`\n@@ -286,10 +135,8 @@ android {\n }\n \n dependencies {\n- implementation fileTree(dir: \"libs\", include: [\"*.jar\"])\n-\n- //noinspection GradleDynamicVersion\n- implementation \"com.facebook.react:react-native:+\" // From node_modules\n+ // The version of react-native is set by the React Native Gradle Plugin\n+ implementation(\"com.facebook.react:react-android\")\n \n def isGifEnabled = (findProperty('expo.gif.enabled') ?: \"\") == \"true\";\n def isWebpEnabled = (findProperty('expo.webp.enabled') ?: \"\") == \"true\";\n@@ -298,70 +145,36 @@ dependencies {\n \n // If your app supports Android versions before Ice Cream Sandwich (API level 14)\n if (isGifEnabled || isWebpEnabled) {\n- implementation \"com.facebook.fresco:fresco:${frescoVersion}\"\n- implementation \"com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:fresco:${frescoVersion}\")\n+ implementation(\"com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}\")\n }\n \n if (isGifEnabled) {\n // For animated gif support\n- implementation \"com.facebook.fresco:animated-gif:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:animated-gif:${frescoVersion}\")\n }\n \n if (isWebpEnabled) {\n // For webp support\n- implementation \"com.facebook.fresco:webpsupport:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:webpsupport:${frescoVersion}\")\n if (isWebpAnimatedEnabled) {\n // Animated webp support\n- implementation \"com.facebook.fresco:animated-webp:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:animated-webp:${frescoVersion}\")\n }\n }\n \n- implementation \"androidx.swiperefreshlayout:swiperefreshlayout:1.0.0\"\n- debugImplementation(\"com.facebook.flipper:flipper:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.fbjni'\n- }\n+ debugImplementation(\"com.facebook.flipper:flipper:${FLIPPER_VERSION}\")\n debugImplementation(\"com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.flipper'\n exclude group:'com.squareup.okhttp3', module:'okhttp'\n }\n- debugImplementation(\"com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.flipper'\n- }\n+ debugImplementation(\"com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}\")\n \n- if (enableHermes) {\n- debugImplementation files(new File([\"node\", \"--print\", \"require.resolve('hermes-engine/package.json')\"].execute(null, rootDir).text.trim(), \"../android/hermes-debug.aar\"))\n- releaseImplementation files(new File([\"node\", \"--print\", \"require.resolve('hermes-engine/package.json')\"].execute(null, rootDir).text.trim(), \"../android/hermes-release.aar\"))\n+ if (hermesEnabled.toBoolean()) {\n+ implementation(\"com.facebook.react:hermes-android\")\n } else {\n implementation jscFlavor\n }\n }\n \n-if (isNewArchitectureEnabled()) {\n- // If new architecture is enabled, we let you build RN from source\n- // Otherwise we fallback to a prebuilt .aar bundled in the NPM package.\n- // This will be applied to all the imported transtitive dependency.\n- configurations.all {\n- resolutionStrategy.dependencySubstitution {\n- substitute(module(\"com.facebook.react:react-native\"))\n- .using(project(\":ReactAndroid\")).because(\"On New Architecture we're building React Native from source\")\n- }\n- }\n-}\n-\n-// Run this once to be able to run the application with BUCK\n-// puts all compile dependencies into folder libs for BUCK to use\n-task copyDownloadableDepsToLibs(type: Copy) {\n- from configurations.implementation\n- into 'libs'\n-}\n-\n apply from: new File([\"node\", \"--print\", \"require.resolve('@react-native-community/cli-platform-android/package.json')\"].execute(null, rootDir).text.trim(), \"../native_modules.gradle\");\n applyNativeModulesAppBuildGradle(project)\n-\n-def isNewArchitectureEnabled() {\n- // To opt-in for the New Architecture, you can either:\n- // - Set `newArchEnabled` to true inside the `gradle.properties` file\n- // - Invoke gradle with `-newArchEnabled=true`\n- // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`\n- return project.hasProperty(\"newArchEnabled\") && project.newArchEnabled == \"true\"\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/build_defs.bzl b/templates/expo-template-bare-minimum/android/app/build_defs.bzl\ndeleted file mode 100644\nindex fff270f8d1..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/build_defs.bzl\n+++ /dev/null\n@@ -1,19 +0,0 @@\n-\"\"\"Helper definitions to glob .aar and .jar targets\"\"\"\n-\n-def create_aar_targets(aarfiles):\n- for aarfile in aarfiles:\n- name = \"aars__\" + aarfile[aarfile.rindex(\"/\") + 1:aarfile.rindex(\".aar\")]\n- lib_deps.append(\":\" + name)\n- android_prebuilt_aar(\n- name = name,\n- aar = aarfile,\n- )\n-\n-def create_jar_targets(jarfiles):\n- for jarfile in jarfiles:\n- name = \"jars__\" + jarfile[jarfile.rindex(\"/\") + 1:jarfile.rindex(\".jar\")]\n- lib_deps.append(\":\" + name)\n- prebuilt_jar(\n- name = name,\n- binary_jar = jarfile,\n- )\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/debug/AndroidManifest.xml b/templates/expo-template-bare-minimum/android/app/src/debug/AndroidManifest.xml\nindex 99e38fc5f8..3ec2507bab 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/debug/AndroidManifest.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/debug/AndroidManifest.xml\n@@ -3,5 +3,5 @@\n \n \n \n- \n+ \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java b/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\nindex 8cddb11cb2..595dd5831c 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\n@@ -1,5 +1,5 @@\n /**\n- * Copyright (c) Facebook, Inc. and its affiliates.\n+ * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n *

This source code is licensed under the MIT license found in the LICENSE file in the root\n * directory of this source tree.\n@@ -17,22 +17,27 @@ import com.facebook.flipper.plugins.inspector.DescriptorMapping;\n import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;\n import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;\n import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;\n-import com.facebook.flipper.plugins.react.ReactFlipperPlugin;\n import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;\n+import com.facebook.react.ReactInstanceEventListener;\n import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.bridge.ReactContext;\n import com.facebook.react.modules.network.NetworkingModule;\n import okhttp3.OkHttpClient;\n \n+/**\n+ * Class responsible of loading Flipper inside your React Native application. This is the debug\n+ * flavor of it. Here you can add your own plugins and customize the Flipper setup.\n+ */\n public class ReactNativeFlipper {\n public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {\n if (FlipperUtils.shouldEnableFlipper(context)) {\n final FlipperClient client = AndroidFlipperClient.getInstance(context);\n+\n client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));\n- client.addPlugin(new ReactFlipperPlugin());\n client.addPlugin(new DatabasesFlipperPlugin(context));\n client.addPlugin(new SharedPreferencesFlipperPlugin(context));\n client.addPlugin(CrashReporterPlugin.getInstance());\n+\n NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();\n NetworkingModule.setCustomClientBuilder(\n new NetworkingModule.CustomClientBuilder() {\n@@ -43,12 +48,13 @@ public class ReactNativeFlipper {\n });\n client.addPlugin(networkFlipperPlugin);\n client.start();\n+\n // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized\n // Hence we run if after all native modules have been initialized\n ReactContext reactContext = reactInstanceManager.getCurrentReactContext();\n if (reactContext == null) {\n reactInstanceManager.addReactInstanceEventListener(\n- new ReactInstanceManager.ReactInstanceEventListener() {\n+ new ReactInstanceEventListener() {\n @Override\n public void onReactContextInitialized(ReactContext reactContext) {\n reactInstanceManager.removeReactInstanceEventListener(this);\n@@ -66,4 +72,4 @@ public class ReactNativeFlipper {\n }\n }\n }\n-}\n\\ No newline at end of file\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\nindex 0cad655b33..34a7ca8314 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n@@ -1,4 +1,4 @@\n-\n+\n \n \n \n@@ -18,7 +18,7 @@\n \n \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\nindex 576e23db45..176fbf6a2a 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n@@ -5,7 +5,8 @@ import android.os.Bundle;\n \n import com.facebook.react.ReactActivity;\n import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactActivityDelegate;\n \n import expo.modules.ReactActivityDelegateWrapper;\n \n@@ -28,11 +29,18 @@ public class MainActivity extends ReactActivity {\n return \"main\";\n }\n \n+ /**\n+ * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link\n+ * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React\n+ * (aka React 18) with two boolean flags.\n+ */\n @Override\n protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this,\n- new ReactActivityDelegate(this, getMainComponentName())\n- );\n+ return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate(\n+ this,\n+ getMainComponentName(),\n+ // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n+ DefaultNewArchitectureEntryPoint.getFabricEnabled()));\n }\n \n /**\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\nindex 7deb688b07..8502c4402d 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n@@ -1,69 +1,74 @@\n package com.helloworld;\n \n import android.app.Application;\n-import android.content.Context;\n import android.content.res.Configuration;\n import androidx.annotation.NonNull;\n \n import com.facebook.react.PackageList;\n import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.ReactNativeHost;\n import com.facebook.react.ReactPackage;\n import com.facebook.react.config.ReactFeatureFlags;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactNativeHost;\n import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n \n import expo.modules.ApplicationLifecycleDispatcher;\n import expo.modules.ReactNativeHostWrapper;\n \n-import java.lang.reflect.InvocationTargetException;\n import java.util.List;\n \n public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n \n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n+ private final ReactNativeHost mReactNativeHost =\n+ new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) {\n+ @Override\n+ public boolean getUseDeveloperSupport() {\n+ return BuildConfig.DEBUG;\n+ }\n \n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n+ @Override\n+ protected List getPackages() {\n+ @SuppressWarnings(\"UnnecessaryLocalVariable\")\n+ List packages = new PackageList(this).getPackages();\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return packages;\n+ }\n \n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n+ @Override\n+ protected String getJSMainModuleName() {\n+ return \".expo/.virtual-metro-entry\";\n+ }\n+\n+ @Override\n+ protected boolean isNewArchEnabled() {\n+ return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n+ }\n+\n+ @Override\n+ protected Boolean isHermesEnabled() {\n+ return BuildConfig.IS_HERMES_ENABLED;\n+ }\n+ });\n \n @Override\n public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n+ return mReactNativeHost;\n }\n \n @Override\n public void onCreate() {\n super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false;\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ DefaultNewArchitectureEntryPoint.load();\n+ }\n+ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n ApplicationLifecycleDispatcher.onApplicationCreate(this);\n }\n \n@@ -72,35 +77,4 @@ public class MainApplication extends Application implements ReactApplication {\n super.onConfigurationChanged(newConfig);\n ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex f555e36448..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,116 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- new EmptyReactNativeConfig(),\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex 0ae6366756..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,49 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source \n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_futures \\\n- libfolly_json \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,7 +18,7 @@\n \n \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\nindex 8e13797d9b..176fbf6a2a 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n@@ -5,7 +5,8 @@ import android.os.Bundle;\n \n import com.facebook.react.ReactActivity;\n import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactActivityDelegate;\n \n import expo.modules.ReactActivityDelegateWrapper;\n \n@@ -29,15 +30,17 @@ public class MainActivity extends ReactActivity {\n }\n \n /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n+ * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link\n+ * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React\n+ * (aka React 18) with two boolean flags.\n */\n @Override\n protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n+ return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate(\n+ this,\n+ getMainComponentName(),\n+ // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n+ DefaultNewArchitectureEntryPoint.getFabricEnabled()));\n }\n \n /**\n@@ -59,25 +62,4 @@ public class MainActivity extends ReactActivity {\n // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n super.invokeDefaultOnBackPressed();\n }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\nindex 7deb688b07..8502c4402d 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n@@ -1,69 +1,74 @@\n package com.helloworld;\n \n import android.app.Application;\n-import android.content.Context;\n import android.content.res.Configuration;\n import androidx.annotation.NonNull;\n \n import com.facebook.react.PackageList;\n import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.ReactNativeHost;\n import com.facebook.react.ReactPackage;\n import com.facebook.react.config.ReactFeatureFlags;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactNativeHost;\n import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n \n import expo.modules.ApplicationLifecycleDispatcher;\n import expo.modules.ReactNativeHostWrapper;\n \n-import java.lang.reflect.InvocationTargetException;\n import java.util.List;\n \n public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n \n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n+ private final ReactNativeHost mReactNativeHost =\n+ new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) {\n+ @Override\n+ public boolean getUseDeveloperSupport() {\n+ return BuildConfig.DEBUG;\n+ }\n \n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n+ @Override\n+ protected List getPackages() {\n+ @SuppressWarnings(\"UnnecessaryLocalVariable\")\n+ List packages = new PackageList(this).getPackages();\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return packages;\n+ }\n \n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n+ @Override\n+ protected String getJSMainModuleName() {\n+ return \".expo/.virtual-metro-entry\";\n+ }\n+\n+ @Override\n+ protected boolean isNewArchEnabled() {\n+ return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n+ }\n+\n+ @Override\n+ protected Boolean isHermesEnabled() {\n+ return BuildConfig.IS_HERMES_ENABLED;\n+ }\n+ });\n \n @Override\n public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n+ return mReactNativeHost;\n }\n \n @Override\n public void onCreate() {\n super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false;\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ DefaultNewArchitectureEntryPoint.load();\n+ }\n+ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n ApplicationLifecycleDispatcher.onApplicationCreate(this);\n }\n \n@@ -72,35 +77,4 @@ public class MainApplication extends Application implements ReactApplication {\n super.onConfigurationChanged(newConfig);\n ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex cda1391225..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source\n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_runtime \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,7 +18,7 @@\n \n \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\nindex 8e13797d9b..176fbf6a2a 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n@@ -5,7 +5,8 @@ import android.os.Bundle;\n \n import com.facebook.react.ReactActivity;\n import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactActivityDelegate;\n \n import expo.modules.ReactActivityDelegateWrapper;\n \n@@ -29,15 +30,17 @@ public class MainActivity extends ReactActivity {\n }\n \n /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n+ * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link\n+ * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React\n+ * (aka React 18) with two boolean flags.\n */\n @Override\n protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n+ return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate(\n+ this,\n+ getMainComponentName(),\n+ // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n+ DefaultNewArchitectureEntryPoint.getFabricEnabled()));\n }\n \n /**\n@@ -59,25 +62,4 @@ public class MainActivity extends ReactActivity {\n // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n super.invokeDefaultOnBackPressed();\n }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\nindex 7deb688b07..8502c4402d 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n@@ -1,69 +1,74 @@\n package com.helloworld;\n \n import android.app.Application;\n-import android.content.Context;\n import android.content.res.Configuration;\n import androidx.annotation.NonNull;\n \n import com.facebook.react.PackageList;\n import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.ReactNativeHost;\n import com.facebook.react.ReactPackage;\n import com.facebook.react.config.ReactFeatureFlags;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactNativeHost;\n import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n \n import expo.modules.ApplicationLifecycleDispatcher;\n import expo.modules.ReactNativeHostWrapper;\n \n-import java.lang.reflect.InvocationTargetException;\n import java.util.List;\n \n public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n \n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n+ private final ReactNativeHost mReactNativeHost =\n+ new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) {\n+ @Override\n+ public boolean getUseDeveloperSupport() {\n+ return BuildConfig.DEBUG;\n+ }\n \n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n+ @Override\n+ protected List getPackages() {\n+ @SuppressWarnings(\"UnnecessaryLocalVariable\")\n+ List packages = new PackageList(this).getPackages();\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return packages;\n+ }\n \n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n+ @Override\n+ protected String getJSMainModuleName() {\n+ return \".expo/.virtual-metro-entry\";\n+ }\n+\n+ @Override\n+ protected boolean isNewArchEnabled() {\n+ return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n+ }\n+\n+ @Override\n+ protected Boolean isHermesEnabled() {\n+ return BuildConfig.IS_HERMES_ENABLED;\n+ }\n+ });\n \n @Override\n public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n+ return mReactNativeHost;\n }\n \n @Override\n public void onCreate() {\n super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false;\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ DefaultNewArchitectureEntryPoint.load();\n+ }\n+ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n ApplicationLifecycleDispatcher.onApplicationCreate(this);\n }\n \n@@ -72,35 +77,4 @@ public class MainApplication extends Application implements ReactApplication {\n super.onConfigurationChanged(newConfig);\n ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt b/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\ndeleted file mode 100644\nindex d2cad3a326..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-cmake_minimum_required(VERSION 3.13)\n-\n-# Define the library name here.\n-project(helloworld_appmodules)\n-\n-# This file includes all the necessary to let you build your application with the New Architecture.\n-include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 26162dd872..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n-\n- // Module providers autolinked by RN CLI\n- auto rncli_module = rncli_ModuleProvider(moduleName, params);\n- if (rncli_module != nullptr) {\n- return rncli_module;\n- }\n-\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex b38ccf53fd..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex 5fd688c509..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- const std::string &name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 9ee38a81f6..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(const std::string &name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 54f598a486..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,65 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Autolinked providers registered by RN CLI\n- rncli_registerProviders(providerRegistry);\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,7 +18,7 @@\n \n \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\ndeleted file mode 100644\nindex 576e23db45..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ /dev/null\n@@ -1,57 +0,0 @@\n-package com.helloworld;\n-\n-import android.os.Build;\n-import android.os.Bundle;\n-\n-import com.facebook.react.ReactActivity;\n-import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n-\n-import expo.modules.ReactActivityDelegateWrapper;\n-\n-public class MainActivity extends ReactActivity {\n- @Override\n- protected void onCreate(Bundle savedInstanceState) {\n- // Set the theme to AppTheme BEFORE onCreate to support \n- // coloring the background, status bar, and navigation bar.\n- // This is required for expo-splash-screen.\n- setTheme(R.style.AppTheme);\n- super.onCreate(null);\n- }\n-\n- /**\n- * Returns the name of the main component registered from JavaScript.\n- * This is used to schedule rendering of the component.\n- */\n- @Override\n- protected String getMainComponentName() {\n- return \"main\";\n- }\n-\n- @Override\n- protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this,\n- new ReactActivityDelegate(this, getMainComponentName())\n- );\n- }\n-\n- /**\n- * Align the back button behavior with Android S\n- * where moving root activities to background instead of finishing activities.\n- * @see onBackPressed\n- */\n- @Override\n- public void invokeDefaultOnBackPressed() {\n- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n- if (!moveTaskToBack(false)) {\n- // For non-root activities, use the default implementation to finish them.\n- super.invokeDefaultOnBackPressed();\n- }\n- return;\n- }\n-\n- // Use the default back button implementation on Android S\n- // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n- super.invokeDefaultOnBackPressed();\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\nnew file mode 100644\nindex 0000000000..c4467326aa\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\n@@ -0,0 +1,61 @@\n+package com.helloworld\n+\n+import android.os.Build\n+import android.os.Bundle\n+\n+import com.facebook.react.ReactActivity\n+import com.facebook.react.ReactActivityDelegate\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled\n+import com.facebook.react.defaults.DefaultReactActivityDelegate\n+\n+import expo.modules.ReactActivityDelegateWrapper\n+\n+class MainActivity : ReactActivity() {\n+ override fun onCreate(savedInstanceState: Bundle?) {\n+ // Set the theme to AppTheme BEFORE onCreate to support\n+ // coloring the background, status bar, and navigation bar.\n+ // This is required for expo-splash-screen.\n+ setTheme(R.style.AppTheme);\n+ super.onCreate(null)\n+ }\n+\n+ /**\n+ * Returns the name of the main component registered from JavaScript. This is used to schedule\n+ * rendering of the component.\n+ */\n+ override fun getMainComponentName(): String = \"main\"\n+\n+ /**\n+ * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]\n+ * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]\n+ */\n+ override fun createReactActivityDelegate(): ReactActivityDelegate {\n+ return ReactActivityDelegateWrapper(\n+ this,\n+ BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n+ object : DefaultReactActivityDelegate(\n+ this,\n+ mainComponentName,\n+ fabricEnabled\n+ ){})\n+ }\n+\n+ /**\n+ * Align the back button behavior with Android S\n+ * where moving root activities to background instead of finishing activities.\n+ * @see onBackPressed\n+ */\n+ override fun invokeDefaultOnBackPressed() {\n+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n+ if (!moveTaskToBack(false)) {\n+ // For non-root activities, use the default implementation to finish them.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+ return\n+ }\n+\n+ // Use the default back button implementation on Android S\n+ // because it's doing more than [Activity.moveTaskToBack] in fact.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\ndeleted file mode 100644\nindex 7deb688b07..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ /dev/null\n@@ -1,106 +0,0 @@\n-package com.helloworld;\n-\n-import android.app.Application;\n-import android.content.Context;\n-import android.content.res.Configuration;\n-import androidx.annotation.NonNull;\n-\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n-import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n-\n-import expo.modules.ApplicationLifecycleDispatcher;\n-import expo.modules.ReactNativeHostWrapper;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.List;\n-\n-public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n-\n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n-\n- @Override\n- public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n- }\n-\n- @Override\n- public void onCreate() {\n- super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- ApplicationLifecycleDispatcher.onApplicationCreate(this);\n- }\n-\n- @Override\n- public void onConfigurationChanged(@NonNull Configuration newConfig) {\n- super.onConfigurationChanged(newConfig);\n- ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n- }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\nnew file mode 100644\nindex 0000000000..dd90f54e04\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,63 @@\n+package com.helloworld\n+\n+import android.app.Application\n+import android.content.res.Configuration\n+import androidx.annotation.NonNull\n+\n+import com.facebook.react.PackageList\n+import com.facebook.react.ReactApplication\n+import com.facebook.react.ReactNativeHost\n+import com.facebook.react.ReactPackage\n+import com.facebook.react.ReactHost\n+import com.facebook.react.config.ReactFeatureFlags\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\n+import com.facebook.react.flipper.ReactNativeFlipper\n+import com.facebook.soloader.SoLoader\n+\n+import expo.modules.ApplicationLifecycleDispatcher\n+import expo.modules.ReactNativeHostWrapper\n+\n+class MainApplication : Application(), ReactApplication {\n+\n+ override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(\n+ this,\n+ object : DefaultReactNativeHost(this) {\n+ override fun getPackages(): List {\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return PackageList(this).packages\n+ }\n+\n+ override fun getJSMainModuleName(): String = \".expo/.virtual-metro-entry\"\n+\n+ override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n+\n+ override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n+ override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n+ }\n+ )\n+\n+ override val reactHost: ReactHost\n+ get() = getDefaultReactHost(this.applicationContext, reactNativeHost)\n+\n+ override fun onCreate() {\n+ super.onCreate()\n+ SoLoader.init(this, false)\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ load()\n+ }\n+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager)\n+ ApplicationLifecycleDispatcher.onApplicationCreate(this)\n+ }\n+\n+ override fun onConfigurationChanged(newConfig: Configuration) {\n+ super.onConfigurationChanged(newConfig)\n+ ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex f555e36448..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,116 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- new EmptyReactNativeConfig(),\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex 0ae6366756..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,49 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source \n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_futures \\\n- libfolly_json \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,7 +18,7 @@\n \n \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\ndeleted file mode 100644\nindex 8e13797d9b..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ /dev/null\n@@ -1,83 +0,0 @@\n-package com.helloworld;\n-\n-import android.os.Build;\n-import android.os.Bundle;\n-\n-import com.facebook.react.ReactActivity;\n-import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n-\n-import expo.modules.ReactActivityDelegateWrapper;\n-\n-public class MainActivity extends ReactActivity {\n- @Override\n- protected void onCreate(Bundle savedInstanceState) {\n- // Set the theme to AppTheme BEFORE onCreate to support \n- // coloring the background, status bar, and navigation bar.\n- // This is required for expo-splash-screen.\n- setTheme(R.style.AppTheme);\n- super.onCreate(null);\n- }\n-\n- /**\n- * Returns the name of the main component registered from JavaScript.\n- * This is used to schedule rendering of the component.\n- */\n- @Override\n- protected String getMainComponentName() {\n- return \"main\";\n- }\n-\n- /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n- */\n- @Override\n- protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n- }\n-\n- /**\n- * Align the back button behavior with Android S\n- * where moving root activities to background instead of finishing activities.\n- * @see onBackPressed\n- */\n- @Override\n- public void invokeDefaultOnBackPressed() {\n- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n- if (!moveTaskToBack(false)) {\n- // For non-root activities, use the default implementation to finish them.\n- super.invokeDefaultOnBackPressed();\n- }\n- return;\n- }\n-\n- // Use the default back button implementation on Android S\n- // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n- super.invokeDefaultOnBackPressed();\n- }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\nnew file mode 100644\nindex 0000000000..c4467326aa\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\n@@ -0,0 +1,61 @@\n+package com.helloworld\n+\n+import android.os.Build\n+import android.os.Bundle\n+\n+import com.facebook.react.ReactActivity\n+import com.facebook.react.ReactActivityDelegate\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled\n+import com.facebook.react.defaults.DefaultReactActivityDelegate\n+\n+import expo.modules.ReactActivityDelegateWrapper\n+\n+class MainActivity : ReactActivity() {\n+ override fun onCreate(savedInstanceState: Bundle?) {\n+ // Set the theme to AppTheme BEFORE onCreate to support\n+ // coloring the background, status bar, and navigation bar.\n+ // This is required for expo-splash-screen.\n+ setTheme(R.style.AppTheme);\n+ super.onCreate(null)\n+ }\n+\n+ /**\n+ * Returns the name of the main component registered from JavaScript. This is used to schedule\n+ * rendering of the component.\n+ */\n+ override fun getMainComponentName(): String = \"main\"\n+\n+ /**\n+ * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]\n+ * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]\n+ */\n+ override fun createReactActivityDelegate(): ReactActivityDelegate {\n+ return ReactActivityDelegateWrapper(\n+ this,\n+ BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n+ object : DefaultReactActivityDelegate(\n+ this,\n+ mainComponentName,\n+ fabricEnabled\n+ ){})\n+ }\n+\n+ /**\n+ * Align the back button behavior with Android S\n+ * where moving root activities to background instead of finishing activities.\n+ * @see onBackPressed\n+ */\n+ override fun invokeDefaultOnBackPressed() {\n+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n+ if (!moveTaskToBack(false)) {\n+ // For non-root activities, use the default implementation to finish them.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+ return\n+ }\n+\n+ // Use the default back button implementation on Android S\n+ // because it's doing more than [Activity.moveTaskToBack] in fact.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\ndeleted file mode 100644\nindex 7deb688b07..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ /dev/null\n@@ -1,106 +0,0 @@\n-package com.helloworld;\n-\n-import android.app.Application;\n-import android.content.Context;\n-import android.content.res.Configuration;\n-import androidx.annotation.NonNull;\n-\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n-import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n-\n-import expo.modules.ApplicationLifecycleDispatcher;\n-import expo.modules.ReactNativeHostWrapper;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.List;\n-\n-public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n-\n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n-\n- @Override\n- public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n- }\n-\n- @Override\n- public void onCreate() {\n- super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- ApplicationLifecycleDispatcher.onApplicationCreate(this);\n- }\n-\n- @Override\n- public void onConfigurationChanged(@NonNull Configuration newConfig) {\n- super.onConfigurationChanged(newConfig);\n- ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n- }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\nnew file mode 100644\nindex 0000000000..dd90f54e04\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,63 @@\n+package com.helloworld\n+\n+import android.app.Application\n+import android.content.res.Configuration\n+import androidx.annotation.NonNull\n+\n+import com.facebook.react.PackageList\n+import com.facebook.react.ReactApplication\n+import com.facebook.react.ReactNativeHost\n+import com.facebook.react.ReactPackage\n+import com.facebook.react.ReactHost\n+import com.facebook.react.config.ReactFeatureFlags\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\n+import com.facebook.react.flipper.ReactNativeFlipper\n+import com.facebook.soloader.SoLoader\n+\n+import expo.modules.ApplicationLifecycleDispatcher\n+import expo.modules.ReactNativeHostWrapper\n+\n+class MainApplication : Application(), ReactApplication {\n+\n+ override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(\n+ this,\n+ object : DefaultReactNativeHost(this) {\n+ override fun getPackages(): List {\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return PackageList(this).packages\n+ }\n+\n+ override fun getJSMainModuleName(): String = \".expo/.virtual-metro-entry\"\n+\n+ override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n+\n+ override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n+ override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n+ }\n+ )\n+\n+ override val reactHost: ReactHost\n+ get() = getDefaultReactHost(this.applicationContext, reactNativeHost)\n+\n+ override fun onCreate() {\n+ super.onCreate()\n+ SoLoader.init(this, false)\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ load()\n+ }\n+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager)\n+ ApplicationLifecycleDispatcher.onApplicationCreate(this)\n+ }\n+\n+ override fun onConfigurationChanged(newConfig: Configuration) {\n+ super.onConfigurationChanged(newConfig)\n+ ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex cda1391225..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source\n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_runtime \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,7 +18,7 @@\n \n \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\ndeleted file mode 100644\nindex 8e13797d9b..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ /dev/null\n@@ -1,83 +0,0 @@\n-package com.helloworld;\n-\n-import android.os.Build;\n-import android.os.Bundle;\n-\n-import com.facebook.react.ReactActivity;\n-import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n-\n-import expo.modules.ReactActivityDelegateWrapper;\n-\n-public class MainActivity extends ReactActivity {\n- @Override\n- protected void onCreate(Bundle savedInstanceState) {\n- // Set the theme to AppTheme BEFORE onCreate to support \n- // coloring the background, status bar, and navigation bar.\n- // This is required for expo-splash-screen.\n- setTheme(R.style.AppTheme);\n- super.onCreate(null);\n- }\n-\n- /**\n- * Returns the name of the main component registered from JavaScript.\n- * This is used to schedule rendering of the component.\n- */\n- @Override\n- protected String getMainComponentName() {\n- return \"main\";\n- }\n-\n- /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n- */\n- @Override\n- protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n- }\n-\n- /**\n- * Align the back button behavior with Android S\n- * where moving root activities to background instead of finishing activities.\n- * @see onBackPressed\n- */\n- @Override\n- public void invokeDefaultOnBackPressed() {\n- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n- if (!moveTaskToBack(false)) {\n- // For non-root activities, use the default implementation to finish them.\n- super.invokeDefaultOnBackPressed();\n- }\n- return;\n- }\n-\n- // Use the default back button implementation on Android S\n- // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n- super.invokeDefaultOnBackPressed();\n- }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\nnew file mode 100644\nindex 0000000000..c4467326aa\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\n@@ -0,0 +1,61 @@\n+package com.helloworld\n+\n+import android.os.Build\n+import android.os.Bundle\n+\n+import com.facebook.react.ReactActivity\n+import com.facebook.react.ReactActivityDelegate\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled\n+import com.facebook.react.defaults.DefaultReactActivityDelegate\n+\n+import expo.modules.ReactActivityDelegateWrapper\n+\n+class MainActivity : ReactActivity() {\n+ override fun onCreate(savedInstanceState: Bundle?) {\n+ // Set the theme to AppTheme BEFORE onCreate to support\n+ // coloring the background, status bar, and navigation bar.\n+ // This is required for expo-splash-screen.\n+ setTheme(R.style.AppTheme);\n+ super.onCreate(null)\n+ }\n+\n+ /**\n+ * Returns the name of the main component registered from JavaScript. This is used to schedule\n+ * rendering of the component.\n+ */\n+ override fun getMainComponentName(): String = \"main\"\n+\n+ /**\n+ * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]\n+ * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]\n+ */\n+ override fun createReactActivityDelegate(): ReactActivityDelegate {\n+ return ReactActivityDelegateWrapper(\n+ this,\n+ BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n+ object : DefaultReactActivityDelegate(\n+ this,\n+ mainComponentName,\n+ fabricEnabled\n+ ){})\n+ }\n+\n+ /**\n+ * Align the back button behavior with Android S\n+ * where moving root activities to background instead of finishing activities.\n+ * @see onBackPressed\n+ */\n+ override fun invokeDefaultOnBackPressed() {\n+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n+ if (!moveTaskToBack(false)) {\n+ // For non-root activities, use the default implementation to finish them.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+ return\n+ }\n+\n+ // Use the default back button implementation on Android S\n+ // because it's doing more than [Activity.moveTaskToBack] in fact.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\ndeleted file mode 100644\nindex 7deb688b07..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ /dev/null\n@@ -1,106 +0,0 @@\n-package com.helloworld;\n-\n-import android.app.Application;\n-import android.content.Context;\n-import android.content.res.Configuration;\n-import androidx.annotation.NonNull;\n-\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n-import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n-\n-import expo.modules.ApplicationLifecycleDispatcher;\n-import expo.modules.ReactNativeHostWrapper;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.List;\n-\n-public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n-\n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n-\n- @Override\n- public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n- }\n-\n- @Override\n- public void onCreate() {\n- super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- ApplicationLifecycleDispatcher.onApplicationCreate(this);\n- }\n-\n- @Override\n- public void onConfigurationChanged(@NonNull Configuration newConfig) {\n- super.onConfigurationChanged(newConfig);\n- ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n- }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\nnew file mode 100644\nindex 0000000000..dd90f54e04\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,63 @@\n+package com.helloworld\n+\n+import android.app.Application\n+import android.content.res.Configuration\n+import androidx.annotation.NonNull\n+\n+import com.facebook.react.PackageList\n+import com.facebook.react.ReactApplication\n+import com.facebook.react.ReactNativeHost\n+import com.facebook.react.ReactPackage\n+import com.facebook.react.ReactHost\n+import com.facebook.react.config.ReactFeatureFlags\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\n+import com.facebook.react.flipper.ReactNativeFlipper\n+import com.facebook.soloader.SoLoader\n+\n+import expo.modules.ApplicationLifecycleDispatcher\n+import expo.modules.ReactNativeHostWrapper\n+\n+class MainApplication : Application(), ReactApplication {\n+\n+ override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(\n+ this,\n+ object : DefaultReactNativeHost(this) {\n+ override fun getPackages(): List {\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return PackageList(this).packages\n+ }\n+\n+ override fun getJSMainModuleName(): String = \".expo/.virtual-metro-entry\"\n+\n+ override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n+\n+ override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n+ override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n+ }\n+ )\n+\n+ override val reactHost: ReactHost\n+ get() = getDefaultReactHost(this.applicationContext, reactNativeHost)\n+\n+ override fun onCreate() {\n+ super.onCreate()\n+ SoLoader.init(this, false)\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ load()\n+ }\n+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager)\n+ ApplicationLifecycleDispatcher.onApplicationCreate(this)\n+ }\n+\n+ override fun onConfigurationChanged(newConfig: Configuration) {\n+ super.onConfigurationChanged(newConfig)\n+ ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt b/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\ndeleted file mode 100644\nindex d2cad3a326..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-cmake_minimum_required(VERSION 3.13)\n-\n-# Define the library name here.\n-project(helloworld_appmodules)\n-\n-# This file includes all the necessary to let you build your application with the New Architecture.\n-include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 26162dd872..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n-\n- // Module providers autolinked by RN CLI\n- auto rncli_module = rncli_ModuleProvider(moduleName, params);\n- if (rncli_module != nullptr) {\n- return rncli_module;\n- }\n-\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex b38ccf53fd..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex 5fd688c509..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- const std::string &name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 9ee38a81f6..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(const std::string &name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 54f598a486..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,65 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Autolinked providers registered by RN CLI\n- rncli_registerProviders(providerRegistry);\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,7 +18,7 @@\n \n \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\ndeleted file mode 100644\nindex 576e23db45..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ /dev/null\n@@ -1,57 +0,0 @@\n-package com.helloworld;\n-\n-import android.os.Build;\n-import android.os.Bundle;\n-\n-import com.facebook.react.ReactActivity;\n-import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n-\n-import expo.modules.ReactActivityDelegateWrapper;\n-\n-public class MainActivity extends ReactActivity {\n- @Override\n- protected void onCreate(Bundle savedInstanceState) {\n- // Set the theme to AppTheme BEFORE onCreate to support \n- // coloring the background, status bar, and navigation bar.\n- // This is required for expo-splash-screen.\n- setTheme(R.style.AppTheme);\n- super.onCreate(null);\n- }\n-\n- /**\n- * Returns the name of the main component registered from JavaScript.\n- * This is used to schedule rendering of the component.\n- */\n- @Override\n- protected String getMainComponentName() {\n- return \"main\";\n- }\n-\n- @Override\n- protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this,\n- new ReactActivityDelegate(this, getMainComponentName())\n- );\n- }\n-\n- /**\n- * Align the back button behavior with Android S\n- * where moving root activities to background instead of finishing activities.\n- * @see onBackPressed\n- */\n- @Override\n- public void invokeDefaultOnBackPressed() {\n- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n- if (!moveTaskToBack(false)) {\n- // For non-root activities, use the default implementation to finish them.\n- super.invokeDefaultOnBackPressed();\n- }\n- return;\n- }\n-\n- // Use the default back button implementation on Android S\n- // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n- super.invokeDefaultOnBackPressed();\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\nnew file mode 100644\nindex 0000000000..c4467326aa\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\n@@ -0,0 +1,61 @@\n+package com.helloworld\n+\n+import android.os.Build\n+import android.os.Bundle\n+\n+import com.facebook.react.ReactActivity\n+import com.facebook.react.ReactActivityDelegate\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled\n+import com.facebook.react.defaults.DefaultReactActivityDelegate\n+\n+import expo.modules.ReactActivityDelegateWrapper\n+\n+class MainActivity : ReactActivity() {\n+ override fun onCreate(savedInstanceState: Bundle?) {\n+ // Set the theme to AppTheme BEFORE onCreate to support\n+ // coloring the background, status bar, and navigation bar.\n+ // This is required for expo-splash-screen.\n+ setTheme(R.style.AppTheme);\n+ super.onCreate(null)\n+ }\n+\n+ /**\n+ * Returns the name of the main component registered from JavaScript. This is used to schedule\n+ * rendering of the component.\n+ */\n+ override fun getMainComponentName(): String = \"main\"\n+\n+ /**\n+ * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]\n+ * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]\n+ */\n+ override fun createReactActivityDelegate(): ReactActivityDelegate {\n+ return ReactActivityDelegateWrapper(\n+ this,\n+ BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n+ object : DefaultReactActivityDelegate(\n+ this,\n+ mainComponentName,\n+ fabricEnabled\n+ ){})\n+ }\n+\n+ /**\n+ * Align the back button behavior with Android S\n+ * where moving root activities to background instead of finishing activities.\n+ * @see onBackPressed\n+ */\n+ override fun invokeDefaultOnBackPressed() {\n+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n+ if (!moveTaskToBack(false)) {\n+ // For non-root activities, use the default implementation to finish them.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+ return\n+ }\n+\n+ // Use the default back button implementation on Android S\n+ // because it's doing more than [Activity.moveTaskToBack] in fact.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\ndeleted file mode 100644\nindex 7deb688b07..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ /dev/null\n@@ -1,106 +0,0 @@\n-package com.helloworld;\n-\n-import android.app.Application;\n-import android.content.Context;\n-import android.content.res.Configuration;\n-import androidx.annotation.NonNull;\n-\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n-import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n-\n-import expo.modules.ApplicationLifecycleDispatcher;\n-import expo.modules.ReactNativeHostWrapper;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.List;\n-\n-public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n-\n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n-\n- @Override\n- public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n- }\n-\n- @Override\n- public void onCreate() {\n- super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- ApplicationLifecycleDispatcher.onApplicationCreate(this);\n- }\n-\n- @Override\n- public void onConfigurationChanged(@NonNull Configuration newConfig) {\n- super.onConfigurationChanged(newConfig);\n- ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n- }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\nnew file mode 100644\nindex 0000000000..dd90f54e04\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,63 @@\n+package com.helloworld\n+\n+import android.app.Application\n+import android.content.res.Configuration\n+import androidx.annotation.NonNull\n+\n+import com.facebook.react.PackageList\n+import com.facebook.react.ReactApplication\n+import com.facebook.react.ReactNativeHost\n+import com.facebook.react.ReactPackage\n+import com.facebook.react.ReactHost\n+import com.facebook.react.config.ReactFeatureFlags\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\n+import com.facebook.react.flipper.ReactNativeFlipper\n+import com.facebook.soloader.SoLoader\n+\n+import expo.modules.ApplicationLifecycleDispatcher\n+import expo.modules.ReactNativeHostWrapper\n+\n+class MainApplication : Application(), ReactApplication {\n+\n+ override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(\n+ this,\n+ object : DefaultReactNativeHost(this) {\n+ override fun getPackages(): List {\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return PackageList(this).packages\n+ }\n+\n+ override fun getJSMainModuleName(): String = \".expo/.virtual-metro-entry\"\n+\n+ override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n+\n+ override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n+ override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n+ }\n+ )\n+\n+ override val reactHost: ReactHost\n+ get() = getDefaultReactHost(this.applicationContext, reactNativeHost)\n+\n+ override fun onCreate() {\n+ super.onCreate()\n+ SoLoader.init(this, false)\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ load()\n+ }\n+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager)\n+ ApplicationLifecycleDispatcher.onApplicationCreate(this)\n+ }\n+\n+ override fun onConfigurationChanged(newConfig: Configuration) {\n+ super.onConfigurationChanged(newConfig)\n+ ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex f555e36448..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,116 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- new EmptyReactNativeConfig(),\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex 0ae6366756..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,49 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source \n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_futures \\\n- libfolly_json \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,7 +18,7 @@\n \n \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\ndeleted file mode 100644\nindex 8e13797d9b..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ /dev/null\n@@ -1,83 +0,0 @@\n-package com.helloworld;\n-\n-import android.os.Build;\n-import android.os.Bundle;\n-\n-import com.facebook.react.ReactActivity;\n-import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n-\n-import expo.modules.ReactActivityDelegateWrapper;\n-\n-public class MainActivity extends ReactActivity {\n- @Override\n- protected void onCreate(Bundle savedInstanceState) {\n- // Set the theme to AppTheme BEFORE onCreate to support \n- // coloring the background, status bar, and navigation bar.\n- // This is required for expo-splash-screen.\n- setTheme(R.style.AppTheme);\n- super.onCreate(null);\n- }\n-\n- /**\n- * Returns the name of the main component registered from JavaScript.\n- * This is used to schedule rendering of the component.\n- */\n- @Override\n- protected String getMainComponentName() {\n- return \"main\";\n- }\n-\n- /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n- */\n- @Override\n- protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n- }\n-\n- /**\n- * Align the back button behavior with Android S\n- * where moving root activities to background instead of finishing activities.\n- * @see onBackPressed\n- */\n- @Override\n- public void invokeDefaultOnBackPressed() {\n- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n- if (!moveTaskToBack(false)) {\n- // For non-root activities, use the default implementation to finish them.\n- super.invokeDefaultOnBackPressed();\n- }\n- return;\n- }\n-\n- // Use the default back button implementation on Android S\n- // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n- super.invokeDefaultOnBackPressed();\n- }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\nnew file mode 100644\nindex 0000000000..c4467326aa\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\n@@ -0,0 +1,61 @@\n+package com.helloworld\n+\n+import android.os.Build\n+import android.os.Bundle\n+\n+import com.facebook.react.ReactActivity\n+import com.facebook.react.ReactActivityDelegate\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled\n+import com.facebook.react.defaults.DefaultReactActivityDelegate\n+\n+import expo.modules.ReactActivityDelegateWrapper\n+\n+class MainActivity : ReactActivity() {\n+ override fun onCreate(savedInstanceState: Bundle?) {\n+ // Set the theme to AppTheme BEFORE onCreate to support\n+ // coloring the background, status bar, and navigation bar.\n+ // This is required for expo-splash-screen.\n+ setTheme(R.style.AppTheme);\n+ super.onCreate(null)\n+ }\n+\n+ /**\n+ * Returns the name of the main component registered from JavaScript. This is used to schedule\n+ * rendering of the component.\n+ */\n+ override fun getMainComponentName(): String = \"main\"\n+\n+ /**\n+ * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]\n+ * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]\n+ */\n+ override fun createReactActivityDelegate(): ReactActivityDelegate {\n+ return ReactActivityDelegateWrapper(\n+ this,\n+ BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n+ object : DefaultReactActivityDelegate(\n+ this,\n+ mainComponentName,\n+ fabricEnabled\n+ ){})\n+ }\n+\n+ /**\n+ * Align the back button behavior with Android S\n+ * where moving root activities to background instead of finishing activities.\n+ * @see onBackPressed\n+ */\n+ override fun invokeDefaultOnBackPressed() {\n+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n+ if (!moveTaskToBack(false)) {\n+ // For non-root activities, use the default implementation to finish them.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+ return\n+ }\n+\n+ // Use the default back button implementation on Android S\n+ // because it's doing more than [Activity.moveTaskToBack] in fact.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\ndeleted file mode 100644\nindex 7deb688b07..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ /dev/null\n@@ -1,106 +0,0 @@\n-package com.helloworld;\n-\n-import android.app.Application;\n-import android.content.Context;\n-import android.content.res.Configuration;\n-import androidx.annotation.NonNull;\n-\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n-import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n-\n-import expo.modules.ApplicationLifecycleDispatcher;\n-import expo.modules.ReactNativeHostWrapper;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.List;\n-\n-public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n-\n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n-\n- @Override\n- public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n- }\n-\n- @Override\n- public void onCreate() {\n- super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- ApplicationLifecycleDispatcher.onApplicationCreate(this);\n- }\n-\n- @Override\n- public void onConfigurationChanged(@NonNull Configuration newConfig) {\n- super.onConfigurationChanged(newConfig);\n- ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n- }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\nnew file mode 100644\nindex 0000000000..dd90f54e04\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,63 @@\n+package com.helloworld\n+\n+import android.app.Application\n+import android.content.res.Configuration\n+import androidx.annotation.NonNull\n+\n+import com.facebook.react.PackageList\n+import com.facebook.react.ReactApplication\n+import com.facebook.react.ReactNativeHost\n+import com.facebook.react.ReactPackage\n+import com.facebook.react.ReactHost\n+import com.facebook.react.config.ReactFeatureFlags\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\n+import com.facebook.react.flipper.ReactNativeFlipper\n+import com.facebook.soloader.SoLoader\n+\n+import expo.modules.ApplicationLifecycleDispatcher\n+import expo.modules.ReactNativeHostWrapper\n+\n+class MainApplication : Application(), ReactApplication {\n+\n+ override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(\n+ this,\n+ object : DefaultReactNativeHost(this) {\n+ override fun getPackages(): List {\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return PackageList(this).packages\n+ }\n+\n+ override fun getJSMainModuleName(): String = \".expo/.virtual-metro-entry\"\n+\n+ override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n+\n+ override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n+ override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n+ }\n+ )\n+\n+ override val reactHost: ReactHost\n+ get() = getDefaultReactHost(this.applicationContext, reactNativeHost)\n+\n+ override fun onCreate() {\n+ super.onCreate()\n+ SoLoader.init(this, false)\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ load()\n+ }\n+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager)\n+ ApplicationLifecycleDispatcher.onApplicationCreate(this)\n+ }\n+\n+ override fun onConfigurationChanged(newConfig: Configuration) {\n+ super.onConfigurationChanged(newConfig)\n+ ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex cda1391225..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source\n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_runtime \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,7 +18,7 @@\n \n \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\ndeleted file mode 100644\nindex 8e13797d9b..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ /dev/null\n@@ -1,83 +0,0 @@\n-package com.helloworld;\n-\n-import android.os.Build;\n-import android.os.Bundle;\n-\n-import com.facebook.react.ReactActivity;\n-import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n-\n-import expo.modules.ReactActivityDelegateWrapper;\n-\n-public class MainActivity extends ReactActivity {\n- @Override\n- protected void onCreate(Bundle savedInstanceState) {\n- // Set the theme to AppTheme BEFORE onCreate to support \n- // coloring the background, status bar, and navigation bar.\n- // This is required for expo-splash-screen.\n- setTheme(R.style.AppTheme);\n- super.onCreate(null);\n- }\n-\n- /**\n- * Returns the name of the main component registered from JavaScript.\n- * This is used to schedule rendering of the component.\n- */\n- @Override\n- protected String getMainComponentName() {\n- return \"main\";\n- }\n-\n- /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n- */\n- @Override\n- protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n- }\n-\n- /**\n- * Align the back button behavior with Android S\n- * where moving root activities to background instead of finishing activities.\n- * @see onBackPressed\n- */\n- @Override\n- public void invokeDefaultOnBackPressed() {\n- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n- if (!moveTaskToBack(false)) {\n- // For non-root activities, use the default implementation to finish them.\n- super.invokeDefaultOnBackPressed();\n- }\n- return;\n- }\n-\n- // Use the default back button implementation on Android S\n- // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n- super.invokeDefaultOnBackPressed();\n- }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\nnew file mode 100644\nindex 0000000000..c4467326aa\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\n@@ -0,0 +1,61 @@\n+package com.helloworld\n+\n+import android.os.Build\n+import android.os.Bundle\n+\n+import com.facebook.react.ReactActivity\n+import com.facebook.react.ReactActivityDelegate\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled\n+import com.facebook.react.defaults.DefaultReactActivityDelegate\n+\n+import expo.modules.ReactActivityDelegateWrapper\n+\n+class MainActivity : ReactActivity() {\n+ override fun onCreate(savedInstanceState: Bundle?) {\n+ // Set the theme to AppTheme BEFORE onCreate to support\n+ // coloring the background, status bar, and navigation bar.\n+ // This is required for expo-splash-screen.\n+ setTheme(R.style.AppTheme);\n+ super.onCreate(null)\n+ }\n+\n+ /**\n+ * Returns the name of the main component registered from JavaScript. This is used to schedule\n+ * rendering of the component.\n+ */\n+ override fun getMainComponentName(): String = \"main\"\n+\n+ /**\n+ * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]\n+ * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]\n+ */\n+ override fun createReactActivityDelegate(): ReactActivityDelegate {\n+ return ReactActivityDelegateWrapper(\n+ this,\n+ BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n+ object : DefaultReactActivityDelegate(\n+ this,\n+ mainComponentName,\n+ fabricEnabled\n+ ){})\n+ }\n+\n+ /**\n+ * Align the back button behavior with Android S\n+ * where moving root activities to background instead of finishing activities.\n+ * @see onBackPressed\n+ */\n+ override fun invokeDefaultOnBackPressed() {\n+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n+ if (!moveTaskToBack(false)) {\n+ // For non-root activities, use the default implementation to finish them.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+ return\n+ }\n+\n+ // Use the default back button implementation on Android S\n+ // because it's doing more than [Activity.moveTaskToBack] in fact.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\ndeleted file mode 100644\nindex 7deb688b07..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ /dev/null\n@@ -1,106 +0,0 @@\n-package com.helloworld;\n-\n-import android.app.Application;\n-import android.content.Context;\n-import android.content.res.Configuration;\n-import androidx.annotation.NonNull;\n-\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n-import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n-\n-import expo.modules.ApplicationLifecycleDispatcher;\n-import expo.modules.ReactNativeHostWrapper;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.List;\n-\n-public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n-\n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n-\n- @Override\n- public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n- }\n-\n- @Override\n- public void onCreate() {\n- super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- ApplicationLifecycleDispatcher.onApplicationCreate(this);\n- }\n-\n- @Override\n- public void onConfigurationChanged(@NonNull Configuration newConfig) {\n- super.onConfigurationChanged(newConfig);\n- ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n- }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\nnew file mode 100644\nindex 0000000000..dd90f54e04\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,63 @@\n+package com.helloworld\n+\n+import android.app.Application\n+import android.content.res.Configuration\n+import androidx.annotation.NonNull\n+\n+import com.facebook.react.PackageList\n+import com.facebook.react.ReactApplication\n+import com.facebook.react.ReactNativeHost\n+import com.facebook.react.ReactPackage\n+import com.facebook.react.ReactHost\n+import com.facebook.react.config.ReactFeatureFlags\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\n+import com.facebook.react.flipper.ReactNativeFlipper\n+import com.facebook.soloader.SoLoader\n+\n+import expo.modules.ApplicationLifecycleDispatcher\n+import expo.modules.ReactNativeHostWrapper\n+\n+class MainApplication : Application(), ReactApplication {\n+\n+ override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(\n+ this,\n+ object : DefaultReactNativeHost(this) {\n+ override fun getPackages(): List {\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return PackageList(this).packages\n+ }\n+\n+ override fun getJSMainModuleName(): String = \".expo/.virtual-metro-entry\"\n+\n+ override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n+\n+ override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n+ override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n+ }\n+ )\n+\n+ override val reactHost: ReactHost\n+ get() = getDefaultReactHost(this.applicationContext, reactNativeHost)\n+\n+ override fun onCreate() {\n+ super.onCreate()\n+ SoLoader.init(this, false)\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ load()\n+ }\n+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager)\n+ ApplicationLifecycleDispatcher.onApplicationCreate(this)\n+ }\n+\n+ override fun onConfigurationChanged(newConfig: Configuration) {\n+ super.onConfigurationChanged(newConfig)\n+ ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt b/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\ndeleted file mode 100644\nindex d2cad3a326..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-cmake_minimum_required(VERSION 3.13)\n-\n-# Define the library name here.\n-project(helloworld_appmodules)\n-\n-# This file includes all the necessary to let you build your application with the New Architecture.\n-include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 26162dd872..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n-\n- // Module providers autolinked by RN CLI\n- auto rncli_module = rncli_ModuleProvider(moduleName, params);\n- if (rncli_module != nullptr) {\n- return rncli_module;\n- }\n-\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex b38ccf53fd..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex 5fd688c509..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- const std::string &name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 9ee38a81f6..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(const std::string &name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 54f598a486..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,65 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Autolinked providers registered by RN CLI\n- rncli_registerProviders(providerRegistry);\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\nindex 576e23db45..7e2823fb6c 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n@@ -5,7 +5,8 @@ import android.os.Bundle;\n \n import com.facebook.react.ReactActivity;\n import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactActivityDelegate;\n \n import expo.modules.ReactActivityDelegateWrapper;\n \n@@ -28,11 +29,21 @@ public class MainActivity extends ReactActivity {\n return \"main\";\n }\n \n+ /**\n+ * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link\n+ * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React\n+ * (aka React 18) with two boolean flags.\n+ */\n @Override\n protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this,\n- new ReactActivityDelegate(this, getMainComponentName())\n- );\n+ return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate(\n+ this,\n+ getMainComponentName(),\n+ // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n+ DefaultNewArchitectureEntryPoint.getFabricEnabled(), // fabricEnabled\n+ // If you opted-in for the New Architecture, we enable Concurrent React (i.e. React 18).\n+ DefaultNewArchitectureEntryPoint.getConcurrentReactEnabled() // concurrentRootEnabled\n+ ));\n }\n \n /**\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\nindex 7deb688b07..31c2b288c1 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n@@ -1,69 +1,70 @@\n package com.helloworld;\n \n import android.app.Application;\n-import android.content.Context;\n import android.content.res.Configuration;\n import androidx.annotation.NonNull;\n \n import com.facebook.react.PackageList;\n import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.ReactNativeHost;\n import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactNativeHost;\n import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n \n import expo.modules.ApplicationLifecycleDispatcher;\n import expo.modules.ReactNativeHostWrapper;\n \n-import java.lang.reflect.InvocationTargetException;\n import java.util.List;\n \n public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n \n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n+ private final ReactNativeHost mReactNativeHost =\n+ new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) {\n+ @Override\n+ public boolean getUseDeveloperSupport() {\n+ return BuildConfig.DEBUG;\n+ }\n \n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n+ @Override\n+ protected List getPackages() {\n+ @SuppressWarnings(\"UnnecessaryLocalVariable\")\n+ List packages = new PackageList(this).getPackages();\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return packages;\n+ }\n \n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n+ @Override\n+ protected String getJSMainModuleName() {\n+ return \"index\";\n+ }\n+\n+ @Override\n+ protected boolean isNewArchEnabled() {\n+ return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n+ }\n+\n+ @Override\n+ protected Boolean isHermesEnabled() {\n+ return BuildConfig.IS_HERMES_ENABLED;\n+ }\n+ });\n \n @Override\n public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n+ return mReactNativeHost;\n }\n \n @Override\n public void onCreate() {\n super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ DefaultNewArchitectureEntryPoint.load();\n+ }\n+ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n ApplicationLifecycleDispatcher.onApplicationCreate(this);\n }\n \n@@ -72,35 +73,4 @@ public class MainApplication extends Application implements ReactApplication {\n super.onConfigurationChanged(newConfig);\n ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex f555e36448..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,116 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- new EmptyReactNativeConfig(),\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex 0ae6366756..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,49 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source \n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_futures \\\n- libfolly_json \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java b/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java\nnew file mode 100644\nindex 0000000000..b510364404\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java\n@@ -0,0 +1,20 @@\n+/**\n+ * Copyright (c) Meta Platforms, Inc. and affiliates.\n+ *\n+ *

This source code is licensed under the MIT license found in the LICENSE file in the root\n+ * directory of this source tree.\n+ */\n+package com.helloworld;\n+\n+import android.content.Context;\n+import com.facebook.react.ReactInstanceManager;\n+\n+/**\n+ * Class responsible of loading Flipper inside your React Native application. This is the release\n+ * flavor of it so it's empty as we don't want to load Flipper.\n+ */\n+public class ReactNativeFlipper {\n+ public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {\n+ // Do nothing as we don't want to initialize Flipper on Release.\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/build.gradle b/templates/expo-template-bare-minimum/android/build.gradle\nindex fa77528908..e5fda82878 100644\n--- a/templates/expo-template-bare-minimum/android/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/build.gradle\n@@ -1,50 +1,31 @@\n-import org.apache.tools.ant.taskdefs.condition.Os\n-\n // Top-level build file where you can add configuration options common to all sub-projects/modules.\n \n buildscript {\n ext {\n- buildToolsVersion = findProperty('android.buildToolsVersion') ?: '31.0.0'\n+ buildToolsVersion = findProperty('android.buildToolsVersion') ?: '33.0.0'\n minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '21')\n- compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '31')\n- targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '31')\n+ compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '33')\n+ targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '33')\n if (findProperty('android.kotlinVersion')) {\n kotlinVersion = findProperty('android.kotlinVersion')\n }\n frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0'\n \n- if (System.properties['os.arch'] == 'aarch64') {\n- // For M1 Users we need to use the NDK 24 which added support for aarch64\n- ndkVersion = '24.0.8215888'\n- } else {\n- // Otherwise we default to the side-by-side NDK version from AGP.\n- ndkVersion = '21.4.7075529'\n- }\n+ // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.\n+ ndkVersion = \"23.1.7779620\"\n }\n repositories {\n google()\n mavenCentral()\n }\n dependencies {\n- classpath('com.android.tools.build:gradle:7.0.4')\n+ classpath('com.android.tools.build:gradle:7.4.1')\n classpath('com.facebook.react:react-native-gradle-plugin')\n- classpath('de.undercouch:gradle-download-task:4.1.2')\n- // NOTE: Do not place your application dependencies here; they belong\n- // in the individual module build.gradle files\n }\n }\n \n-def REACT_NATIVE_VERSION = new File(['node', '--print',\"JSON.parse(require('fs').readFileSync(require.resolve('react-native/package.json'), 'utf-8')).version\"].execute(null, rootDir).text.trim())\n-\n allprojects {\n- configurations.all {\n- resolutionStrategy {\n- force \"com.facebook.react:react-native:\" + REACT_NATIVE_VERSION\n- }\n- }\n-\n repositories {\n- mavenLocal()\n maven {\n // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm\n url(new File(['node', '--print', \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), '../android'))\n@@ -55,13 +36,7 @@ allprojects {\n }\n \n google()\n- mavenCentral {\n- // We don't want to fetch react-native from Maven Central as there are\n- // older versions over there.\n- content {\n- excludeGroup 'com.facebook.react'\n- }\n- }\n+ mavenCentral()\n maven { url 'https://www.jitpack.io' }\n }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/gitignore b/templates/expo-template-bare-minimum/android/gitignore\nindex 64436baaf5..877b87e9a5 100644\n--- a/templates/expo-template-bare-minimum/android/gitignore\n+++ b/templates/expo-template-bare-minimum/android/gitignore\n@@ -11,11 +11,5 @@ local.properties\n *.iml\n *.hprof\n \n-# BUCK\n-buck-out/\n-\\.buckd/\n-*.keystore\n-!debug.keystore\n-\n # Bundle artifacts\n *.jsbundle\ndiff --git a/templates/expo-template-bare-minimum/android/gradle.properties b/templates/expo-template-bare-minimum/android/gradle.properties\nindex fab3fb6bcf..9911ac4afd 100644\n--- a/templates/expo-template-bare-minimum/android/gradle.properties\n+++ b/templates/expo-template-bare-minimum/android/gradle.properties\n@@ -42,7 +42,7 @@ newArchEnabled=false\n \n # The hosted JavaScript engine\n # Supported values: expo.jsEngine = \"hermes\" | \"jsc\"\n-expo.jsEngine=jsc\n+expo.jsEngine=hermes\n \n # Enable GIF support in React Native images (~200 B increase)\n expo.gif.enabled=true\ndiff --git a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar\nindex 7454180f2a..249e5832f0 100644\nBinary files a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar and b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar differ\ndiff --git a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\nindex 669386b870..8fad3f5a98 100644\n--- a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\n+++ b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\n@@ -1,5 +1,5 @@\n distributionBase=GRADLE_USER_HOME\n distributionPath=wrapper/dists\n-distributionUrl=https\\://services.gradle.org/distributions/gradle-7.3.3-all.zip\n+distributionUrl=https\\://services.gradle.org/distributions/gradle-7.5.1-all.zip\n zipStoreBase=GRADLE_USER_HOME\n zipStorePath=wrapper/dists\ndiff --git a/templates/expo-template-bare-minimum/android/gradlew b/templates/expo-template-bare-minimum/android/gradlew\nindex 1b6c787337..a69d9cb6c2 100755\n--- a/templates/expo-template-bare-minimum/android/gradlew\n+++ b/templates/expo-template-bare-minimum/android/gradlew\n@@ -205,6 +205,12 @@ set -- \\\n org.gradle.wrapper.GradleWrapperMain \\\n \"$@\"\n \n+# Stop when \"xargs\" is not available.\n+if ! command -v xargs >/dev/null 2>&1\n+then\n+ die \"xargs is not available\"\n+fi\n+\n # Use \"xargs\" to parse quoted args.\n #\n # With -n1 it outputs one arg per line, with the quotes and backslashes removed.\ndiff --git a/templates/expo-template-bare-minimum/android/gradlew.bat b/templates/expo-template-bare-minimum/android/gradlew.bat\nindex ac1b06f938..53a6b238d4 100644\n--- a/templates/expo-template-bare-minimum/android/gradlew.bat\n+++ b/templates/expo-template-bare-minimum/android/gradlew.bat\n@@ -14,7 +14,7 @@\n @rem limitations under the License.\r\n @rem\r\n \r\n-@if \"%DEBUG%\" == \"\" @echo off\r\n+@if \"%DEBUG%\"==\"\" @echo off\r\n @rem ##########################################################################\r\n @rem\r\n @rem Gradle startup script for Windows\r\n@@ -25,7 +25,7 @@\n if \"%OS%\"==\"Windows_NT\" setlocal\r\n \r\n set DIRNAME=%~dp0\r\n-if \"%DIRNAME%\" == \"\" set DIRNAME=.\r\n+if \"%DIRNAME%\"==\"\" set DIRNAME=.\r\n set APP_BASE_NAME=%~n0\r\n set APP_HOME=%DIRNAME%\r\n \r\n@@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome\n \r\n set JAVA_EXE=java.exe\r\n %JAVA_EXE% -version >NUL 2>&1\r\n-if \"%ERRORLEVEL%\" == \"0\" goto execute\r\n+if %ERRORLEVEL% equ 0 goto execute\r\n \r\n echo.\r\n echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\r\n@@ -75,13 +75,15 @@ set CLASSPATH=%APP_HOME%\\gradle\\wrapper\\gradle-wrapper.jar\n \r\n :end\r\n @rem End local scope for the variables with windows NT shell\r\n-if \"%ERRORLEVEL%\"==\"0\" goto mainEnd\r\n+if %ERRORLEVEL% equ 0 goto mainEnd\r\n \r\n :fail\r\n rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of\r\n rem the _cmd.exe /c_ return code!\r\n-if not \"\" == \"%GRADLE_EXIT_CONSOLE%\" exit 1\r\n-exit /b 1\r\n+set EXIT_CODE=%ERRORLEVEL%\r\n+if %EXIT_CODE% equ 0 set EXIT_CODE=1\r\n+if not \"\"==\"%GRADLE_EXIT_CONSOLE%\" exit %EXIT_CODE%\r\n+exit /b %EXIT_CODE%\r\n \r\n :mainEnd\r\n if \"%OS%\"==\"Windows_NT\" endlocal\r\ndiff --git a/templates/expo-template-bare-minimum/android/settings.gradle b/templates/expo-template-bare-minimum/android/settings.gradle\nindex fa543f0c69..1dc416e7c1 100644\n--- a/templates/expo-template-bare-minimum/android/settings.gradle\n+++ b/templates/expo-template-bare-minimum/android/settings.gradle\n@@ -8,8 +8,3 @@ applyNativeModulesSettingsGradle(settings)\n \n include ':app'\n includeBuild(new File([\"node\", \"--print\", \"require.resolve('react-native-gradle-plugin/package.json')\"].execute(null, rootDir).text.trim()).getParentFile())\n-\n-if (settings.hasProperty(\"newArchEnabled\") && settings.newArchEnabled == \"true\") {\n- include(\":ReactAndroid\")\n- project(\":ReactAndroid\").projectDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../ReactAndroid\");\n-}\ndiff --git a/templates/expo-template-bare-minimum/gitignore b/templates/expo-template-bare-minimum/gitignore\nindex c8eb0f9a64..df57ba88a1 100644\n--- a/templates/expo-template-bare-minimum/gitignore\n+++ b/templates/expo-template-bare-minimum/gitignore\n@@ -30,6 +30,9 @@ build/\n local.properties\n *.iml\n *.hprof\n+.cxx/\n+*.keystore\n+!debug.keystore\n \n # node.js\n #\n@@ -37,18 +40,15 @@ node_modules/\n npm-debug.log\n yarn-error.log\n \n-# BUCK\n-buck-out/\n-\\.buckd/\n-*.keystore\n-!debug.keystore\n-\n # Bundle artifacts\n *.jsbundle\n \n # CocoaPods\n /ios/Pods/\n \n+# Temporary files created by Metro to check the health of the file watcher\n+.metro-health-check*\n+\n # Expo\n .expo/\n web-build/\ndiff --git a/templates/expo-template-bare-minimum/ios/.xcode.env b/templates/expo-template-bare-minimum/ios/.xcode.env\nnew file mode 100644\nindex 0000000000..3d5782c715\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/ios/.xcode.env\n@@ -0,0 +1,11 @@\n+# This `.xcode.env` file is versioned and is used to source the environment\n+# used when running script phases inside Xcode.\n+# To customize your local environment, you can create an `.xcode.env.local`\n+# file that is not versioned.\n+\n+# NODE_BINARY variable contains the PATH to the node executable.\n+#\n+# Customize the NODE_BINARY variable here.\n+# For example, to use nvm with brew, add the following line\n+# . \"$(brew --prefix nvm)/nvm.sh\" --no-use\n+export NODE_BINARY=$(command -v node)\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\nindex 2ac180e425..98e6c2afea 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n@@ -214,7 +214,7 @@\n \t\t\t);\n \t\t\trunOnlyForDeploymentPostprocessing = 0;\n \t\t\tshellPath = /bin/sh;\n-\t\t\tshellScript = \"export NODE_BINARY=node\\n\\n# The project root by default is one level up from the ios directory\\nexport PROJECT_ROOT=\\\"$PROJECT_DIR\\\"/..\\n\\n`node --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\\\"`\\n\";\n+\t\t\tshellScript = \"if [[ -f \\\"$PODS_ROOT/../.xcode.env\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env\\\"\\nfi\\nif [[ -f \\\"$PODS_ROOT/../.xcode.env.local\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env.local\\\"\\nfi\\n\\n# The project root by default is one level up from the ios directory\\nexport PROJECT_ROOT=\\\"$PROJECT_DIR\\\"/..\\n\\nif [[ \\\"$CONFIGURATION\\\" = *Debug* ]]; then\\n export SKIP_BUNDLING=1\\nfi\\nif [[ -z \\\"$ENTRY_FILE\\\" ]]; then\\n # Set the entry JS file using the bundler's entry resolution.\\n export ENTRY_FILE=\\\"$(\\\"$NODE_BINARY\\\" -e \\\"require('expo/scripts/resolveAppEntry')\\\" $PROJECT_ROOT ios relative | tail -n 1)\\\"\\nfi\\n\\n`\\\"$NODE_BINARY\\\" --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\\\"`\\n\\n\";\n \t\t};\n \t\t08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {\n \t\t\tisa = PBXShellScriptBuildPhase;\n@@ -276,7 +276,7 @@\n \t\t\t);\n \t\t\trunOnlyForDeploymentPostprocessing = 0;\n \t\t\tshellPath = /bin/sh;\n-\t\t\tshellScript = \"export RCT_METRO_PORT=\\\"${RCT_METRO_PORT:=8081}\\\"\\necho \\\"export RCT_METRO_PORT=${RCT_METRO_PORT}\\\" > `node --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\\\"`\\nif [ -z \\\"${RCT_NO_LAUNCH_PACKAGER+xxx}\\\" ] ; then\\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\\n if ! curl -s \\\"http://localhost:${RCT_METRO_PORT}/status\\\" | grep -q \\\"packager-status:running\\\" ; then\\n echo \\\"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\\\"\\n exit 2\\n fi\\n else\\n open `node --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/launchPackager.command'\\\"` || echo \\\"Can't start packager automatically\\\"\\n fi\\nfi\\n\";\n+\t\t\tshellScript = \"if [[ -f \\\"$PODS_ROOT/../.xcode.env\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env\\\"\\nfi\\nif [[ -f \\\"$PODS_ROOT/../.xcode.env.local\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env.local\\\"\\nfi\\n\\nexport RCT_METRO_PORT=\\\"${RCT_METRO_PORT:=8081}\\\"\\necho \\\"export RCT_METRO_PORT=${RCT_METRO_PORT}\\\" > `$NODE_BINARY --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\\\"`\\nif [ -z \\\"${RCT_NO_LAUNCH_PACKAGER+xxx}\\\" ] ; then\\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\\n if ! curl -s \\\"http://localhost:${RCT_METRO_PORT}/status\\\" | grep -q \\\"packager-status:running\\\" ; then\\n echo \\\"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\\\"\\n exit 2\\n fi\\n else\\n open `$NODE_BINARY --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/launchPackager.command'\\\"` || echo \\\"Can't start packager automatically\\\"\\n fi\\nfi\\n\";\n \t\t\tshowEnvVarsInLog = 0;\n \t\t};\n /* End PBXShellScriptBuildPhase section */\n@@ -308,8 +308,9 @@\n \t\t\t\t\t\"FB_SONARKIT_ENABLED=1\",\n \t\t\t\t);\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n+ MARKETING_VERSION = 1.0;\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n \t\t\t\t\t\"-ObjC\",\n@@ -331,8 +332,9 @@\n \t\t\t\tCLANG_ENABLE_MODULES = YES;\n \t\t\t\tCURRENT_PROJECT_VERSION = 1;\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n+ MARKETING_VERSION = 1.0;\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n \t\t\t\t\t\"-ObjC\",\n@@ -392,7 +394,7 @@\n \t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n \t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n \t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"/usr/lib/swift $(inherited)\";\n \t\t\t\tLIBRARY_SEARCH_PATHS = \"\\\"$(inherited)\\\"\";\n \t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n@@ -441,7 +443,7 @@\n \t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n \t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n \t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"/usr/lib/swift $(inherited)\";\n \t\t\t\tLIBRARY_SEARCH_PATHS = \"\\\"$(inherited)\\\"\";\n \t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\nindex f7d2972042..1658a437eb 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\n@@ -1,9 +1,7 @@\n-#import \n-#import \n+#import \n #import \n-\n #import \n \n-@interface AppDelegate : EXAppDelegateWrapper \n+@interface AppDelegate : EXAppDelegateWrapper\n \n @end\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\nindex aef81ec589..8cb5aef137 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n@@ -1,66 +1,19 @@\n #import \"AppDelegate.h\"\n \n-#import \n #import \n-#import \n #import \n-#import \n-\n-#import \n-\n-#if RCT_NEW_ARCH_ENABLED\n-#import \n-#import \n-#import \n-#import \n-#import \n-#import \n-\n-#import \n-\n-@interface AppDelegate () {\n- RCTTurboModuleManager *_turboModuleManager;\n- RCTSurfacePresenterBridgeAdapter *_bridgeAdapter;\n- std::shared_ptr _reactNativeConfig;\n- facebook::react::ContextContainer::Shared _contextContainer;\n-}\n-@end\n-#endif\n \n @implementation AppDelegate\n \n - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n {\n- RCTAppSetupPrepareApp(application);\n-\n- RCTBridge *bridge = [self.reactDelegate createBridgeWithDelegate:self launchOptions:launchOptions];\n-\n-#if RCT_NEW_ARCH_ENABLED\n- _contextContainer = std::make_shared();\n- _reactNativeConfig = std::make_shared();\n- _contextContainer->insert(\"ReactNativeConfig\", _reactNativeConfig);\n- _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer];\n- bridge.surfacePresenter = _bridgeAdapter.surfacePresenter;\n-#endif\n+ self.moduleName = @\"main\";\n \n- UIView *rootView = [self.reactDelegate createRootViewWithBridge:bridge moduleName:@\"main\" initialProperties:nil];\n+ // You can add your custom initial props in the dictionary below.\n+ // They will be passed down to the ViewController used by React Native.\n+ self.initialProps = @{};\n \n- rootView.backgroundColor = [UIColor whiteColor];\n- self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n- UIViewController *rootViewController = [self.reactDelegate createRootViewController];\n- rootViewController.view = rootView;\n- self.window.rootViewController = rootViewController;\n- [self.window makeKeyAndVisible];\n-\n- [super application:application didFinishLaunchingWithOptions:launchOptions];\n-\n- return YES;\n-}\n-\n-- (NSArray> *)extraModulesForBridge:(RCTBridge *)bridge\n-{\n- // If you'd like to export some custom RCTBridgeModules, add them here!\n- return @[];\n+ return [super application:application didFinishLaunchingWithOptions:launchOptions];\n }\n \n - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge\n@@ -72,6 +25,16 @@\n #endif\n }\n \n+/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off.\n+///\n+/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html\n+/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture).\n+/// @return: `true` if the `concurrentRoot` feature is enabled. Otherwise, it returns `false`.\n+- (BOOL)concurrentRootEnabled\n+{\n+ return true;\n+}\n+\n // Linking API\n - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options {\n return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options];\n@@ -101,43 +64,4 @@\n return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];\n }\n \n-#if RCT_NEW_ARCH_ENABLED\n-\n-#pragma mark - RCTCxxBridgeDelegate\n-\n-- (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge\n-{\n- _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge\n- delegate:self\n- jsInvoker:bridge.jsCallInvoker];\n- return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager);\n-}\n-\n-#pragma mark RCTTurboModuleManagerDelegate\n-\n-- (Class)getModuleClassFromName:(const char *)name\n-{\n- return RCTCoreModulesClassProvider(name);\n-}\n-\n-- (std::shared_ptr)getTurboModule:(const std::string &)name\n- jsInvoker:(std::shared_ptr)jsInvoker\n-{\n- return nullptr;\n-}\n-\n-- (std::shared_ptr)getTurboModule:(const std::string &)name\n- initParams:\n- (const facebook::react::ObjCTurboModule::InitParams &)params\n-{\n- return nullptr;\n-}\n-\n-- (id)getModuleInstanceFromClass:(Class)moduleClass\n-{\n- return RCTAppSetupDefaultModuleFromClass(moduleClass);\n-}\n-\n-#endif\n-\n @end\ndiff --git a/templates/expo-template-bare-minimum/ios/Podfile b/templates/expo-template-bare-minimum/ios/Podfile\nindex 29797efaaa..e523ea5cac 100644\n--- a/templates/expo-template-bare-minimum/ios/Podfile\n+++ b/templates/expo-template-bare-minimum/ios/Podfile\n@@ -5,37 +5,79 @@ require File.join(File.dirname(`node --print \"require.resolve('@react-native-com\n require 'json'\n podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}\n \n-platform :ios, podfile_properties['ios.deploymentTarget'] || '12.0'\n+ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0'\n+ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = '1' if podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] == 'true'\n+\n+platform :ios, podfile_properties['ios.deploymentTarget'] || '13.0'\n install! 'cocoapods',\n :deterministic_uuids => false\n \n+prepare_react_native_project!\n+\n+# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.\n+# because `react-native-flipper` depends on (FlipperKit,...), which will be excluded. To fix this,\n+# you can also exclude `react-native-flipper` in `react-native.config.js`\n+#\n+# ```js\n+# module.exports = {\n+# dependencies: {\n+# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),\n+# }\n+# }\n+# ```\n+flipper_config = FlipperConfiguration.disabled\n+if ENV['NO_FLIPPER'] == '1' then\n+ # Explicitly disabled through environment variables\n+ flipper_config = FlipperConfiguration.disabled\n+elsif podfile_properties.key?('ios.flipper') then\n+ # Configure Flipper in Podfile.properties.json\n+ if podfile_properties['ios.flipper'] == 'true' then\n+ flipper_config = FlipperConfiguration.enabled([\"Debug\", \"Release\"])\n+ elsif podfile_properties['ios.flipper'] != 'false' then\n+ flipper_config = FlipperConfiguration.enabled([\"Debug\", \"Release\"], { 'Flipper' => podfile_properties['ios.flipper'] })\n+ end\n+end\n+\n target 'HelloWorld' do\n use_expo_modules!\n config = use_native_modules!\n \n use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks']\n+ use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS']\n \n # Flags change depending on the env values.\n flags = get_default_flags()\n \n use_react_native!(\n :path => config[:reactNativePath],\n- :hermes_enabled => flags[:hermes_enabled] || podfile_properties['expo.jsEngine'] == 'hermes',\n+ :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes',\n :fabric_enabled => flags[:fabric_enabled],\n # An absolute path to your application root.\n- :app_path => \"#{Dir.pwd}/..\"\n+ :app_path => \"#{Pod::Config.instance.installation_root}/..\",\n+ # Note that if you have use_frameworks! enabled, Flipper will not work if enabled\n+ :flipper_configuration => flipper_config\n )\n \n- # Uncomment to opt-in to using Flipper\n- # Note that if you have use_frameworks! enabled, Flipper will not work\n- #\n- # if !ENV['CI']\n- # use_flipper!()\n- # end\n-\n post_install do |installer|\n- react_native_post_install(installer)\n+ react_native_post_install(\n+ installer,\n+ config[:reactNativePath],\n+ # Set `mac_catalyst_enabled` to `true` in order to apply patches\n+ # necessary for Mac Catalyst builds\n+ :mac_catalyst_enabled => false\n+ )\n __apply_Xcode_12_5_M1_post_install_workaround(installer)\n+\n+ # This is necessary for Xcode 14, because it signs resource bundles by default\n+ # when building for devices.\n+ installer.target_installation_results.pod_target_installation_results\n+ .each do |pod_name, target_installation_result|\n+ target_installation_result.resource_bundle_targets.each do |resource_bundle_target|\n+ resource_bundle_target.build_configurations.each do |config|\n+ config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'\n+ end\n+ end\n+ end\n end\n \n post_integrate do |installer|\n@@ -45,5 +87,4 @@ target 'HelloWorld' do\n Pod::UI.warn e\n end\n end\n-\n end\ndiff --git a/templates/expo-template-bare-minimum/ios/Podfile.properties.json b/templates/expo-template-bare-minimum/ios/Podfile.properties.json\nindex f6d872e81a..b1bd45da51 100644\n--- a/templates/expo-template-bare-minimum/ios/Podfile.properties.json\n+++ b/templates/expo-template-bare-minimum/ios/Podfile.properties.json\n@@ -1,3 +1,3 @@\n {\n- \"expo.jsEngine\": \"jsc\"\n+ \"expo.jsEngine\": \"hermes\"\n }\ndiff --git a/templates/expo-template-bare-minimum/ios/gitignore b/templates/expo-template-bare-minimum/ios/gitignore\nindex 2b13519939..8beb344303 100644\n--- a/templates/expo-template-bare-minimum/ios/gitignore\n+++ b/templates/expo-template-bare-minimum/ios/gitignore\n@@ -21,6 +21,7 @@ DerivedData\n *.ipa\n *.xcuserstate\n project.xcworkspace\n+.xcode.env.local\n \n # Bundle artifacts\n *.jsbundle\ndiff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json\nindex 69e7eb9619..d1fcd513cc 100644\n--- a/templates/expo-template-bare-minimum/package.json\n+++ b/templates/expo-template-bare-minimum/package.json\n@@ -1,7 +1,7 @@\n {\n \"name\": \"expo-template-bare-minimum\",\n \"description\": \"This bare project template includes a minimal setup for using unimodules with React Native.\",\n- \"version\": \"45.0.6\",\n+ \"version\": \"48.0.21\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"start\": \"expo start --dev-client\",\n@@ -10,15 +10,13 @@\n \"web\": \"expo start --web\"\n },\n \"dependencies\": {\n- \"expo\": \"~45.0.0\",\n- \"expo-splash-screen\": \"~0.15.1\",\n- \"expo-status-bar\": \"~1.3.0\",\n- \"react\": \"17.0.2\",\n- \"react-dom\": \"17.0.2\",\n- \"react-native\": \"0.68.2\",\n- \"react-native-web\": \"0.17.7\"\n+ \"expo\": \"~48.0.21\",\n+ \"expo-splash-screen\": \"~0.18.2\",\n+ \"expo-status-bar\": \"~1.4.4\",\n+ \"react\": \"18.2.0\",\n+ \"react-native\": \"0.71.14\"\n },\n \"devDependencies\": {\n- \"@babel/core\": \"^7.12.9\"\n+ \"@babel/core\": \"^7.20.0\"\n }\n }\n","46..48":"diff --git a/templates/expo-template-bare-minimum/.buckconfig b/templates/expo-template-bare-minimum/.buckconfig\ndeleted file mode 100644\nindex 934256cb29..0000000000\n--- a/templates/expo-template-bare-minimum/.buckconfig\n+++ /dev/null\n@@ -1,6 +0,0 @@\n-\n-[android]\n- target = Google Inc.:Google APIs:23\n-\n-[maven_repositories]\n- central = https://repo1.maven.org/maven2\ndiff --git a/templates/expo-template-bare-minimum/.npmignore b/templates/expo-template-bare-minimum/.npmignore\nindex 35490b6612..4e6ce00391 100644\n--- a/templates/expo-template-bare-minimum/.npmignore\n+++ b/templates/expo-template-bare-minimum/.npmignore\n@@ -20,3 +20,4 @@ ios/Pods\n android/.build\n android/app/build\n android/.gradle\n+ios/.xcode.env.local\ndiff --git a/templates/expo-template-bare-minimum/android/app/BUCK b/templates/expo-template-bare-minimum/android/app/BUCK\ndeleted file mode 100644\nindex 0e77904834..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/BUCK\n+++ /dev/null\n@@ -1,55 +0,0 @@\n-# To learn about Buck see [Docs](https://buckbuild.com/).\n-# To run your application with Buck:\n-# - install Buck\n-# - `npm start` - to start the packager\n-# - `cd android`\n-# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname \"CN=Android Debug,O=Android,C=US\"`\n-# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck\n-# - `buck install -r android/app` - compile, install and run application\n-#\n-\n-load(\":build_defs.bzl\", \"create_aar_targets\", \"create_jar_targets\")\n-\n-lib_deps = []\n-\n-create_aar_targets(glob([\"libs/*.aar\"]))\n-\n-create_jar_targets(glob([\"libs/*.jar\"]))\n-\n-android_library(\n- name = \"all-libs\",\n- exported_deps = lib_deps,\n-)\n-\n-android_library(\n- name = \"app-code\",\n- srcs = glob([\n- \"src/main/java/**/*.java\",\n- ]),\n- deps = [\n- \":all-libs\",\n- \":build_config\",\n- \":res\",\n- ],\n-)\n-\n-android_build_config(\n- name = \"build_config\",\n- package = \"com.helloworld\",\n-)\n-\n-android_resource(\n- name = \"res\",\n- package = \"com.helloworld\",\n- res = \"src/main/res\",\n-)\n-\n-android_binary(\n- name = \"app\",\n- keystore = \"//android/keystores:debug\",\n- manifest = \"src/main/AndroidManifest.xml\",\n- package_type = \"debug\",\n- deps = [\n- \":app-code\",\n- ],\n-)\ndiff --git a/templates/expo-template-bare-minimum/android/app/build.gradle b/templates/expo-template-bare-minimum/android/app/build.gradle\nindex f0293fe400..189390e7e3 100644\n--- a/templates/expo-template-bare-minimum/android/app/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/app/build.gradle\n@@ -1,136 +1,107 @@\n apply plugin: \"com.android.application\"\n+apply plugin: \"com.facebook.react\"\n \n import com.android.build.OutputFile\n-import org.apache.tools.ant.taskdefs.condition.Os\n-\n-/**\n- * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets\n- * and bundleReleaseJsAndAssets).\n- * These basically call `react-native bundle` with the correct arguments during the Android build\n- * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the\n- * bundle directly from the development server. Below you can see all the possible configurations\n- * and their defaults. If you decide to add a configuration block, make sure to add it before the\n- * `apply from: \"../../node_modules/react-native/react.gradle\"` line.\n- *\n- * project.ext.react = [\n- * // the name of the generated asset file containing your JS bundle\n- * bundleAssetName: \"index.android.bundle\",\n- *\n- * // the entry file for bundle generation. If none specified and\n- * // \"index.android.js\" exists, it will be used. Otherwise \"index.js\" is\n- * // default. Can be overridden with ENTRY_FILE environment variable.\n- * entryFile: \"index.android.js\",\n- *\n- * // https://reactnative.dev/docs/performance#enable-the-ram-format\n- * bundleCommand: \"ram-bundle\",\n- *\n- * // whether to bundle JS and assets in debug mode\n- * bundleInDebug: false,\n- *\n- * // whether to bundle JS and assets in release mode\n- * bundleInRelease: true,\n- *\n- * // whether to bundle JS and assets in another build variant (if configured).\n- * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants\n- * // The configuration property can be in the following formats\n- * // 'bundleIn${productFlavor}${buildType}'\n- * // 'bundleIn${buildType}'\n- * // bundleInFreeDebug: true,\n- * // bundleInPaidRelease: true,\n- * // bundleInBeta: true,\n- *\n- * // whether to disable dev mode in custom build variants (by default only disabled in release)\n- * // for example: to disable dev mode in the staging build type (if configured)\n- * devDisabledInStaging: true,\n- * // The configuration property can be in the following formats\n- * // 'devDisabledIn${productFlavor}${buildType}'\n- * // 'devDisabledIn${buildType}'\n- *\n- * // the root of your project, i.e. where \"package.json\" lives\n- * root: \"../../\",\n- *\n- * // where to put the JS bundle asset in debug mode\n- * jsBundleDirDebug: \"$buildDir/intermediates/assets/debug\",\n- *\n- * // where to put the JS bundle asset in release mode\n- * jsBundleDirRelease: \"$buildDir/intermediates/assets/release\",\n- *\n- * // where to put drawable resources / React Native assets, e.g. the ones you use via\n- * // require('./image.png')), in debug mode\n- * resourcesDirDebug: \"$buildDir/intermediates/res/merged/debug\",\n- *\n- * // where to put drawable resources / React Native assets, e.g. the ones you use via\n- * // require('./image.png')), in release mode\n- * resourcesDirRelease: \"$buildDir/intermediates/res/merged/release\",\n- *\n- * // by default the gradle tasks are skipped if none of the JS files or assets change; this means\n- * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to\n- * // date; if you have any other folders that you want to ignore for performance reasons (gradle\n- * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/\n- * // for example, you might want to remove it from here.\n- * inputExcludes: [\"android/**\", \"ios/**\"],\n- *\n- * // override which node gets called and with what additional arguments\n- * nodeExecutableAndArgs: [\"node\"],\n- *\n- * // supply additional arguments to the packager\n- * extraPackagerArgs: []\n- * ]\n- */\n \n def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath()\n+def expoDebuggableVariants = ['debug']\n+// Override `debuggableVariants` for expo-updates debugging\n+if (System.getenv('EX_UPDATES_NATIVE_DEBUG') == \"1\") {\n+ react {\n+ expoDebuggableVariants = []\n+ }\n+}\n \n-def reactNativeRoot = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath()\n \n-project.ext.react = [\n- entryFile: [\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\"].execute(null, rootDir).text.trim(),\n- enableHermes: (findProperty('expo.jsEngine') ?: \"jsc\") == \"hermes\",\n- hermesCommand: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/sdks/hermesc/%OS-BIN%/hermesc\",\n- cliPath: \"${reactNativeRoot}/cli.js\",\n- composeSourceMapsPath: \"${reactNativeRoot}/scripts/compose-source-maps.js\",\n-]\n+/**\n+ * This is the configuration block to customize your React Native Android app.\n+ * By default you don't need to apply any configuration, just uncomment the lines you need.\n+ */\n+react {\n+ entryFile = file([\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\", \"absolute\"].execute(null, rootDir).text.trim())\n+ reactNativeDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()\n+ hermesCommand = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/sdks/hermesc/%OS-BIN%/hermesc\"\n+ debuggableVariants = expoDebuggableVariants\n+\n+ /* Folders */\n+ // The root of your project, i.e. where \"package.json\" lives. Default is '..'\n+ // root = file(\"../\")\n+ // The folder where the react-native NPM package is. Default is ../node_modules/react-native\n+ // reactNativeDir = file(\"../node_modules/react-native\")\n+ // The folder where the react-native Codegen package is. Default is ../node_modules/react-native-codegen\n+ // codegenDir = file(\"../node_modules/react-native-codegen\")\n+ // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js\n+ // cliFile = file(\"../node_modules/react-native/cli.js\")\n+\n+ /* Variants */\n+ // The list of variants to that are debuggable. For those we're going to\n+ // skip the bundling of the JS bundle and the assets. By default is just 'debug'.\n+ // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.\n+ // debuggableVariants = [\"liteDebug\", \"prodDebug\"]\n+\n+ /* Bundling */\n+ // A list containing the node command and its flags. Default is just 'node'.\n+ // nodeExecutableAndArgs = [\"node\"]\n+ //\n+ // The command to run when bundling. By default is 'bundle'\n+ // bundleCommand = \"ram-bundle\"\n+ //\n+ // The path to the CLI configuration file. Default is empty.\n+ // bundleConfig = file(../rn-cli.config.js)\n+ //\n+ // The name of the generated asset file containing your JS bundle\n+ // bundleAssetName = \"MyApplication.android.bundle\"\n+ //\n+ // The entry file for bundle generation. Default is 'index.android.js' or 'index.js'\n+ // entryFile = file(\"../js/MyApplication.android.js\")\n+ //\n+ // A list of extra flags to pass to the 'bundle' commands.\n+ // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle\n+ // extraPackagerArgs = []\n+\n+ /* Hermes Commands */\n+ // The hermes compiler command to run. By default it is 'hermesc'\n+ // hermesCommand = \"$rootDir/my-custom-hermesc/bin/hermesc\"\n+ //\n+ // The list of flags to pass to the Hermes compiler. By default is \"-O\", \"-output-source-map\"\n+ // hermesFlags = [\"-O\", \"-output-source-map\"]\n+}\n \n-apply from: new File(reactNativeRoot, \"react.gradle\")\n+// Override `hermesEnabled` by `expo.jsEngine`\n+ext {\n+ hermesEnabled = (findProperty('expo.jsEngine') ?: \"hermes\") == \"hermes\"\n+}\n \n /**\n- * Set this to true to create two separate APKs instead of one:\n- * - An APK that only works on ARM devices\n- * - An APK that only works on x86 devices\n- * The advantage is the size of the APK is reduced by about 4MB.\n- * Upload all the APKs to the Play Store and people will download\n- * the correct one based on the CPU architecture of their device.\n+ * Set this to true to create four separate APKs instead of one,\n+ * one for each native architecture. This is useful if you don't\n+ * use App Bundles (https://developer.android.com/guide/app-bundle/)\n+ * and want to have separate APKs to upload to the Play Store.\n */\n def enableSeparateBuildPerCPUArchitecture = false\n \n /**\n- * Run Proguard to shrink the Java bytecode in release builds.\n+ * Set this to true to Run Proguard on Release builds to minify the Java bytecode.\n */\n def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean()\n \n /**\n- * The preferred build flavor of JavaScriptCore.\n+ * The preferred build flavor of JavaScriptCore (JSC)\n *\n * For example, to use the international variant, you can use:\n * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`\n *\n * The international variant includes ICU i18n library and necessary data\n * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that\n- * give correct results when using with locales other than en-US. Note that\n+ * give correct results when using with locales other than en-US. Note that\n * this variant is about 6MiB larger per architecture than default.\n */\n def jscFlavor = 'org.webkit:android-jsc:+'\n \n /**\n- * Whether to enable the Hermes VM.\n- *\n- * This should be set on project.ext.react and that value will be read here. If it is not set\n- * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode\n- * and the benefits of using Hermes will therefore be sharply reduced.\n- */\n-def enableHermes = project.ext.react.get(\"enableHermes\", false);\n-\n-/**\n- * Architectures to build native code for.\n+ * Private function to get the list of Native Architectures you want to build.\n+ * This reads the value from reactNativeArchitectures in your gradle.properties\n+ * file and works together with the --active-arch-only flag of react-native run-android.\n */\n def reactNativeArchitectures() {\n def value = project.getProperties().get(\"reactNativeArchitectures\")\n@@ -142,85 +113,13 @@ android {\n \n compileSdkVersion rootProject.ext.compileSdkVersion\n \n+ namespace \"com.helloworld\"\n defaultConfig {\n applicationId \"com.helloworld\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n- buildConfigField \"boolean\", \"IS_NEW_ARCHITECTURE_ENABLED\", isNewArchitectureEnabled().toString()\n-\n- if (isNewArchitectureEnabled()) {\n- // We configure the NDK build only if you decide to opt-in for the New Architecture.\n- externalNativeBuild {\n- ndkBuild {\n- arguments \"APP_PLATFORM=android-21\",\n- \"APP_STL=c++_shared\",\n- \"NDK_TOOLCHAIN_VERSION=clang\",\n- \"GENERATED_SRC_DIR=$buildDir/generated/source\",\n- \"PROJECT_BUILD_DIR=$buildDir\",\n- \"REACT_ANDROID_DIR=${reactNativeRoot}/ReactAndroid\",\n- \"REACT_ANDROID_BUILD_DIR=${reactNativeRoot}/ReactAndroid/build\",\n- \"NODE_MODULES_DIR=$rootDir/../node_modules\"\n- cFlags \"-Wall\", \"-Werror\", \"-fexceptions\", \"-frtti\", \"-DWITH_INSPECTOR=1\"\n- cppFlags \"-std=c++17\"\n- // Make sure this target name is the same you specify inside the\n- // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.\n- targets \"helloworld_appmodules\"\n-\n- // Fix for windows limit on number of character in file paths and in command lines\n- if (Os.isFamily(Os.FAMILY_WINDOWS)) {\n- arguments \"NDK_APP_SHORT_COMMANDS=true\"\n- }\n- }\n- }\n- if (!enableSeparateBuildPerCPUArchitecture) {\n- ndk {\n- abiFilters (*reactNativeArchitectures())\n- }\n- }\n- }\n- }\n-\n- if (isNewArchitectureEnabled()) {\n- // We configure the NDK build only if you decide to opt-in for the New Architecture.\n- externalNativeBuild {\n- ndkBuild {\n- path \"$projectDir/src/main/jni/Android.mk\"\n- }\n- }\n- def reactAndroidProjectDir = project(':ReactAndroid').projectDir\n- def packageReactNdkDebugLibs = tasks.register(\"packageReactNdkDebugLibs\", Copy) {\n- dependsOn(\":ReactAndroid:packageReactNdkDebugLibsForBuck\")\n- from(\"$reactAndroidProjectDir/src/main/jni/prebuilt/lib\")\n- into(\"$buildDir/react-ndk/exported\")\n- }\n- def packageReactNdkReleaseLibs = tasks.register(\"packageReactNdkReleaseLibs\", Copy) {\n- dependsOn(\":ReactAndroid:packageReactNdkReleaseLibsForBuck\")\n- from(\"$reactAndroidProjectDir/src/main/jni/prebuilt/lib\")\n- into(\"$buildDir/react-ndk/exported\")\n- }\n- afterEvaluate {\n- // If you wish to add a custom TurboModule or component locally,\n- // you should uncomment this line.\n- // preBuild.dependsOn(\"generateCodegenArtifactsFromSchema\")\n- preDebugBuild.dependsOn(packageReactNdkDebugLibs)\n- preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)\n-\n- // Due to a bug inside AGP, we have to explicitly set a dependency\n- // between configureNdkBuild* tasks and the preBuild tasks.\n- // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732\n- configureNdkBuildRelease.dependsOn(preReleaseBuild)\n- configureNdkBuildDebug.dependsOn(preDebugBuild)\n- reactNativeArchitectures().each { architecture ->\n- tasks.findByName(\"configureNdkBuildDebug[${architecture}]\")?.configure {\n- dependsOn(\"preDebugBuild\")\n- }\n- tasks.findByName(\"configureNdkBuildRelease[${architecture}]\")?.configure {\n- dependsOn(\"preReleaseBuild\")\n- }\n- }\n- }\n }\n \n splits {\n@@ -247,6 +146,7 @@ android {\n // Caution! In production, you need to generate your own keystore file.\n // see https://reactnative.dev/docs/signed-apk-android.\n signingConfig signingConfigs.debug\n+ shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false)\n minifyEnabled enableProguardInReleaseBuilds\n proguardFiles getDefaultProguardFile(\"proguard-android.txt\"), \"proguard-rules.pro\"\n }\n@@ -257,11 +157,12 @@ android {\n variant.outputs.each { output ->\n // For each separate APK per architecture, set a unique version code as described here:\n // https://developer.android.com/studio/build/configure-apk-splits.html\n+ // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.\n def versionCodes = [\"armeabi-v7a\": 1, \"x86\": 2, \"arm64-v8a\": 3, \"x86_64\": 4]\n def abi = output.getFilter(OutputFile.ABI)\n if (abi != null) { // null for the universal-debug, universal-release variants\n output.versionCodeOverride =\n- versionCodes.get(abi) * 1048576 + defaultConfig.versionCode\n+ defaultConfig.versionCode * 1000 + versionCodes.get(abi)\n }\n \n }\n@@ -289,10 +190,8 @@ android {\n }\n \n dependencies {\n- implementation fileTree(dir: \"libs\", include: [\"*.jar\"])\n-\n- //noinspection GradleDynamicVersion\n- implementation \"com.facebook.react:react-native:+\" // From node_modules\n+ // The version of react-native is set by the React Native Gradle Plugin\n+ implementation(\"com.facebook.react:react-android\")\n \n def isGifEnabled = (findProperty('expo.gif.enabled') ?: \"\") == \"true\";\n def isWebpEnabled = (findProperty('expo.webp.enabled') ?: \"\") == \"true\";\n@@ -301,76 +200,38 @@ dependencies {\n \n // If your app supports Android versions before Ice Cream Sandwich (API level 14)\n if (isGifEnabled || isWebpEnabled) {\n- implementation \"com.facebook.fresco:fresco:${frescoVersion}\"\n- implementation \"com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:fresco:${frescoVersion}\")\n+ implementation(\"com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}\")\n }\n \n if (isGifEnabled) {\n // For animated gif support\n- implementation \"com.facebook.fresco:animated-gif:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:animated-gif:${frescoVersion}\")\n }\n \n if (isWebpEnabled) {\n // For webp support\n- implementation \"com.facebook.fresco:webpsupport:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:webpsupport:${frescoVersion}\")\n if (isWebpAnimatedEnabled) {\n // Animated webp support\n- implementation \"com.facebook.fresco:animated-webp:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:animated-webp:${frescoVersion}\")\n }\n }\n \n- implementation \"androidx.swiperefreshlayout:swiperefreshlayout:1.0.0\"\n- debugImplementation(\"com.facebook.flipper:flipper:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.fbjni'\n- }\n+ implementation(\"androidx.swiperefreshlayout:swiperefreshlayout:1.0.0\")\n+\n+ debugImplementation(\"com.facebook.flipper:flipper:${FLIPPER_VERSION}\")\n debugImplementation(\"com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.flipper'\n exclude group:'com.squareup.okhttp3', module:'okhttp'\n }\n- debugImplementation(\"com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.flipper'\n- }\n+ debugImplementation(\"com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}\")\n \n- if (enableHermes) {\n- //noinspection GradleDynamicVersion\n- implementation(\"com.facebook.react:hermes-engine:+\") { // From node_modules\n- exclude group:'com.facebook.fbjni'\n- }\n+ if (hermesEnabled.toBoolean()) {\n+ implementation(\"com.facebook.react:hermes-android\")\n } else {\n implementation jscFlavor\n }\n }\n \n-if (isNewArchitectureEnabled()) {\n- // If new architecture is enabled, we let you build RN from source\n- // Otherwise we fallback to a prebuilt .aar bundled in the NPM package.\n- // This will be applied to all the imported transtitive dependency.\n- configurations.all {\n- resolutionStrategy.dependencySubstitution {\n- substitute(module(\"com.facebook.react:react-native\"))\n- .using(project(\":ReactAndroid\"))\n- .because(\"On New Architecture we're building React Native from source\")\n- substitute(module(\"com.facebook.react:hermes-engine\"))\n- .using(project(\":ReactAndroid:hermes-engine\"))\n- .because(\"On New Architecture we're building Hermes from source\")\n- }\n- }\n-}\n-\n-// Run this once to be able to run the application with BUCK\n-// puts all compile dependencies into folder libs for BUCK to use\n-task copyDownloadableDepsToLibs(type: Copy) {\n- from configurations.implementation\n- into 'libs'\n-}\n-\n apply from: new File([\"node\", \"--print\", \"require.resolve('@react-native-community/cli-platform-android/package.json')\"].execute(null, rootDir).text.trim(), \"../native_modules.gradle\");\n applyNativeModulesAppBuildGradle(project)\n-\n-def isNewArchitectureEnabled() {\n- // To opt-in for the New Architecture, you can either:\n- // - Set `newArchEnabled` to true inside the `gradle.properties` file\n- // - Invoke gradle with `-newArchEnabled=true`\n- // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`\n- return project.hasProperty(\"newArchEnabled\") && project.newArchEnabled == \"true\"\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/build_defs.bzl b/templates/expo-template-bare-minimum/android/app/build_defs.bzl\ndeleted file mode 100644\nindex fff270f8d1..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/build_defs.bzl\n+++ /dev/null\n@@ -1,19 +0,0 @@\n-\"\"\"Helper definitions to glob .aar and .jar targets\"\"\"\n-\n-def create_aar_targets(aarfiles):\n- for aarfile in aarfiles:\n- name = \"aars__\" + aarfile[aarfile.rindex(\"/\") + 1:aarfile.rindex(\".aar\")]\n- lib_deps.append(\":\" + name)\n- android_prebuilt_aar(\n- name = name,\n- aar = aarfile,\n- )\n-\n-def create_jar_targets(jarfiles):\n- for jarfile in jarfiles:\n- name = \"jars__\" + jarfile[jarfile.rindex(\"/\") + 1:jarfile.rindex(\".jar\")]\n- lib_deps.append(\":\" + name)\n- prebuilt_jar(\n- name = name,\n- binary_jar = jarfile,\n- )\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java b/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\nindex 8cddb11cb2..595dd5831c 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\n@@ -1,5 +1,5 @@\n /**\n- * Copyright (c) Facebook, Inc. and its affiliates.\n+ * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n *

This source code is licensed under the MIT license found in the LICENSE file in the root\n * directory of this source tree.\n@@ -17,22 +17,27 @@ import com.facebook.flipper.plugins.inspector.DescriptorMapping;\n import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;\n import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;\n import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;\n-import com.facebook.flipper.plugins.react.ReactFlipperPlugin;\n import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;\n+import com.facebook.react.ReactInstanceEventListener;\n import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.bridge.ReactContext;\n import com.facebook.react.modules.network.NetworkingModule;\n import okhttp3.OkHttpClient;\n \n+/**\n+ * Class responsible of loading Flipper inside your React Native application. This is the debug\n+ * flavor of it. Here you can add your own plugins and customize the Flipper setup.\n+ */\n public class ReactNativeFlipper {\n public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {\n if (FlipperUtils.shouldEnableFlipper(context)) {\n final FlipperClient client = AndroidFlipperClient.getInstance(context);\n+\n client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));\n- client.addPlugin(new ReactFlipperPlugin());\n client.addPlugin(new DatabasesFlipperPlugin(context));\n client.addPlugin(new SharedPreferencesFlipperPlugin(context));\n client.addPlugin(CrashReporterPlugin.getInstance());\n+\n NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();\n NetworkingModule.setCustomClientBuilder(\n new NetworkingModule.CustomClientBuilder() {\n@@ -43,12 +48,13 @@ public class ReactNativeFlipper {\n });\n client.addPlugin(networkFlipperPlugin);\n client.start();\n+\n // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized\n // Hence we run if after all native modules have been initialized\n ReactContext reactContext = reactInstanceManager.getCurrentReactContext();\n if (reactContext == null) {\n reactInstanceManager.addReactInstanceEventListener(\n- new ReactInstanceManager.ReactInstanceEventListener() {\n+ new ReactInstanceEventListener() {\n @Override\n public void onReactContextInitialized(ReactContext reactContext) {\n reactInstanceManager.removeReactInstanceEventListener(this);\n@@ -66,4 +72,4 @@ public class ReactNativeFlipper {\n }\n }\n }\n-}\n\\ No newline at end of file\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\nindex 0cad655b33..6536fc03ad 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n@@ -1,4 +1,4 @@\n-\n+\n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\nindex 8e13797d9b..7e2823fb6c 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n@@ -5,7 +5,8 @@ import android.os.Bundle;\n \n import com.facebook.react.ReactActivity;\n import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactActivityDelegate;\n \n import expo.modules.ReactActivityDelegateWrapper;\n \n@@ -29,15 +30,20 @@ public class MainActivity extends ReactActivity {\n }\n \n /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n+ * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link\n+ * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React\n+ * (aka React 18) with two boolean flags.\n */\n @Override\n protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n+ return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate(\n+ this,\n+ getMainComponentName(),\n+ // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n+ DefaultNewArchitectureEntryPoint.getFabricEnabled(), // fabricEnabled\n+ // If you opted-in for the New Architecture, we enable Concurrent React (i.e. React 18).\n+ DefaultNewArchitectureEntryPoint.getConcurrentReactEnabled() // concurrentRootEnabled\n+ ));\n }\n \n /**\n@@ -59,25 +65,4 @@ public class MainActivity extends ReactActivity {\n // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n super.invokeDefaultOnBackPressed();\n }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\nindex 7deb688b07..31c2b288c1 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n@@ -1,69 +1,70 @@\n package com.helloworld;\n \n import android.app.Application;\n-import android.content.Context;\n import android.content.res.Configuration;\n import androidx.annotation.NonNull;\n \n import com.facebook.react.PackageList;\n import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.ReactNativeHost;\n import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactNativeHost;\n import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n \n import expo.modules.ApplicationLifecycleDispatcher;\n import expo.modules.ReactNativeHostWrapper;\n \n-import java.lang.reflect.InvocationTargetException;\n import java.util.List;\n \n public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n \n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n+ private final ReactNativeHost mReactNativeHost =\n+ new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) {\n+ @Override\n+ public boolean getUseDeveloperSupport() {\n+ return BuildConfig.DEBUG;\n+ }\n \n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n+ @Override\n+ protected List getPackages() {\n+ @SuppressWarnings(\"UnnecessaryLocalVariable\")\n+ List packages = new PackageList(this).getPackages();\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return packages;\n+ }\n \n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n+ @Override\n+ protected String getJSMainModuleName() {\n+ return \"index\";\n+ }\n+\n+ @Override\n+ protected boolean isNewArchEnabled() {\n+ return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n+ }\n+\n+ @Override\n+ protected Boolean isHermesEnabled() {\n+ return BuildConfig.IS_HERMES_ENABLED;\n+ }\n+ });\n \n @Override\n public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n+ return mReactNativeHost;\n }\n \n @Override\n public void onCreate() {\n super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ DefaultNewArchitectureEntryPoint.load();\n+ }\n+ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n ApplicationLifecycleDispatcher.onApplicationCreate(this);\n }\n \n@@ -72,35 +73,4 @@ public class MainApplication extends Application implements ReactApplication {\n super.onConfigurationChanged(newConfig);\n ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex cda1391225..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source\n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_runtime \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java b/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java\nnew file mode 100644\nindex 0000000000..b510364404\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java\n@@ -0,0 +1,20 @@\n+/**\n+ * Copyright (c) Meta Platforms, Inc. and affiliates.\n+ *\n+ *

This source code is licensed under the MIT license found in the LICENSE file in the root\n+ * directory of this source tree.\n+ */\n+package com.helloworld;\n+\n+import android.content.Context;\n+import com.facebook.react.ReactInstanceManager;\n+\n+/**\n+ * Class responsible of loading Flipper inside your React Native application. This is the release\n+ * flavor of it so it's empty as we don't want to load Flipper.\n+ */\n+public class ReactNativeFlipper {\n+ public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {\n+ // Do nothing as we don't want to initialize Flipper on Release.\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/build.gradle b/templates/expo-template-bare-minimum/android/build.gradle\nindex f259b31a11..e5fda82878 100644\n--- a/templates/expo-template-bare-minimum/android/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/build.gradle\n@@ -1,49 +1,31 @@\n-import org.apache.tools.ant.taskdefs.condition.Os\n-\n // Top-level build file where you can add configuration options common to all sub-projects/modules.\n+\n buildscript {\n ext {\n- buildToolsVersion = findProperty('android.buildToolsVersion') ?: '31.0.0'\n+ buildToolsVersion = findProperty('android.buildToolsVersion') ?: '33.0.0'\n minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '21')\n- compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '31')\n- targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '31')\n+ compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '33')\n+ targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '33')\n if (findProperty('android.kotlinVersion')) {\n kotlinVersion = findProperty('android.kotlinVersion')\n }\n frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0'\n \n- if (System.properties['os.arch'] == 'aarch64') {\n- // For M1 Users we need to use the NDK 24 which added support for aarch64\n- ndkVersion = '24.0.8215888'\n- } else {\n- // Otherwise we default to the side-by-side NDK version from AGP.\n- ndkVersion = '21.4.7075529'\n- }\n+ // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.\n+ ndkVersion = \"23.1.7779620\"\n }\n repositories {\n google()\n mavenCentral()\n }\n dependencies {\n- classpath('com.android.tools.build:gradle:7.1.1')\n+ classpath('com.android.tools.build:gradle:7.4.1')\n classpath('com.facebook.react:react-native-gradle-plugin')\n- classpath('de.undercouch:gradle-download-task:5.0.1')\n- // NOTE: Do not place your application dependencies here; they belong\n- // in the individual module build.gradle files\n }\n }\n \n-def REACT_NATIVE_VERSION = new File(['node', '--print',\"JSON.parse(require('fs').readFileSync(require.resolve('react-native/package.json'), 'utf-8')).version\"].execute(null, rootDir).text.trim())\n-\n allprojects {\n- configurations.all {\n- resolutionStrategy {\n- force \"com.facebook.react:react-native:\" + REACT_NATIVE_VERSION\n- }\n- }\n-\n repositories {\n- mavenLocal()\n maven {\n // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm\n url(new File(['node', '--print', \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), '../android'))\n@@ -54,19 +36,7 @@ allprojects {\n }\n \n google()\n- mavenCentral {\n- // We don't want to fetch react-native from Maven Central as there are\n- // older versions over there.\n- content {\n- excludeGroup 'com.facebook.react'\n- }\n- }\n+ mavenCentral()\n maven { url 'https://www.jitpack.io' }\n }\n }\n-\n-configurations.all {\n- resolutionStrategy {\n- force 'com.facebook.react:react-native:0.69.6'\n- }\n-}\n\\ No newline at end of file\ndiff --git a/templates/expo-template-bare-minimum/android/gitignore b/templates/expo-template-bare-minimum/android/gitignore\nindex 64436baaf5..877b87e9a5 100644\n--- a/templates/expo-template-bare-minimum/android/gitignore\n+++ b/templates/expo-template-bare-minimum/android/gitignore\n@@ -11,11 +11,5 @@ local.properties\n *.iml\n *.hprof\n \n-# BUCK\n-buck-out/\n-\\.buckd/\n-*.keystore\n-!debug.keystore\n-\n # Bundle artifacts\n *.jsbundle\ndiff --git a/templates/expo-template-bare-minimum/android/gradle.properties b/templates/expo-template-bare-minimum/android/gradle.properties\nindex fab3fb6bcf..9911ac4afd 100644\n--- a/templates/expo-template-bare-minimum/android/gradle.properties\n+++ b/templates/expo-template-bare-minimum/android/gradle.properties\n@@ -42,7 +42,7 @@ newArchEnabled=false\n \n # The hosted JavaScript engine\n # Supported values: expo.jsEngine = \"hermes\" | \"jsc\"\n-expo.jsEngine=jsc\n+expo.jsEngine=hermes\n \n # Enable GIF support in React Native images (~200 B increase)\n expo.gif.enabled=true\ndiff --git a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar\nindex 7454180f2a..249e5832f0 100644\nBinary files a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar and b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.jar differ\ndiff --git a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\nindex 669386b870..8fad3f5a98 100644\n--- a/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\n+++ b/templates/expo-template-bare-minimum/android/gradle/wrapper/gradle-wrapper.properties\n@@ -1,5 +1,5 @@\n distributionBase=GRADLE_USER_HOME\n distributionPath=wrapper/dists\n-distributionUrl=https\\://services.gradle.org/distributions/gradle-7.3.3-all.zip\n+distributionUrl=https\\://services.gradle.org/distributions/gradle-7.5.1-all.zip\n zipStoreBase=GRADLE_USER_HOME\n zipStorePath=wrapper/dists\ndiff --git a/templates/expo-template-bare-minimum/android/gradlew b/templates/expo-template-bare-minimum/android/gradlew\nindex 1b6c787337..a69d9cb6c2 100755\n--- a/templates/expo-template-bare-minimum/android/gradlew\n+++ b/templates/expo-template-bare-minimum/android/gradlew\n@@ -205,6 +205,12 @@ set -- \\\n org.gradle.wrapper.GradleWrapperMain \\\n \"$@\"\n \n+# Stop when \"xargs\" is not available.\n+if ! command -v xargs >/dev/null 2>&1\n+then\n+ die \"xargs is not available\"\n+fi\n+\n # Use \"xargs\" to parse quoted args.\n #\n # With -n1 it outputs one arg per line, with the quotes and backslashes removed.\ndiff --git a/templates/expo-template-bare-minimum/android/gradlew.bat b/templates/expo-template-bare-minimum/android/gradlew.bat\nindex ac1b06f938..53a6b238d4 100644\n--- a/templates/expo-template-bare-minimum/android/gradlew.bat\n+++ b/templates/expo-template-bare-minimum/android/gradlew.bat\n@@ -14,7 +14,7 @@\n @rem limitations under the License.\r\n @rem\r\n \r\n-@if \"%DEBUG%\" == \"\" @echo off\r\n+@if \"%DEBUG%\"==\"\" @echo off\r\n @rem ##########################################################################\r\n @rem\r\n @rem Gradle startup script for Windows\r\n@@ -25,7 +25,7 @@\n if \"%OS%\"==\"Windows_NT\" setlocal\r\n \r\n set DIRNAME=%~dp0\r\n-if \"%DIRNAME%\" == \"\" set DIRNAME=.\r\n+if \"%DIRNAME%\"==\"\" set DIRNAME=.\r\n set APP_BASE_NAME=%~n0\r\n set APP_HOME=%DIRNAME%\r\n \r\n@@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome\n \r\n set JAVA_EXE=java.exe\r\n %JAVA_EXE% -version >NUL 2>&1\r\n-if \"%ERRORLEVEL%\" == \"0\" goto execute\r\n+if %ERRORLEVEL% equ 0 goto execute\r\n \r\n echo.\r\n echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\r\n@@ -75,13 +75,15 @@ set CLASSPATH=%APP_HOME%\\gradle\\wrapper\\gradle-wrapper.jar\n \r\n :end\r\n @rem End local scope for the variables with windows NT shell\r\n-if \"%ERRORLEVEL%\"==\"0\" goto mainEnd\r\n+if %ERRORLEVEL% equ 0 goto mainEnd\r\n \r\n :fail\r\n rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of\r\n rem the _cmd.exe /c_ return code!\r\n-if not \"\" == \"%GRADLE_EXIT_CONSOLE%\" exit 1\r\n-exit /b 1\r\n+set EXIT_CODE=%ERRORLEVEL%\r\n+if %EXIT_CODE% equ 0 set EXIT_CODE=1\r\n+if not \"\"==\"%GRADLE_EXIT_CONSOLE%\" exit %EXIT_CODE%\r\n+exit /b %EXIT_CODE%\r\n \r\n :mainEnd\r\n if \"%OS%\"==\"Windows_NT\" endlocal\r\ndiff --git a/templates/expo-template-bare-minimum/android/settings.gradle b/templates/expo-template-bare-minimum/android/settings.gradle\nindex b3332319f9..1dc416e7c1 100644\n--- a/templates/expo-template-bare-minimum/android/settings.gradle\n+++ b/templates/expo-template-bare-minimum/android/settings.gradle\n@@ -8,10 +8,3 @@ applyNativeModulesSettingsGradle(settings)\n \n include ':app'\n includeBuild(new File([\"node\", \"--print\", \"require.resolve('react-native-gradle-plugin/package.json')\"].execute(null, rootDir).text.trim()).getParentFile())\n-\n-if (settings.hasProperty(\"newArchEnabled\") && settings.newArchEnabled == \"true\") {\n- include(\":ReactAndroid\")\n- project(\":ReactAndroid\").projectDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../ReactAndroid\");\n- include(\":ReactAndroid:hermes-engine\")\n- project(\":ReactAndroid:hermes-engine\").projectDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../ReactAndroid/hermes-engine\");\n-}\ndiff --git a/templates/expo-template-bare-minimum/gitignore b/templates/expo-template-bare-minimum/gitignore\nindex c8eb0f9a64..df57ba88a1 100644\n--- a/templates/expo-template-bare-minimum/gitignore\n+++ b/templates/expo-template-bare-minimum/gitignore\n@@ -30,6 +30,9 @@ build/\n local.properties\n *.iml\n *.hprof\n+.cxx/\n+*.keystore\n+!debug.keystore\n \n # node.js\n #\n@@ -37,18 +40,15 @@ node_modules/\n npm-debug.log\n yarn-error.log\n \n-# BUCK\n-buck-out/\n-\\.buckd/\n-*.keystore\n-!debug.keystore\n-\n # Bundle artifacts\n *.jsbundle\n \n # CocoaPods\n /ios/Pods/\n \n+# Temporary files created by Metro to check the health of the file watcher\n+.metro-health-check*\n+\n # Expo\n .expo/\n web-build/\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\nindex a4a049f05d..98e6c2afea 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n@@ -214,7 +214,7 @@\n \t\t\t);\n \t\t\trunOnlyForDeploymentPostprocessing = 0;\n \t\t\tshellPath = /bin/sh;\n-\t\t\tshellScript = \"if [[ -f \\\"$PODS_ROOT/../.xcode.env\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env\\\"\\nfi\\nif [[ -f \\\"$PODS_ROOT/../.xcode.env.local\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env.local\\\"\\nfi\\n\\n# The project root by default is one level up from the ios directory\\nexport PROJECT_ROOT=\\\"$PROJECT_DIR\\\"/..\\n\\nif [[ \\\"$CONFIGURATION\\\" = *Debug* ]]; then\\n export SKIP_BUNDLING=1\\nfi\\n`\\\"$NODE_BINARY\\\" --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\\\"`\\n\\n\";\n+\t\t\tshellScript = \"if [[ -f \\\"$PODS_ROOT/../.xcode.env\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env\\\"\\nfi\\nif [[ -f \\\"$PODS_ROOT/../.xcode.env.local\\\" ]]; then\\n source \\\"$PODS_ROOT/../.xcode.env.local\\\"\\nfi\\n\\n# The project root by default is one level up from the ios directory\\nexport PROJECT_ROOT=\\\"$PROJECT_DIR\\\"/..\\n\\nif [[ \\\"$CONFIGURATION\\\" = *Debug* ]]; then\\n export SKIP_BUNDLING=1\\nfi\\nif [[ -z \\\"$ENTRY_FILE\\\" ]]; then\\n # Set the entry JS file using the bundler's entry resolution.\\n export ENTRY_FILE=\\\"$(\\\"$NODE_BINARY\\\" -e \\\"require('expo/scripts/resolveAppEntry')\\\" $PROJECT_ROOT ios relative | tail -n 1)\\\"\\nfi\\n\\n`\\\"$NODE_BINARY\\\" --print \\\"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\\\"`\\n\\n\";\n \t\t};\n \t\t08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {\n \t\t\tisa = PBXShellScriptBuildPhase;\n@@ -308,8 +308,9 @@\n \t\t\t\t\t\"FB_SONARKIT_ENABLED=1\",\n \t\t\t\t);\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n+ MARKETING_VERSION = 1.0;\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n \t\t\t\t\t\"-ObjC\",\n@@ -331,8 +332,9 @@\n \t\t\t\tCLANG_ENABLE_MODULES = YES;\n \t\t\t\tCURRENT_PROJECT_VERSION = 1;\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n+ MARKETING_VERSION = 1.0;\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n \t\t\t\t\t\"-ObjC\",\n@@ -392,7 +394,7 @@\n \t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n \t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n \t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"/usr/lib/swift $(inherited)\";\n \t\t\t\tLIBRARY_SEARCH_PATHS = \"\\\"$(inherited)\\\"\";\n \t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n@@ -441,7 +443,7 @@\n \t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n \t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n \t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n-\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.4;\n+\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"/usr/lib/swift $(inherited)\";\n \t\t\t\tLIBRARY_SEARCH_PATHS = \"\\\"$(inherited)\\\"\";\n \t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\nindex f7d2972042..1658a437eb 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\n@@ -1,9 +1,7 @@\n-#import \n-#import \n+#import \n #import \n-\n #import \n \n-@interface AppDelegate : EXAppDelegateWrapper \n+@interface AppDelegate : EXAppDelegateWrapper\n \n @end\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\nindex a6e13e11ab..8cb5aef137 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n@@ -1,100 +1,40 @@\n #import \"AppDelegate.h\"\n \n-#import \n #import \n-#import \n #import \n-#import \n-\n-#import \n-\n-#if RCT_NEW_ARCH_ENABLED\n-#import \n-#import \n-#import \n-#import \n-#import \n-#import \n-\n-#import \n-\n-static NSString *const kRNConcurrentRoot = @\"concurrentRoot\";\n-\n-@interface AppDelegate () {\n- RCTTurboModuleManager *_turboModuleManager;\n- RCTSurfacePresenterBridgeAdapter *_bridgeAdapter;\n- std::shared_ptr _reactNativeConfig;\n- facebook::react::ContextContainer::Shared _contextContainer;\n-}\n-@end\n-#endif\n \n @implementation AppDelegate\n \n - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n {\n- RCTAppSetupPrepareApp(application);\n-\n- RCTBridge *bridge = [self.reactDelegate createBridgeWithDelegate:self launchOptions:launchOptions];\n-\n-#if RCT_NEW_ARCH_ENABLED\n- _contextContainer = std::make_shared();\n- _reactNativeConfig = std::make_shared();\n- _contextContainer->insert(\"ReactNativeConfig\", _reactNativeConfig);\n- _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer];\n- bridge.surfacePresenter = _bridgeAdapter.surfacePresenter;\n-#endif\n-\n- NSDictionary *initProps = [self prepareInitialProps];\n- UIView *rootView = [self.reactDelegate createRootViewWithBridge:bridge moduleName:@\"main\" initialProperties:initProps];\n-\n- rootView.backgroundColor = [UIColor whiteColor];\n- self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n- UIViewController *rootViewController = [self.reactDelegate createRootViewController];\n- rootViewController.view = rootView;\n- self.window.rootViewController = rootViewController;\n- [self.window makeKeyAndVisible];\n+ self.moduleName = @\"main\";\n \n- [super application:application didFinishLaunchingWithOptions:launchOptions];\n+ // You can add your custom initial props in the dictionary below.\n+ // They will be passed down to the ViewController used by React Native.\n+ self.initialProps = @{};\n \n- return YES;\n+ return [super application:application didFinishLaunchingWithOptions:launchOptions];\n }\n \n-- (NSArray> *)extraModulesForBridge:(RCTBridge *)bridge\n+- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge\n {\n- // If you'd like to export some custom RCTBridgeModules, add them here!\n- return @[];\n+#if DEBUG\n+ return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\"];\n+#else\n+ return [[NSBundle mainBundle] URLForResource:@\"main\" withExtension:@\"jsbundle\"];\n+#endif\n }\n \n /// This method controls whether the `concurrentRoot`feature of React18 is turned on or off.\n ///\n /// @see: https://reactjs.org/blog/2022/03/29/react-v18.html\n /// @note: This requires to be rendering on Fabric (i.e. on the New Architecture).\n-/// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`.\n+/// @return: `true` if the `concurrentRoot` feature is enabled. Otherwise, it returns `false`.\n - (BOOL)concurrentRootEnabled\n {\n- // Switch this bool to turn on and off the concurrent root\n return true;\n }\n \n-- (NSDictionary *)prepareInitialProps\n-{\n- NSMutableDictionary *initProps = [NSMutableDictionary new];\n-#if RCT_NEW_ARCH_ENABLED\n- initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]);\n-#endif\n- return initProps;\n-}\n-\n-- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge\n-{\n-#if DEBUG\n- return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\"];\n-#else\n- return [[NSBundle mainBundle] URLForResource:@\"main\" withExtension:@\"jsbundle\"];\n-#endif\n-}\n-\n // Linking API\n - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options {\n return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options];\n@@ -124,43 +64,4 @@ static NSString *const kRNConcurrentRoot = @\"concurrentRoot\";\n return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];\n }\n \n-#if RCT_NEW_ARCH_ENABLED\n-\n-#pragma mark - RCTCxxBridgeDelegate\n-\n-- (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge\n-{\n- _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge\n- delegate:self\n- jsInvoker:bridge.jsCallInvoker];\n- return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager);\n-}\n-\n-#pragma mark RCTTurboModuleManagerDelegate\n-\n-- (Class)getModuleClassFromName:(const char *)name\n-{\n- return RCTCoreModulesClassProvider(name);\n-}\n-\n-- (std::shared_ptr)getTurboModule:(const std::string &)name\n- jsInvoker:(std::shared_ptr)jsInvoker\n-{\n- return nullptr;\n-}\n-\n-- (std::shared_ptr)getTurboModule:(const std::string &)name\n- initParams:\n- (const facebook::react::ObjCTurboModule::InitParams &)params\n-{\n- return nullptr;\n-}\n-\n-- (id)getModuleInstanceFromClass:(Class)moduleClass\n-{\n- return RCTAppSetupDefaultModuleFromClass(moduleClass);\n-}\n-\n-#endif\n-\n @end\ndiff --git a/templates/expo-template-bare-minimum/ios/Podfile b/templates/expo-template-bare-minimum/ios/Podfile\nindex 91612acca9..e523ea5cac 100644\n--- a/templates/expo-template-bare-minimum/ios/Podfile\n+++ b/templates/expo-template-bare-minimum/ios/Podfile\n@@ -5,36 +5,67 @@ require File.join(File.dirname(`node --print \"require.resolve('@react-native-com\n require 'json'\n podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}\n \n-platform :ios, podfile_properties['ios.deploymentTarget'] || '12.4'\n+ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0'\n+ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = '1' if podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] == 'true'\n+\n+platform :ios, podfile_properties['ios.deploymentTarget'] || '13.0'\n install! 'cocoapods',\n :deterministic_uuids => false\n \n+prepare_react_native_project!\n+\n+# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.\n+# because `react-native-flipper` depends on (FlipperKit,...), which will be excluded. To fix this,\n+# you can also exclude `react-native-flipper` in `react-native.config.js`\n+#\n+# ```js\n+# module.exports = {\n+# dependencies: {\n+# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),\n+# }\n+# }\n+# ```\n+flipper_config = FlipperConfiguration.disabled\n+if ENV['NO_FLIPPER'] == '1' then\n+ # Explicitly disabled through environment variables\n+ flipper_config = FlipperConfiguration.disabled\n+elsif podfile_properties.key?('ios.flipper') then\n+ # Configure Flipper in Podfile.properties.json\n+ if podfile_properties['ios.flipper'] == 'true' then\n+ flipper_config = FlipperConfiguration.enabled([\"Debug\", \"Release\"])\n+ elsif podfile_properties['ios.flipper'] != 'false' then\n+ flipper_config = FlipperConfiguration.enabled([\"Debug\", \"Release\"], { 'Flipper' => podfile_properties['ios.flipper'] })\n+ end\n+end\n+\n target 'HelloWorld' do\n use_expo_modules!\n config = use_native_modules!\n \n use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks']\n+ use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS']\n \n # Flags change depending on the env values.\n flags = get_default_flags()\n \n use_react_native!(\n :path => config[:reactNativePath],\n- :hermes_enabled => flags[:hermes_enabled] || podfile_properties['expo.jsEngine'] == 'hermes',\n+ :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes',\n :fabric_enabled => flags[:fabric_enabled],\n # An absolute path to your application root.\n- :app_path => \"#{Dir.pwd}/..\"\n+ :app_path => \"#{Pod::Config.instance.installation_root}/..\",\n+ # Note that if you have use_frameworks! enabled, Flipper will not work if enabled\n+ :flipper_configuration => flipper_config\n )\n \n- # Uncomment to opt-in to using Flipper\n- # Note that if you have use_frameworks! enabled, Flipper will not work\n- #\n- # if !ENV['CI']\n- # use_flipper!()\n- # end\n-\n post_install do |installer|\n- react_native_post_install(installer)\n+ react_native_post_install(\n+ installer,\n+ config[:reactNativePath],\n+ # Set `mac_catalyst_enabled` to `true` in order to apply patches\n+ # necessary for Mac Catalyst builds\n+ :mac_catalyst_enabled => false\n+ )\n __apply_Xcode_12_5_M1_post_install_workaround(installer)\n \n # This is necessary for Xcode 14, because it signs resource bundles by default\ndiff --git a/templates/expo-template-bare-minimum/ios/Podfile.properties.json b/templates/expo-template-bare-minimum/ios/Podfile.properties.json\nindex f6d872e81a..b1bd45da51 100644\n--- a/templates/expo-template-bare-minimum/ios/Podfile.properties.json\n+++ b/templates/expo-template-bare-minimum/ios/Podfile.properties.json\n@@ -1,3 +1,3 @@\n {\n- \"expo.jsEngine\": \"jsc\"\n+ \"expo.jsEngine\": \"hermes\"\n }\ndiff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json\nindex d5ca09a584..d1fcd513cc 100644\n--- a/templates/expo-template-bare-minimum/package.json\n+++ b/templates/expo-template-bare-minimum/package.json\n@@ -1,7 +1,7 @@\n {\n \"name\": \"expo-template-bare-minimum\",\n \"description\": \"This bare project template includes a minimal setup for using unimodules with React Native.\",\n- \"version\": \"46.0.37\",\n+ \"version\": \"48.0.21\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"start\": \"expo start --dev-client\",\n@@ -10,15 +10,13 @@\n \"web\": \"expo start --web\"\n },\n \"dependencies\": {\n- \"expo\": \"~46.0.21\",\n- \"expo-splash-screen\": \"~0.16.2\",\n- \"expo-status-bar\": \"~1.4.0\",\n- \"react\": \"18.0.0\",\n- \"react-dom\": \"18.0.0\",\n- \"react-native\": \"0.69.9\",\n- \"react-native-web\": \"~0.18.7\"\n+ \"expo\": \"~48.0.21\",\n+ \"expo-splash-screen\": \"~0.18.2\",\n+ \"expo-status-bar\": \"~1.4.4\",\n+ \"react\": \"18.2.0\",\n+ \"react-native\": \"0.71.14\"\n },\n \"devDependencies\": {\n- \"@babel/core\": \"^7.12.9\"\n+ \"@babel/core\": \"^7.20.0\"\n }\n }\n","47..48":"diff --git a/templates/expo-template-bare-minimum/.buckconfig b/templates/expo-template-bare-minimum/.buckconfig\ndeleted file mode 100644\nindex 934256cb29..0000000000\n--- a/templates/expo-template-bare-minimum/.buckconfig\n+++ /dev/null\n@@ -1,6 +0,0 @@\n-\n-[android]\n- target = Google Inc.:Google APIs:23\n-\n-[maven_repositories]\n- central = https://repo1.maven.org/maven2\ndiff --git a/templates/expo-template-bare-minimum/.npmignore b/templates/expo-template-bare-minimum/.npmignore\nindex 35490b6612..4e6ce00391 100644\n--- a/templates/expo-template-bare-minimum/.npmignore\n+++ b/templates/expo-template-bare-minimum/.npmignore\n@@ -20,3 +20,4 @@ ios/Pods\n android/.build\n android/app/build\n android/.gradle\n+ios/.xcode.env.local\ndiff --git a/templates/expo-template-bare-minimum/android/app/BUCK b/templates/expo-template-bare-minimum/android/app/BUCK\ndeleted file mode 100644\nindex 0e77904834..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/BUCK\n+++ /dev/null\n@@ -1,55 +0,0 @@\n-# To learn about Buck see [Docs](https://buckbuild.com/).\n-# To run your application with Buck:\n-# - install Buck\n-# - `npm start` - to start the packager\n-# - `cd android`\n-# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname \"CN=Android Debug,O=Android,C=US\"`\n-# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck\n-# - `buck install -r android/app` - compile, install and run application\n-#\n-\n-load(\":build_defs.bzl\", \"create_aar_targets\", \"create_jar_targets\")\n-\n-lib_deps = []\n-\n-create_aar_targets(glob([\"libs/*.aar\"]))\n-\n-create_jar_targets(glob([\"libs/*.jar\"]))\n-\n-android_library(\n- name = \"all-libs\",\n- exported_deps = lib_deps,\n-)\n-\n-android_library(\n- name = \"app-code\",\n- srcs = glob([\n- \"src/main/java/**/*.java\",\n- ]),\n- deps = [\n- \":all-libs\",\n- \":build_config\",\n- \":res\",\n- ],\n-)\n-\n-android_build_config(\n- name = \"build_config\",\n- package = \"com.helloworld\",\n-)\n-\n-android_resource(\n- name = \"res\",\n- package = \"com.helloworld\",\n- res = \"src/main/res\",\n-)\n-\n-android_binary(\n- name = \"app\",\n- keystore = \"//android/keystores:debug\",\n- manifest = \"src/main/AndroidManifest.xml\",\n- package_type = \"debug\",\n- deps = [\n- \":app-code\",\n- ],\n-)\ndiff --git a/templates/expo-template-bare-minimum/android/app/build.gradle b/templates/expo-template-bare-minimum/android/app/build.gradle\nindex 648135611c..189390e7e3 100644\n--- a/templates/expo-template-bare-minimum/android/app/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/app/build.gradle\n@@ -1,135 +1,107 @@\n apply plugin: \"com.android.application\"\n+apply plugin: \"com.facebook.react\"\n \n import com.android.build.OutputFile\n \n-/**\n- * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets\n- * and bundleReleaseJsAndAssets).\n- * These basically call `react-native bundle` with the correct arguments during the Android build\n- * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the\n- * bundle directly from the development server. Below you can see all the possible configurations\n- * and their defaults. If you decide to add a configuration block, make sure to add it before the\n- * `apply from: \"../../node_modules/react-native/react.gradle\"` line.\n- *\n- * project.ext.react = [\n- * // the name of the generated asset file containing your JS bundle\n- * bundleAssetName: \"index.android.bundle\",\n- *\n- * // the entry file for bundle generation. If none specified and\n- * // \"index.android.js\" exists, it will be used. Otherwise \"index.js\" is\n- * // default. Can be overridden with ENTRY_FILE environment variable.\n- * entryFile: \"index.android.js\",\n- *\n- * // https://reactnative.dev/docs/performance#enable-the-ram-format\n- * bundleCommand: \"ram-bundle\",\n- *\n- * // whether to bundle JS and assets in debug mode\n- * bundleInDebug: false,\n- *\n- * // whether to bundle JS and assets in release mode\n- * bundleInRelease: true,\n- *\n- * // whether to bundle JS and assets in another build variant (if configured).\n- * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants\n- * // The configuration property can be in the following formats\n- * // 'bundleIn${productFlavor}${buildType}'\n- * // 'bundleIn${buildType}'\n- * // bundleInFreeDebug: true,\n- * // bundleInPaidRelease: true,\n- * // bundleInBeta: true,\n- *\n- * // whether to disable dev mode in custom build variants (by default only disabled in release)\n- * // for example: to disable dev mode in the staging build type (if configured)\n- * devDisabledInStaging: true,\n- * // The configuration property can be in the following formats\n- * // 'devDisabledIn${productFlavor}${buildType}'\n- * // 'devDisabledIn${buildType}'\n- *\n- * // the root of your project, i.e. where \"package.json\" lives\n- * root: \"../../\",\n- *\n- * // where to put the JS bundle asset in debug mode\n- * jsBundleDirDebug: \"$buildDir/intermediates/assets/debug\",\n- *\n- * // where to put the JS bundle asset in release mode\n- * jsBundleDirRelease: \"$buildDir/intermediates/assets/release\",\n- *\n- * // where to put drawable resources / React Native assets, e.g. the ones you use via\n- * // require('./image.png')), in debug mode\n- * resourcesDirDebug: \"$buildDir/intermediates/res/merged/debug\",\n- *\n- * // where to put drawable resources / React Native assets, e.g. the ones you use via\n- * // require('./image.png')), in release mode\n- * resourcesDirRelease: \"$buildDir/intermediates/res/merged/release\",\n- *\n- * // by default the gradle tasks are skipped if none of the JS files or assets change; this means\n- * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to\n- * // date; if you have any other folders that you want to ignore for performance reasons (gradle\n- * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/\n- * // for example, you might want to remove it from here.\n- * inputExcludes: [\"android/**\", \"ios/**\"],\n- *\n- * // override which node gets called and with what additional arguments\n- * nodeExecutableAndArgs: [\"node\"],\n- *\n- * // supply additional arguments to the packager\n- * extraPackagerArgs: []\n- * ]\n- */\n-\n def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath()\n+def expoDebuggableVariants = ['debug']\n+// Override `debuggableVariants` for expo-updates debugging\n+if (System.getenv('EX_UPDATES_NATIVE_DEBUG') == \"1\") {\n+ react {\n+ expoDebuggableVariants = []\n+ }\n+}\n \n-def reactNativeRoot = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath()\n \n-project.ext.react = [\n- entryFile: [\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\"].execute(null, rootDir).text.trim(),\n- enableHermes: (findProperty('expo.jsEngine') ?: \"jsc\") == \"hermes\",\n- hermesCommand: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/sdks/hermesc/%OS-BIN%/hermesc\",\n- cliPath: \"${reactNativeRoot}/cli.js\",\n- composeSourceMapsPath: \"${reactNativeRoot}/scripts/compose-source-maps.js\",\n-]\n+/**\n+ * This is the configuration block to customize your React Native Android app.\n+ * By default you don't need to apply any configuration, just uncomment the lines you need.\n+ */\n+react {\n+ entryFile = file([\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\", \"absolute\"].execute(null, rootDir).text.trim())\n+ reactNativeDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()\n+ hermesCommand = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/sdks/hermesc/%OS-BIN%/hermesc\"\n+ debuggableVariants = expoDebuggableVariants\n+\n+ /* Folders */\n+ // The root of your project, i.e. where \"package.json\" lives. Default is '..'\n+ // root = file(\"../\")\n+ // The folder where the react-native NPM package is. Default is ../node_modules/react-native\n+ // reactNativeDir = file(\"../node_modules/react-native\")\n+ // The folder where the react-native Codegen package is. Default is ../node_modules/react-native-codegen\n+ // codegenDir = file(\"../node_modules/react-native-codegen\")\n+ // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js\n+ // cliFile = file(\"../node_modules/react-native/cli.js\")\n+\n+ /* Variants */\n+ // The list of variants to that are debuggable. For those we're going to\n+ // skip the bundling of the JS bundle and the assets. By default is just 'debug'.\n+ // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.\n+ // debuggableVariants = [\"liteDebug\", \"prodDebug\"]\n+\n+ /* Bundling */\n+ // A list containing the node command and its flags. Default is just 'node'.\n+ // nodeExecutableAndArgs = [\"node\"]\n+ //\n+ // The command to run when bundling. By default is 'bundle'\n+ // bundleCommand = \"ram-bundle\"\n+ //\n+ // The path to the CLI configuration file. Default is empty.\n+ // bundleConfig = file(../rn-cli.config.js)\n+ //\n+ // The name of the generated asset file containing your JS bundle\n+ // bundleAssetName = \"MyApplication.android.bundle\"\n+ //\n+ // The entry file for bundle generation. Default is 'index.android.js' or 'index.js'\n+ // entryFile = file(\"../js/MyApplication.android.js\")\n+ //\n+ // A list of extra flags to pass to the 'bundle' commands.\n+ // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle\n+ // extraPackagerArgs = []\n+\n+ /* Hermes Commands */\n+ // The hermes compiler command to run. By default it is 'hermesc'\n+ // hermesCommand = \"$rootDir/my-custom-hermesc/bin/hermesc\"\n+ //\n+ // The list of flags to pass to the Hermes compiler. By default is \"-O\", \"-output-source-map\"\n+ // hermesFlags = [\"-O\", \"-output-source-map\"]\n+}\n \n-apply from: new File(reactNativeRoot, \"react.gradle\")\n+// Override `hermesEnabled` by `expo.jsEngine`\n+ext {\n+ hermesEnabled = (findProperty('expo.jsEngine') ?: \"hermes\") == \"hermes\"\n+}\n \n /**\n- * Set this to true to create two separate APKs instead of one:\n- * - An APK that only works on ARM devices\n- * - An APK that only works on x86 devices\n- * The advantage is the size of the APK is reduced by about 4MB.\n- * Upload all the APKs to the Play Store and people will download\n- * the correct one based on the CPU architecture of their device.\n+ * Set this to true to create four separate APKs instead of one,\n+ * one for each native architecture. This is useful if you don't\n+ * use App Bundles (https://developer.android.com/guide/app-bundle/)\n+ * and want to have separate APKs to upload to the Play Store.\n */\n def enableSeparateBuildPerCPUArchitecture = false\n \n /**\n- * Run Proguard to shrink the Java bytecode in release builds.\n+ * Set this to true to Run Proguard on Release builds to minify the Java bytecode.\n */\n def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean()\n \n /**\n- * The preferred build flavor of JavaScriptCore.\n+ * The preferred build flavor of JavaScriptCore (JSC)\n *\n * For example, to use the international variant, you can use:\n * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`\n *\n * The international variant includes ICU i18n library and necessary data\n * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that\n- * give correct results when using with locales other than en-US. Note that\n+ * give correct results when using with locales other than en-US. Note that\n * this variant is about 6MiB larger per architecture than default.\n */\n def jscFlavor = 'org.webkit:android-jsc:+'\n \n /**\n- * Whether to enable the Hermes VM.\n- *\n- * This should be set on project.ext.react and that value will be read here. If it is not set\n- * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode\n- * and the benefits of using Hermes will therefore be sharply reduced.\n- */\n-def enableHermes = project.ext.react.get(\"enableHermes\", false);\n-\n-/**\n- * Architectures to build native code for.\n+ * Private function to get the list of Native Architectures you want to build.\n+ * This reads the value from reactNativeArchitectures in your gradle.properties\n+ * file and works together with the --active-arch-only flag of react-native run-android.\n */\n def reactNativeArchitectures() {\n def value = project.getProperties().get(\"reactNativeArchitectures\")\n@@ -141,72 +113,13 @@ android {\n \n compileSdkVersion rootProject.ext.compileSdkVersion\n \n+ namespace \"com.helloworld\"\n defaultConfig {\n applicationId \"com.helloworld\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n- buildConfigField \"boolean\", \"IS_NEW_ARCHITECTURE_ENABLED\", isNewArchitectureEnabled().toString()\n-\n- if (isNewArchitectureEnabled()) {\n- // We configure the CMake build only if you decide to opt-in for the New Architecture.\n- externalNativeBuild {\n- cmake {\n- arguments \"-DPROJECT_BUILD_DIR=$buildDir\",\n- \"-DREACT_ANDROID_DIR=${reactNativeRoot}/ReactAndroid\",\n- \"-DREACT_ANDROID_BUILD_DIR=${reactNativeRoot}/ReactAndroid/build\",\n- \"-DNODE_MODULES_DIR=$rootDir/../node_modules\",\n- \"-DANDROID_STL=c++_shared\"\n- }\n- }\n- if (!enableSeparateBuildPerCPUArchitecture) {\n- ndk {\n- abiFilters (*reactNativeArchitectures())\n- }\n- }\n- }\n- }\n-\n- if (isNewArchitectureEnabled()) {\n- // We configure the CMake build only if you decide to opt-in for the New Architecture.\n- externalNativeBuild {\n- cmake {\n- path \"$projectDir/src/main/jni/CMakeLists.txt\"\n- }\n- }\n- def reactAndroidProjectDir = project(':ReactAndroid').projectDir\n- def packageReactNdkDebugLibs = tasks.register(\"packageReactNdkDebugLibs\", Copy) {\n- dependsOn(\":ReactAndroid:packageReactNdkDebugLibsForBuck\")\n- from(\"$reactAndroidProjectDir/src/main/jni/prebuilt/lib\")\n- into(\"$buildDir/react-ndk/exported\")\n- }\n- def packageReactNdkReleaseLibs = tasks.register(\"packageReactNdkReleaseLibs\", Copy) {\n- dependsOn(\":ReactAndroid:packageReactNdkReleaseLibsForBuck\")\n- from(\"$reactAndroidProjectDir/src/main/jni/prebuilt/lib\")\n- into(\"$buildDir/react-ndk/exported\")\n- }\n- afterEvaluate {\n- // If you wish to add a custom TurboModule or component locally,\n- // you should uncomment this line.\n- // preBuild.dependsOn(\"generateCodegenArtifactsFromSchema\")\n- preDebugBuild.dependsOn(packageReactNdkDebugLibs)\n- preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)\n-\n- // Due to a bug inside AGP, we have to explicitly set a dependency\n- // between configureCMakeDebug* tasks and the preBuild tasks.\n- // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732\n- configureCMakeRelWithDebInfo.dependsOn(preReleaseBuild)\n- configureCMakeDebug.dependsOn(preDebugBuild)\n- reactNativeArchitectures().each { architecture ->\n- tasks.findByName(\"configureCMakeDebug[${architecture}]\")?.configure {\n- dependsOn(\"preDebugBuild\")\n- }\n- tasks.findByName(\"configureCMakeRelWithDebInfo[${architecture}]\")?.configure {\n- dependsOn(\"preReleaseBuild\")\n- }\n- }\n- }\n }\n \n splits {\n@@ -233,6 +146,7 @@ android {\n // Caution! In production, you need to generate your own keystore file.\n // see https://reactnative.dev/docs/signed-apk-android.\n signingConfig signingConfigs.debug\n+ shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false)\n minifyEnabled enableProguardInReleaseBuilds\n proguardFiles getDefaultProguardFile(\"proguard-android.txt\"), \"proguard-rules.pro\"\n }\n@@ -243,11 +157,12 @@ android {\n variant.outputs.each { output ->\n // For each separate APK per architecture, set a unique version code as described here:\n // https://developer.android.com/studio/build/configure-apk-splits.html\n+ // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.\n def versionCodes = [\"armeabi-v7a\": 1, \"x86\": 2, \"arm64-v8a\": 3, \"x86_64\": 4]\n def abi = output.getFilter(OutputFile.ABI)\n if (abi != null) { // null for the universal-debug, universal-release variants\n output.versionCodeOverride =\n- versionCodes.get(abi) * 1048576 + defaultConfig.versionCode\n+ defaultConfig.versionCode * 1000 + versionCodes.get(abi)\n }\n \n }\n@@ -275,10 +190,8 @@ android {\n }\n \n dependencies {\n- implementation fileTree(dir: \"libs\", include: [\"*.jar\"])\n-\n- //noinspection GradleDynamicVersion\n- implementation \"com.facebook.react:react-native:+\" // From node_modules\n+ // The version of react-native is set by the React Native Gradle Plugin\n+ implementation(\"com.facebook.react:react-android\")\n \n def isGifEnabled = (findProperty('expo.gif.enabled') ?: \"\") == \"true\";\n def isWebpEnabled = (findProperty('expo.webp.enabled') ?: \"\") == \"true\";\n@@ -287,76 +200,38 @@ dependencies {\n \n // If your app supports Android versions before Ice Cream Sandwich (API level 14)\n if (isGifEnabled || isWebpEnabled) {\n- implementation \"com.facebook.fresco:fresco:${frescoVersion}\"\n- implementation \"com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:fresco:${frescoVersion}\")\n+ implementation(\"com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}\")\n }\n \n if (isGifEnabled) {\n // For animated gif support\n- implementation \"com.facebook.fresco:animated-gif:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:animated-gif:${frescoVersion}\")\n }\n \n if (isWebpEnabled) {\n // For webp support\n- implementation \"com.facebook.fresco:webpsupport:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:webpsupport:${frescoVersion}\")\n if (isWebpAnimatedEnabled) {\n // Animated webp support\n- implementation \"com.facebook.fresco:animated-webp:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:animated-webp:${frescoVersion}\")\n }\n }\n \n- implementation \"androidx.swiperefreshlayout:swiperefreshlayout:1.0.0\"\n- debugImplementation(\"com.facebook.flipper:flipper:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.fbjni'\n- }\n+ implementation(\"androidx.swiperefreshlayout:swiperefreshlayout:1.0.0\")\n+\n+ debugImplementation(\"com.facebook.flipper:flipper:${FLIPPER_VERSION}\")\n debugImplementation(\"com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.flipper'\n exclude group:'com.squareup.okhttp3', module:'okhttp'\n }\n- debugImplementation(\"com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.flipper'\n- }\n+ debugImplementation(\"com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}\")\n \n- if (enableHermes) {\n- //noinspection GradleDynamicVersion\n- implementation(\"com.facebook.react:hermes-engine:+\") { // From node_modules\n- exclude group:'com.facebook.fbjni'\n- }\n+ if (hermesEnabled.toBoolean()) {\n+ implementation(\"com.facebook.react:hermes-android\")\n } else {\n implementation jscFlavor\n }\n }\n \n-if (isNewArchitectureEnabled()) {\n- // If new architecture is enabled, we let you build RN from source\n- // Otherwise we fallback to a prebuilt .aar bundled in the NPM package.\n- // This will be applied to all the imported transtitive dependency.\n- configurations.all {\n- resolutionStrategy.dependencySubstitution {\n- substitute(module(\"com.facebook.react:react-native\"))\n- .using(project(\":ReactAndroid\"))\n- .because(\"On New Architecture we're building React Native from source\")\n- substitute(module(\"com.facebook.react:hermes-engine\"))\n- .using(project(\":ReactAndroid:hermes-engine\"))\n- .because(\"On New Architecture we're building Hermes from source\")\n- }\n- }\n-}\n-\n-// Run this once to be able to run the application with BUCK\n-// puts all compile dependencies into folder libs for BUCK to use\n-task copyDownloadableDepsToLibs(type: Copy) {\n- from configurations.implementation\n- into 'libs'\n-}\n-\n apply from: new File([\"node\", \"--print\", \"require.resolve('@react-native-community/cli-platform-android/package.json')\"].execute(null, rootDir).text.trim(), \"../native_modules.gradle\");\n applyNativeModulesAppBuildGradle(project)\n-\n-def isNewArchitectureEnabled() {\n- // To opt-in for the New Architecture, you can either:\n- // - Set `newArchEnabled` to true inside the `gradle.properties` file\n- // - Invoke gradle with `-newArchEnabled=true`\n- // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`\n- return project.hasProperty(\"newArchEnabled\") && project.newArchEnabled == \"true\"\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/build_defs.bzl b/templates/expo-template-bare-minimum/android/app/build_defs.bzl\ndeleted file mode 100644\nindex fff270f8d1..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/build_defs.bzl\n+++ /dev/null\n@@ -1,19 +0,0 @@\n-\"\"\"Helper definitions to glob .aar and .jar targets\"\"\"\n-\n-def create_aar_targets(aarfiles):\n- for aarfile in aarfiles:\n- name = \"aars__\" + aarfile[aarfile.rindex(\"/\") + 1:aarfile.rindex(\".aar\")]\n- lib_deps.append(\":\" + name)\n- android_prebuilt_aar(\n- name = name,\n- aar = aarfile,\n- )\n-\n-def create_jar_targets(jarfiles):\n- for jarfile in jarfiles:\n- name = \"jars__\" + jarfile[jarfile.rindex(\"/\") + 1:jarfile.rindex(\".jar\")]\n- lib_deps.append(\":\" + name)\n- prebuilt_jar(\n- name = name,\n- binary_jar = jarfile,\n- )\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java b/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\nindex 8cddb11cb2..595dd5831c 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\n@@ -1,5 +1,5 @@\n /**\n- * Copyright (c) Facebook, Inc. and its affiliates.\n+ * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n *

This source code is licensed under the MIT license found in the LICENSE file in the root\n * directory of this source tree.\n@@ -17,22 +17,27 @@ import com.facebook.flipper.plugins.inspector.DescriptorMapping;\n import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;\n import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;\n import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;\n-import com.facebook.flipper.plugins.react.ReactFlipperPlugin;\n import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;\n+import com.facebook.react.ReactInstanceEventListener;\n import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.bridge.ReactContext;\n import com.facebook.react.modules.network.NetworkingModule;\n import okhttp3.OkHttpClient;\n \n+/**\n+ * Class responsible of loading Flipper inside your React Native application. This is the debug\n+ * flavor of it. Here you can add your own plugins and customize the Flipper setup.\n+ */\n public class ReactNativeFlipper {\n public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {\n if (FlipperUtils.shouldEnableFlipper(context)) {\n final FlipperClient client = AndroidFlipperClient.getInstance(context);\n+\n client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));\n- client.addPlugin(new ReactFlipperPlugin());\n client.addPlugin(new DatabasesFlipperPlugin(context));\n client.addPlugin(new SharedPreferencesFlipperPlugin(context));\n client.addPlugin(CrashReporterPlugin.getInstance());\n+\n NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();\n NetworkingModule.setCustomClientBuilder(\n new NetworkingModule.CustomClientBuilder() {\n@@ -43,12 +48,13 @@ public class ReactNativeFlipper {\n });\n client.addPlugin(networkFlipperPlugin);\n client.start();\n+\n // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized\n // Hence we run if after all native modules have been initialized\n ReactContext reactContext = reactInstanceManager.getCurrentReactContext();\n if (reactContext == null) {\n reactInstanceManager.addReactInstanceEventListener(\n- new ReactInstanceManager.ReactInstanceEventListener() {\n+ new ReactInstanceEventListener() {\n @Override\n public void onReactContextInitialized(ReactContext reactContext) {\n reactInstanceManager.removeReactInstanceEventListener(this);\n@@ -66,4 +72,4 @@ public class ReactNativeFlipper {\n }\n }\n }\n-}\n\\ No newline at end of file\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\nindex 0cad655b33..6536fc03ad 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n@@ -1,4 +1,4 @@\n-\n+\n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\nindex 8e13797d9b..7e2823fb6c 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n@@ -5,7 +5,8 @@ import android.os.Bundle;\n \n import com.facebook.react.ReactActivity;\n import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactActivityDelegate;\n \n import expo.modules.ReactActivityDelegateWrapper;\n \n@@ -29,15 +30,20 @@ public class MainActivity extends ReactActivity {\n }\n \n /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n+ * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link\n+ * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React\n+ * (aka React 18) with two boolean flags.\n */\n @Override\n protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n+ return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate(\n+ this,\n+ getMainComponentName(),\n+ // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n+ DefaultNewArchitectureEntryPoint.getFabricEnabled(), // fabricEnabled\n+ // If you opted-in for the New Architecture, we enable Concurrent React (i.e. React 18).\n+ DefaultNewArchitectureEntryPoint.getConcurrentReactEnabled() // concurrentRootEnabled\n+ ));\n }\n \n /**\n@@ -59,25 +65,4 @@ public class MainActivity extends ReactActivity {\n // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n super.invokeDefaultOnBackPressed();\n }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\nindex 7deb688b07..31c2b288c1 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n@@ -1,69 +1,70 @@\n package com.helloworld;\n \n import android.app.Application;\n-import android.content.Context;\n import android.content.res.Configuration;\n import androidx.annotation.NonNull;\n \n import com.facebook.react.PackageList;\n import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.ReactNativeHost;\n import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactNativeHost;\n import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n \n import expo.modules.ApplicationLifecycleDispatcher;\n import expo.modules.ReactNativeHostWrapper;\n \n-import java.lang.reflect.InvocationTargetException;\n import java.util.List;\n \n public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n \n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n+ private final ReactNativeHost mReactNativeHost =\n+ new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) {\n+ @Override\n+ public boolean getUseDeveloperSupport() {\n+ return BuildConfig.DEBUG;\n+ }\n \n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n+ @Override\n+ protected List getPackages() {\n+ @SuppressWarnings(\"UnnecessaryLocalVariable\")\n+ List packages = new PackageList(this).getPackages();\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return packages;\n+ }\n \n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n+ @Override\n+ protected String getJSMainModuleName() {\n+ return \"index\";\n+ }\n+\n+ @Override\n+ protected boolean isNewArchEnabled() {\n+ return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n+ }\n+\n+ @Override\n+ protected Boolean isHermesEnabled() {\n+ return BuildConfig.IS_HERMES_ENABLED;\n+ }\n+ });\n \n @Override\n public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n+ return mReactNativeHost;\n }\n \n @Override\n public void onCreate() {\n super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ DefaultNewArchitectureEntryPoint.load();\n+ }\n+ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n ApplicationLifecycleDispatcher.onApplicationCreate(this);\n }\n \n@@ -72,35 +73,4 @@ public class MainApplication extends Application implements ReactApplication {\n super.onConfigurationChanged(newConfig);\n ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt b/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\ndeleted file mode 100644\nindex d2cad3a326..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-cmake_minimum_required(VERSION 3.13)\n-\n-# Define the library name here.\n-project(helloworld_appmodules)\n-\n-# This file includes all the necessary to let you build your application with the New Architecture.\n-include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 26162dd872..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n-\n- // Module providers autolinked by RN CLI\n- auto rncli_module = rncli_ModuleProvider(moduleName, params);\n- if (rncli_module != nullptr) {\n- return rncli_module;\n- }\n-\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex b38ccf53fd..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex 5fd688c509..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- const std::string &name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 9ee38a81f6..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(const std::string &name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 54f598a486..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,65 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Autolinked providers registered by RN CLI\n- rncli_registerProviders(providerRegistry);\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java b/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java\nnew file mode 100644\nindex 0000000000..b510364404\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java\n@@ -0,0 +1,20 @@\n+/**\n+ * Copyright (c) Meta Platforms, Inc. and affiliates.\n+ *\n+ *

This source code is licensed under the MIT license found in the LICENSE file in the root\n+ * directory of this source tree.\n+ */\n+package com.helloworld;\n+\n+import android.content.Context;\n+import com.facebook.react.ReactInstanceManager;\n+\n+/**\n+ * Class responsible of loading Flipper inside your React Native application. This is the release\n+ * flavor of it so it's empty as we don't want to load Flipper.\n+ */\n+public class ReactNativeFlipper {\n+ public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {\n+ // Do nothing as we don't want to initialize Flipper on Release.\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/build.gradle b/templates/expo-template-bare-minimum/android/build.gradle\nindex 8181b282cd..e5fda82878 100644\n--- a/templates/expo-template-bare-minimum/android/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/build.gradle\n@@ -2,47 +2,30 @@\n \n buildscript {\n ext {\n- buildToolsVersion = findProperty('android.buildToolsVersion') ?: '31.0.0'\n+ buildToolsVersion = findProperty('android.buildToolsVersion') ?: '33.0.0'\n minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '21')\n- compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '31')\n- targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '31')\n+ compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '33')\n+ targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '33')\n if (findProperty('android.kotlinVersion')) {\n kotlinVersion = findProperty('android.kotlinVersion')\n }\n frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0'\n \n- if (System.properties['os.arch'] == 'aarch64') {\n- // For M1 Users we need to use the NDK 24 which added support for aarch64\n- ndkVersion = '24.0.8215888'\n- } else {\n- // Otherwise we default to the side-by-side NDK version from AGP.\n- ndkVersion = '21.4.7075529'\n- }\n+ // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.\n+ ndkVersion = \"23.1.7779620\"\n }\n repositories {\n google()\n mavenCentral()\n }\n dependencies {\n- classpath('com.android.tools.build:gradle:7.2.1')\n+ classpath('com.android.tools.build:gradle:7.4.1')\n classpath('com.facebook.react:react-native-gradle-plugin')\n- classpath('de.undercouch:gradle-download-task:5.0.1')\n- // NOTE: Do not place your application dependencies here; they belong\n- // in the individual module build.gradle files\n }\n }\n \n-def REACT_NATIVE_VERSION = new File(['node', '--print', \"JSON.parse(require('fs').readFileSync(require.resolve('react-native/package.json'), 'utf-8')).version\"].execute(null, rootDir).text.trim())\n-\n allprojects {\n- configurations.all {\n- resolutionStrategy {\n- force \"com.facebook.react:react-native:\" + REACT_NATIVE_VERSION\n- }\n- }\n-\n repositories {\n- mavenLocal()\n maven {\n // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm\n url(new File(['node', '--print', \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), '../android'))\n@@ -53,13 +36,7 @@ allprojects {\n }\n \n google()\n- mavenCentral {\n- // We don't want to fetch react-native from Maven Central as there are\n- // older versions over there.\n- content {\n- excludeGroup 'com.facebook.react'\n- }\n- }\n+ mavenCentral()\n maven { url 'https://www.jitpack.io' }\n }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/gitignore b/templates/expo-template-bare-minimum/android/gitignore\nindex 64436baaf5..877b87e9a5 100644\n--- a/templates/expo-template-bare-minimum/android/gitignore\n+++ b/templates/expo-template-bare-minimum/android/gitignore\n@@ -11,11 +11,5 @@ local.properties\n *.iml\n *.hprof\n \n-# BUCK\n-buck-out/\n-\\.buckd/\n-*.keystore\n-!debug.keystore\n-\n # Bundle artifacts\n *.jsbundle\ndiff --git a/templates/expo-template-bare-minimum/android/gradle.properties b/templates/expo-template-bare-minimum/android/gradle.properties\nindex fab3fb6bcf..9911ac4afd 100644\n--- a/templates/expo-template-bare-minimum/android/gradle.properties\n+++ b/templates/expo-template-bare-minimum/android/gradle.properties\n@@ -42,7 +42,7 @@ newArchEnabled=false\n \n # The hosted JavaScript engine\n # Supported values: expo.jsEngine = \"hermes\" | \"jsc\"\n-expo.jsEngine=jsc\n+expo.jsEngine=hermes\n \n # Enable GIF support in React Native images (~200 B increase)\n expo.gif.enabled=true\ndiff --git a/templates/expo-template-bare-minimum/android/settings.gradle b/templates/expo-template-bare-minimum/android/settings.gradle\nindex b3332319f9..1dc416e7c1 100644\n--- a/templates/expo-template-bare-minimum/android/settings.gradle\n+++ b/templates/expo-template-bare-minimum/android/settings.gradle\n@@ -8,10 +8,3 @@ applyNativeModulesSettingsGradle(settings)\n \n include ':app'\n includeBuild(new File([\"node\", \"--print\", \"require.resolve('react-native-gradle-plugin/package.json')\"].execute(null, rootDir).text.trim()).getParentFile())\n-\n-if (settings.hasProperty(\"newArchEnabled\") && settings.newArchEnabled == \"true\") {\n- include(\":ReactAndroid\")\n- project(\":ReactAndroid\").projectDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../ReactAndroid\");\n- include(\":ReactAndroid:hermes-engine\")\n- project(\":ReactAndroid:hermes-engine\").projectDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../ReactAndroid/hermes-engine\");\n-}\ndiff --git a/templates/expo-template-bare-minimum/gitignore b/templates/expo-template-bare-minimum/gitignore\nindex 67397f65f9..df57ba88a1 100644\n--- a/templates/expo-template-bare-minimum/gitignore\n+++ b/templates/expo-template-bare-minimum/gitignore\n@@ -31,6 +31,8 @@ local.properties\n *.iml\n *.hprof\n .cxx/\n+*.keystore\n+!debug.keystore\n \n # node.js\n #\n@@ -38,18 +40,15 @@ node_modules/\n npm-debug.log\n yarn-error.log\n \n-# BUCK\n-buck-out/\n-\\.buckd/\n-*.keystore\n-!debug.keystore\n-\n # Bundle artifacts\n *.jsbundle\n \n # CocoaPods\n /ios/Pods/\n \n+# Temporary files created by Metro to check the health of the file watcher\n+.metro-health-check*\n+\n # Expo\n .expo/\n web-build/\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\nindex 62a1be2493..98e6c2afea 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld.xcodeproj/project.pbxproj\n@@ -310,6 +310,7 @@\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n \t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n+ MARKETING_VERSION = 1.0;\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n \t\t\t\t\t\"-ObjC\",\n@@ -333,6 +334,7 @@\n \t\t\t\tINFOPLIST_FILE = HelloWorld/Info.plist;\n \t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n \t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n+ MARKETING_VERSION = 1.0;\n \t\t\t\tOTHER_LDFLAGS = (\n \t\t\t\t\t\"$(inherited)\",\n \t\t\t\t\t\"-ObjC\",\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\nindex f7d2972042..1658a437eb 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.h\n@@ -1,9 +1,7 @@\n-#import \n-#import \n+#import \n #import \n-\n #import \n \n-@interface AppDelegate : EXAppDelegateWrapper \n+@interface AppDelegate : EXAppDelegateWrapper\n \n @end\ndiff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\nindex a6e13e11ab..8cb5aef137 100644\n--- a/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n+++ b/templates/expo-template-bare-minimum/ios/HelloWorld/AppDelegate.mm\n@@ -1,100 +1,40 @@\n #import \"AppDelegate.h\"\n \n-#import \n #import \n-#import \n #import \n-#import \n-\n-#import \n-\n-#if RCT_NEW_ARCH_ENABLED\n-#import \n-#import \n-#import \n-#import \n-#import \n-#import \n-\n-#import \n-\n-static NSString *const kRNConcurrentRoot = @\"concurrentRoot\";\n-\n-@interface AppDelegate () {\n- RCTTurboModuleManager *_turboModuleManager;\n- RCTSurfacePresenterBridgeAdapter *_bridgeAdapter;\n- std::shared_ptr _reactNativeConfig;\n- facebook::react::ContextContainer::Shared _contextContainer;\n-}\n-@end\n-#endif\n \n @implementation AppDelegate\n \n - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n {\n- RCTAppSetupPrepareApp(application);\n-\n- RCTBridge *bridge = [self.reactDelegate createBridgeWithDelegate:self launchOptions:launchOptions];\n-\n-#if RCT_NEW_ARCH_ENABLED\n- _contextContainer = std::make_shared();\n- _reactNativeConfig = std::make_shared();\n- _contextContainer->insert(\"ReactNativeConfig\", _reactNativeConfig);\n- _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer];\n- bridge.surfacePresenter = _bridgeAdapter.surfacePresenter;\n-#endif\n-\n- NSDictionary *initProps = [self prepareInitialProps];\n- UIView *rootView = [self.reactDelegate createRootViewWithBridge:bridge moduleName:@\"main\" initialProperties:initProps];\n-\n- rootView.backgroundColor = [UIColor whiteColor];\n- self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n- UIViewController *rootViewController = [self.reactDelegate createRootViewController];\n- rootViewController.view = rootView;\n- self.window.rootViewController = rootViewController;\n- [self.window makeKeyAndVisible];\n+ self.moduleName = @\"main\";\n \n- [super application:application didFinishLaunchingWithOptions:launchOptions];\n+ // You can add your custom initial props in the dictionary below.\n+ // They will be passed down to the ViewController used by React Native.\n+ self.initialProps = @{};\n \n- return YES;\n+ return [super application:application didFinishLaunchingWithOptions:launchOptions];\n }\n \n-- (NSArray> *)extraModulesForBridge:(RCTBridge *)bridge\n+- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge\n {\n- // If you'd like to export some custom RCTBridgeModules, add them here!\n- return @[];\n+#if DEBUG\n+ return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\"];\n+#else\n+ return [[NSBundle mainBundle] URLForResource:@\"main\" withExtension:@\"jsbundle\"];\n+#endif\n }\n \n /// This method controls whether the `concurrentRoot`feature of React18 is turned on or off.\n ///\n /// @see: https://reactjs.org/blog/2022/03/29/react-v18.html\n /// @note: This requires to be rendering on Fabric (i.e. on the New Architecture).\n-/// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`.\n+/// @return: `true` if the `concurrentRoot` feature is enabled. Otherwise, it returns `false`.\n - (BOOL)concurrentRootEnabled\n {\n- // Switch this bool to turn on and off the concurrent root\n return true;\n }\n \n-- (NSDictionary *)prepareInitialProps\n-{\n- NSMutableDictionary *initProps = [NSMutableDictionary new];\n-#if RCT_NEW_ARCH_ENABLED\n- initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]);\n-#endif\n- return initProps;\n-}\n-\n-- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge\n-{\n-#if DEBUG\n- return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@\"index\"];\n-#else\n- return [[NSBundle mainBundle] URLForResource:@\"main\" withExtension:@\"jsbundle\"];\n-#endif\n-}\n-\n // Linking API\n - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options {\n return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options];\n@@ -124,43 +64,4 @@ static NSString *const kRNConcurrentRoot = @\"concurrentRoot\";\n return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];\n }\n \n-#if RCT_NEW_ARCH_ENABLED\n-\n-#pragma mark - RCTCxxBridgeDelegate\n-\n-- (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge\n-{\n- _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge\n- delegate:self\n- jsInvoker:bridge.jsCallInvoker];\n- return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager);\n-}\n-\n-#pragma mark RCTTurboModuleManagerDelegate\n-\n-- (Class)getModuleClassFromName:(const char *)name\n-{\n- return RCTCoreModulesClassProvider(name);\n-}\n-\n-- (std::shared_ptr)getTurboModule:(const std::string &)name\n- jsInvoker:(std::shared_ptr)jsInvoker\n-{\n- return nullptr;\n-}\n-\n-- (std::shared_ptr)getTurboModule:(const std::string &)name\n- initParams:\n- (const facebook::react::ObjCTurboModule::InitParams &)params\n-{\n- return nullptr;\n-}\n-\n-- (id)getModuleInstanceFromClass:(Class)moduleClass\n-{\n- return RCTAppSetupDefaultModuleFromClass(moduleClass);\n-}\n-\n-#endif\n-\n @end\ndiff --git a/templates/expo-template-bare-minimum/ios/Podfile b/templates/expo-template-bare-minimum/ios/Podfile\nindex 474455b90d..e523ea5cac 100644\n--- a/templates/expo-template-bare-minimum/ios/Podfile\n+++ b/templates/expo-template-bare-minimum/ios/Podfile\n@@ -5,34 +5,63 @@ require File.join(File.dirname(`node --print \"require.resolve('@react-native-com\n require 'json'\n podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}\n \n+ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0'\n+ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = '1' if podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] == 'true'\n+\n platform :ios, podfile_properties['ios.deploymentTarget'] || '13.0'\n install! 'cocoapods',\n :deterministic_uuids => false\n \n+prepare_react_native_project!\n+\n+# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.\n+# because `react-native-flipper` depends on (FlipperKit,...), which will be excluded. To fix this,\n+# you can also exclude `react-native-flipper` in `react-native.config.js`\n+#\n+# ```js\n+# module.exports = {\n+# dependencies: {\n+# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),\n+# }\n+# }\n+# ```\n+flipper_config = FlipperConfiguration.disabled\n+if ENV['NO_FLIPPER'] == '1' then\n+ # Explicitly disabled through environment variables\n+ flipper_config = FlipperConfiguration.disabled\n+elsif podfile_properties.key?('ios.flipper') then\n+ # Configure Flipper in Podfile.properties.json\n+ if podfile_properties['ios.flipper'] == 'true' then\n+ flipper_config = FlipperConfiguration.enabled([\"Debug\", \"Release\"])\n+ elsif podfile_properties['ios.flipper'] != 'false' then\n+ flipper_config = FlipperConfiguration.enabled([\"Debug\", \"Release\"], { 'Flipper' => podfile_properties['ios.flipper'] })\n+ end\n+end\n+\n target 'HelloWorld' do\n use_expo_modules!\n config = use_native_modules!\n \n use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks']\n+ use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS']\n \n # Flags change depending on the env values.\n flags = get_default_flags()\n \n use_react_native!(\n :path => config[:reactNativePath],\n- :hermes_enabled => podfile_properties['expo.jsEngine'] == 'hermes',\n+ :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes',\n :fabric_enabled => flags[:fabric_enabled],\n # An absolute path to your application root.\n :app_path => \"#{Pod::Config.instance.installation_root}/..\",\n- #\n- # Uncomment to opt-in to using Flipper\n- # Note that if you have use_frameworks! enabled, Flipper will not work\n- # :flipper_configuration => !ENV['CI'] ? FlipperConfiguration.enabled : FlipperConfiguration.disabled,\n+ # Note that if you have use_frameworks! enabled, Flipper will not work if enabled\n+ :flipper_configuration => flipper_config\n )\n \n post_install do |installer|\n react_native_post_install(\n installer,\n+ config[:reactNativePath],\n # Set `mac_catalyst_enabled` to `true` in order to apply patches\n # necessary for Mac Catalyst builds\n :mac_catalyst_enabled => false\ndiff --git a/templates/expo-template-bare-minimum/ios/Podfile.properties.json b/templates/expo-template-bare-minimum/ios/Podfile.properties.json\nindex f6d872e81a..b1bd45da51 100644\n--- a/templates/expo-template-bare-minimum/ios/Podfile.properties.json\n+++ b/templates/expo-template-bare-minimum/ios/Podfile.properties.json\n@@ -1,3 +1,3 @@\n {\n- \"expo.jsEngine\": \"jsc\"\n+ \"expo.jsEngine\": \"hermes\"\n }\ndiff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json\nindex a41fdc0d8d..d1fcd513cc 100644\n--- a/templates/expo-template-bare-minimum/package.json\n+++ b/templates/expo-template-bare-minimum/package.json\n@@ -1,7 +1,7 @@\n {\n \"name\": \"expo-template-bare-minimum\",\n \"description\": \"This bare project template includes a minimal setup for using unimodules with React Native.\",\n- \"version\": \"47.0.26\",\n+ \"version\": \"48.0.21\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"start\": \"expo start --dev-client\",\n@@ -10,13 +10,13 @@\n \"web\": \"expo start --web\"\n },\n \"dependencies\": {\n- \"expo\": \"~47.0.14\",\n- \"expo-splash-screen\": \"~0.17.5\",\n- \"expo-status-bar\": \"~1.4.2\",\n- \"react\": \"18.1.0\",\n- \"react-native\": \"0.70.8\"\n+ \"expo\": \"~48.0.21\",\n+ \"expo-splash-screen\": \"~0.18.2\",\n+ \"expo-status-bar\": \"~1.4.4\",\n+ \"react\": \"18.2.0\",\n+ \"react-native\": \"0.71.14\"\n },\n \"devDependencies\": {\n- \"@babel/core\": \"^7.12.9\"\n+ \"@babel/core\": \"^7.20.0\"\n }\n }\n","48..48":"","45..49":"diff --git a/templates/expo-template-bare-minimum/.buckconfig b/templates/expo-template-bare-minimum/.buckconfig\ndeleted file mode 100644\nindex 934256cb29..0000000000\n--- a/templates/expo-template-bare-minimum/.buckconfig\n+++ /dev/null\n@@ -1,6 +0,0 @@\n-\n-[android]\n- target = Google Inc.:Google APIs:23\n-\n-[maven_repositories]\n- central = https://repo1.maven.org/maven2\ndiff --git a/templates/expo-template-bare-minimum/.npmignore b/templates/expo-template-bare-minimum/.npmignore\nindex 35490b6612..bc0b76356d 100644\n--- a/templates/expo-template-bare-minimum/.npmignore\n+++ b/templates/expo-template-bare-minimum/.npmignore\n@@ -17,6 +17,8 @@ web-build/\n HelloWorld.xcworkspace\n Podfile.lock\n ios/Pods\n+ios/.xcode.env.local\n android/.build\n android/app/build\n android/.gradle\n+ios/.xcode.env.local\ndiff --git a/templates/expo-template-bare-minimum/android/app/BUCK b/templates/expo-template-bare-minimum/android/app/BUCK\ndeleted file mode 100644\nindex 0e77904834..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/BUCK\n+++ /dev/null\n@@ -1,55 +0,0 @@\n-# To learn about Buck see [Docs](https://buckbuild.com/).\n-# To run your application with Buck:\n-# - install Buck\n-# - `npm start` - to start the packager\n-# - `cd android`\n-# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname \"CN=Android Debug,O=Android,C=US\"`\n-# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck\n-# - `buck install -r android/app` - compile, install and run application\n-#\n-\n-load(\":build_defs.bzl\", \"create_aar_targets\", \"create_jar_targets\")\n-\n-lib_deps = []\n-\n-create_aar_targets(glob([\"libs/*.aar\"]))\n-\n-create_jar_targets(glob([\"libs/*.jar\"]))\n-\n-android_library(\n- name = \"all-libs\",\n- exported_deps = lib_deps,\n-)\n-\n-android_library(\n- name = \"app-code\",\n- srcs = glob([\n- \"src/main/java/**/*.java\",\n- ]),\n- deps = [\n- \":all-libs\",\n- \":build_config\",\n- \":res\",\n- ],\n-)\n-\n-android_build_config(\n- name = \"build_config\",\n- package = \"com.helloworld\",\n-)\n-\n-android_resource(\n- name = \"res\",\n- package = \"com.helloworld\",\n- res = \"src/main/res\",\n-)\n-\n-android_binary(\n- name = \"app\",\n- keystore = \"//android/keystores:debug\",\n- manifest = \"src/main/AndroidManifest.xml\",\n- package_type = \"debug\",\n- deps = [\n- \":app-code\",\n- ],\n-)\ndiff --git a/templates/expo-template-bare-minimum/android/app/build.gradle b/templates/expo-template-bare-minimum/android/app/build.gradle\nindex 346fb02564..7105aaaa3f 100644\n--- a/templates/expo-template-bare-minimum/android/app/build.gradle\n+++ b/templates/expo-template-bare-minimum/android/app/build.gradle\n@@ -1,232 +1,95 @@\n apply plugin: \"com.android.application\"\n-\n-import com.android.build.OutputFile\n-import org.apache.tools.ant.taskdefs.condition.Os\n-\n-/**\n- * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets\n- * and bundleReleaseJsAndAssets).\n- * These basically call `react-native bundle` with the correct arguments during the Android build\n- * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the\n- * bundle directly from the development server. Below you can see all the possible configurations\n- * and their defaults. If you decide to add a configuration block, make sure to add it before the\n- * `apply from: \"../../node_modules/react-native/react.gradle\"` line.\n- *\n- * project.ext.react = [\n- * // the name of the generated asset file containing your JS bundle\n- * bundleAssetName: \"index.android.bundle\",\n- *\n- * // the entry file for bundle generation. If none specified and\n- * // \"index.android.js\" exists, it will be used. Otherwise \"index.js\" is\n- * // default. Can be overridden with ENTRY_FILE environment variable.\n- * entryFile: \"index.android.js\",\n- *\n- * // https://reactnative.dev/docs/performance#enable-the-ram-format\n- * bundleCommand: \"ram-bundle\",\n- *\n- * // whether to bundle JS and assets in debug mode\n- * bundleInDebug: false,\n- *\n- * // whether to bundle JS and assets in release mode\n- * bundleInRelease: true,\n- *\n- * // whether to bundle JS and assets in another build variant (if configured).\n- * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants\n- * // The configuration property can be in the following formats\n- * // 'bundleIn${productFlavor}${buildType}'\n- * // 'bundleIn${buildType}'\n- * // bundleInFreeDebug: true,\n- * // bundleInPaidRelease: true,\n- * // bundleInBeta: true,\n- *\n- * // whether to disable dev mode in custom build variants (by default only disabled in release)\n- * // for example: to disable dev mode in the staging build type (if configured)\n- * devDisabledInStaging: true,\n- * // The configuration property can be in the following formats\n- * // 'devDisabledIn${productFlavor}${buildType}'\n- * // 'devDisabledIn${buildType}'\n- *\n- * // the root of your project, i.e. where \"package.json\" lives\n- * root: \"../../\",\n- *\n- * // where to put the JS bundle asset in debug mode\n- * jsBundleDirDebug: \"$buildDir/intermediates/assets/debug\",\n- *\n- * // where to put the JS bundle asset in release mode\n- * jsBundleDirRelease: \"$buildDir/intermediates/assets/release\",\n- *\n- * // where to put drawable resources / React Native assets, e.g. the ones you use via\n- * // require('./image.png')), in debug mode\n- * resourcesDirDebug: \"$buildDir/intermediates/res/merged/debug\",\n- *\n- * // where to put drawable resources / React Native assets, e.g. the ones you use via\n- * // require('./image.png')), in release mode\n- * resourcesDirRelease: \"$buildDir/intermediates/res/merged/release\",\n- *\n- * // by default the gradle tasks are skipped if none of the JS files or assets change; this means\n- * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to\n- * // date; if you have any other folders that you want to ignore for performance reasons (gradle\n- * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/\n- * // for example, you might want to remove it from here.\n- * inputExcludes: [\"android/**\", \"ios/**\"],\n- *\n- * // override which node gets called and with what additional arguments\n- * nodeExecutableAndArgs: [\"node\"],\n- *\n- * // supply additional arguments to the packager\n- * extraPackagerArgs: []\n- * ]\n- */\n+apply plugin: \"com.facebook.react\"\n \n def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath()\n \n-project.ext.react = [\n- entryFile: [\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\"].execute(null, rootDir).text.trim(),\n- enableHermes: (findProperty('expo.jsEngine') ?: \"jsc\") == \"hermes\",\n- cliPath: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/cli.js\",\n- hermesCommand: new File([\"node\", \"--print\", \"require.resolve('hermes-engine/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/%OS-BIN%/hermesc\",\n- composeSourceMapsPath: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/scripts/compose-source-maps.js\",\n-]\n-\n-apply from: new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim(), \"../react.gradle\")\n-\n /**\n- * Set this to true to create two separate APKs instead of one:\n- * - An APK that only works on ARM devices\n- * - An APK that only works on x86 devices\n- * The advantage is the size of the APK is reduced by about 4MB.\n- * Upload all the APKs to the Play Store and people will download\n- * the correct one based on the CPU architecture of their device.\n+ * This is the configuration block to customize your React Native Android app.\n+ * By default you don't need to apply any configuration, just uncomment the lines you need.\n */\n-def enableSeparateBuildPerCPUArchitecture = false\n+react {\n+ entryFile = file([\"node\", \"-e\", \"require('expo/scripts/resolveAppEntry')\", projectRoot, \"android\", \"absolute\"].execute(null, rootDir).text.trim())\n+ reactNativeDir = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()\n+ hermesCommand = new File([\"node\", \"--print\", \"require.resolve('react-native/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + \"/sdks/hermesc/%OS-BIN%/hermesc\"\n+ codegenDir = new File([\"node\", \"--print\", \"require.resolve('@react-native/codegen/package.json')\"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()\n+\n+ // Use Expo CLI to bundle the app, this ensures the Metro config\n+ // works correctly with Expo projects.\n+ cliFile = new File([\"node\", \"--print\", \"require.resolve('@expo/cli')\"].execute(null, rootDir).text.trim())\n+ bundleCommand = \"export:embed\"\n+\n+ /* Folders */\n+ // The root of your project, i.e. where \"package.json\" lives. Default is '..'\n+ // root = file(\"../\")\n+ // The folder where the react-native NPM package is. Default is ../node_modules/react-native\n+ // reactNativeDir = file(\"../node_modules/react-native\")\n+ // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen\n+ // codegenDir = file(\"../node_modules/@react-native/codegen\")\n+\n+ /* Variants */\n+ // The list of variants to that are debuggable. For those we're going to\n+ // skip the bundling of the JS bundle and the assets. By default is just 'debug'.\n+ // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.\n+ // debuggableVariants = [\"liteDebug\", \"prodDebug\"]\n+\n+ /* Bundling */\n+ // A list containing the node command and its flags. Default is just 'node'.\n+ // nodeExecutableAndArgs = [\"node\"]\n+\n+ //\n+ // The path to the CLI configuration file. Default is empty.\n+ // bundleConfig = file(../rn-cli.config.js)\n+ //\n+ // The name of the generated asset file containing your JS bundle\n+ // bundleAssetName = \"MyApplication.android.bundle\"\n+ //\n+ // The entry file for bundle generation. Default is 'index.android.js' or 'index.js'\n+ // entryFile = file(\"../js/MyApplication.android.js\")\n+ //\n+ // A list of extra flags to pass to the 'bundle' commands.\n+ // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle\n+ // extraPackagerArgs = []\n+\n+ /* Hermes Commands */\n+ // The hermes compiler command to run. By default it is 'hermesc'\n+ // hermesCommand = \"$rootDir/my-custom-hermesc/bin/hermesc\"\n+ //\n+ // The list of flags to pass to the Hermes compiler. By default is \"-O\", \"-output-source-map\"\n+ // hermesFlags = [\"-O\", \"-output-source-map\"]\n+}\n \n /**\n- * Run Proguard to shrink the Java bytecode in release builds.\n+ * Set this to true to Run Proguard on Release builds to minify the Java bytecode.\n */\n def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean()\n \n /**\n- * The preferred build flavor of JavaScriptCore.\n+ * The preferred build flavor of JavaScriptCore (JSC)\n *\n * For example, to use the international variant, you can use:\n * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`\n *\n * The international variant includes ICU i18n library and necessary data\n * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that\n- * give correct results when using with locales other than en-US. Note that\n+ * give correct results when using with locales other than en-US. Note that\n * this variant is about 6MiB larger per architecture than default.\n */\n def jscFlavor = 'org.webkit:android-jsc:+'\n \n-/**\n- * Whether to enable the Hermes VM.\n- *\n- * This should be set on project.ext.react and that value will be read here. If it is not set\n- * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode\n- * and the benefits of using Hermes will therefore be sharply reduced.\n- */\n-def enableHermes = project.ext.react.get(\"enableHermes\", false);\n-\n-/**\n- * Architectures to build native code for.\n- */\n-def reactNativeArchitectures() {\n- def value = project.getProperties().get(\"reactNativeArchitectures\")\n- return value ? value.split(\",\") : [\"armeabi-v7a\", \"x86\", \"x86_64\", \"arm64-v8a\"]\n-}\n-\n android {\n ndkVersion rootProject.ext.ndkVersion\n \n compileSdkVersion rootProject.ext.compileSdkVersion\n \n+ namespace \"com.helloworld\"\n defaultConfig {\n applicationId \"com.helloworld\"\n minSdkVersion rootProject.ext.minSdkVersion\n targetSdkVersion rootProject.ext.targetSdkVersion\n versionCode 1\n versionName \"1.0\"\n- buildConfigField \"boolean\", \"IS_NEW_ARCHITECTURE_ENABLED\", isNewArchitectureEnabled().toString()\n-\n- if (isNewArchitectureEnabled()) {\n- // We configure the NDK build only if you decide to opt-in for the New Architecture.\n- externalNativeBuild {\n- ndkBuild {\n- arguments \"APP_PLATFORM=android-21\",\n- \"APP_STL=c++_shared\",\n- \"NDK_TOOLCHAIN_VERSION=clang\",\n- \"GENERATED_SRC_DIR=$buildDir/generated/source\",\n- \"PROJECT_BUILD_DIR=$buildDir\",\n- \"REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid\",\n- \"REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build\"\n- cFlags \"-Wall\", \"-Werror\", \"-fexceptions\", \"-frtti\", \"-DWITH_INSPECTOR=1\"\n- cppFlags \"-std=c++17\"\n- // Make sure this target name is the same you specify inside the\n- // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.\n- targets \"helloworld_appmodules\"\n-\n- // Fix for windows limit on number of character in file paths and in command lines\n- if (Os.isFamily(Os.FAMILY_WINDOWS)) {\n- arguments \"NDK_APP_SHORT_COMMANDS=true\"\n- }\n- }\n- }\n- if (!enableSeparateBuildPerCPUArchitecture) {\n- ndk {\n- abiFilters (*reactNativeArchitectures())\n- }\n- }\n- }\n- }\n-\n- if (isNewArchitectureEnabled()) {\n- // We configure the NDK build only if you decide to opt-in for the New Architecture.\n- externalNativeBuild {\n- ndkBuild {\n- path \"$projectDir/src/main/jni/Android.mk\"\n- }\n- }\n- def reactAndroidProjectDir = project(':ReactAndroid').projectDir\n- def packageReactNdkDebugLibs = tasks.register(\"packageReactNdkDebugLibs\", Copy) {\n- dependsOn(\":ReactAndroid:packageReactNdkDebugLibsForBuck\")\n- from(\"$reactAndroidProjectDir/src/main/jni/prebuilt/lib\")\n- into(\"$buildDir/react-ndk/exported\")\n- }\n- def packageReactNdkReleaseLibs = tasks.register(\"packageReactNdkReleaseLibs\", Copy) {\n- dependsOn(\":ReactAndroid:packageReactNdkReleaseLibsForBuck\")\n- from(\"$reactAndroidProjectDir/src/main/jni/prebuilt/lib\")\n- into(\"$buildDir/react-ndk/exported\")\n- }\n- afterEvaluate {\n- // If you wish to add a custom TurboModule or component locally,\n- // you should uncomment this line.\n- // preBuild.dependsOn(\"generateCodegenArtifactsFromSchema\")\n- preDebugBuild.dependsOn(packageReactNdkDebugLibs)\n- preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)\n \n- // Due to a bug inside AGP, we have to explicitly set a dependency\n- // between configureNdkBuild* tasks and the preBuild tasks.\n- // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732\n- configureNdkBuildRelease.dependsOn(preReleaseBuild)\n- configureNdkBuildDebug.dependsOn(preDebugBuild)\n- reactNativeArchitectures().each { architecture ->\n- tasks.findByName(\"configureNdkBuildDebug[${architecture}]\")?.configure {\n- dependsOn(\"preDebugBuild\")\n- }\n- tasks.findByName(\"configureNdkBuildRelease[${architecture}]\")?.configure {\n- dependsOn(\"preReleaseBuild\")\n- }\n- }\n- }\n- }\n-\n- splits {\n- abi {\n- reset()\n- enable enableSeparateBuildPerCPUArchitecture\n- universalApk false // If true, also generate a universal APK\n- include (*reactNativeArchitectures())\n- }\n+ buildConfigField(\"boolean\", \"REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS\", (findProperty(\"reactNative.unstable_useRuntimeSchedulerAlways\") ?: true).toString())\n }\n signingConfigs {\n debug {\n@@ -244,25 +107,11 @@ android {\n // Caution! In production, you need to generate your own keystore file.\n // see https://reactnative.dev/docs/signed-apk-android.\n signingConfig signingConfigs.debug\n+ shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false)\n minifyEnabled enableProguardInReleaseBuilds\n proguardFiles getDefaultProguardFile(\"proguard-android.txt\"), \"proguard-rules.pro\"\n }\n }\n-\n- // applicationVariants are e.g. debug, release\n- applicationVariants.all { variant ->\n- variant.outputs.each { output ->\n- // For each separate APK per architecture, set a unique version code as described here:\n- // https://developer.android.com/studio/build/configure-apk-splits.html\n- def versionCodes = [\"armeabi-v7a\": 1, \"x86\": 2, \"arm64-v8a\": 3, \"x86_64\": 4]\n- def abi = output.getFilter(OutputFile.ABI)\n- if (abi != null) { // null for the universal-debug, universal-release variants\n- output.versionCodeOverride =\n- versionCodes.get(abi) * 1048576 + defaultConfig.versionCode\n- }\n-\n- }\n- }\n }\n \n // Apply static values from `gradle.properties` to the `android.packagingOptions`\n@@ -286,10 +135,8 @@ android {\n }\n \n dependencies {\n- implementation fileTree(dir: \"libs\", include: [\"*.jar\"])\n-\n- //noinspection GradleDynamicVersion\n- implementation \"com.facebook.react:react-native:+\" // From node_modules\n+ // The version of react-native is set by the React Native Gradle Plugin\n+ implementation(\"com.facebook.react:react-android\")\n \n def isGifEnabled = (findProperty('expo.gif.enabled') ?: \"\") == \"true\";\n def isWebpEnabled = (findProperty('expo.webp.enabled') ?: \"\") == \"true\";\n@@ -298,70 +145,36 @@ dependencies {\n \n // If your app supports Android versions before Ice Cream Sandwich (API level 14)\n if (isGifEnabled || isWebpEnabled) {\n- implementation \"com.facebook.fresco:fresco:${frescoVersion}\"\n- implementation \"com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:fresco:${frescoVersion}\")\n+ implementation(\"com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}\")\n }\n \n if (isGifEnabled) {\n // For animated gif support\n- implementation \"com.facebook.fresco:animated-gif:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:animated-gif:${frescoVersion}\")\n }\n \n if (isWebpEnabled) {\n // For webp support\n- implementation \"com.facebook.fresco:webpsupport:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:webpsupport:${frescoVersion}\")\n if (isWebpAnimatedEnabled) {\n // Animated webp support\n- implementation \"com.facebook.fresco:animated-webp:${frescoVersion}\"\n+ implementation(\"com.facebook.fresco:animated-webp:${frescoVersion}\")\n }\n }\n \n- implementation \"androidx.swiperefreshlayout:swiperefreshlayout:1.0.0\"\n- debugImplementation(\"com.facebook.flipper:flipper:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.fbjni'\n- }\n+ debugImplementation(\"com.facebook.flipper:flipper:${FLIPPER_VERSION}\")\n debugImplementation(\"com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.flipper'\n exclude group:'com.squareup.okhttp3', module:'okhttp'\n }\n- debugImplementation(\"com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}\") {\n- exclude group:'com.facebook.flipper'\n- }\n+ debugImplementation(\"com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}\")\n \n- if (enableHermes) {\n- debugImplementation files(new File([\"node\", \"--print\", \"require.resolve('hermes-engine/package.json')\"].execute(null, rootDir).text.trim(), \"../android/hermes-debug.aar\"))\n- releaseImplementation files(new File([\"node\", \"--print\", \"require.resolve('hermes-engine/package.json')\"].execute(null, rootDir).text.trim(), \"../android/hermes-release.aar\"))\n+ if (hermesEnabled.toBoolean()) {\n+ implementation(\"com.facebook.react:hermes-android\")\n } else {\n implementation jscFlavor\n }\n }\n \n-if (isNewArchitectureEnabled()) {\n- // If new architecture is enabled, we let you build RN from source\n- // Otherwise we fallback to a prebuilt .aar bundled in the NPM package.\n- // This will be applied to all the imported transtitive dependency.\n- configurations.all {\n- resolutionStrategy.dependencySubstitution {\n- substitute(module(\"com.facebook.react:react-native\"))\n- .using(project(\":ReactAndroid\")).because(\"On New Architecture we're building React Native from source\")\n- }\n- }\n-}\n-\n-// Run this once to be able to run the application with BUCK\n-// puts all compile dependencies into folder libs for BUCK to use\n-task copyDownloadableDepsToLibs(type: Copy) {\n- from configurations.implementation\n- into 'libs'\n-}\n-\n apply from: new File([\"node\", \"--print\", \"require.resolve('@react-native-community/cli-platform-android/package.json')\"].execute(null, rootDir).text.trim(), \"../native_modules.gradle\");\n applyNativeModulesAppBuildGradle(project)\n-\n-def isNewArchitectureEnabled() {\n- // To opt-in for the New Architecture, you can either:\n- // - Set `newArchEnabled` to true inside the `gradle.properties` file\n- // - Invoke gradle with `-newArchEnabled=true`\n- // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`\n- return project.hasProperty(\"newArchEnabled\") && project.newArchEnabled == \"true\"\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/build_defs.bzl b/templates/expo-template-bare-minimum/android/app/build_defs.bzl\ndeleted file mode 100644\nindex fff270f8d1..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/build_defs.bzl\n+++ /dev/null\n@@ -1,19 +0,0 @@\n-\"\"\"Helper definitions to glob .aar and .jar targets\"\"\"\n-\n-def create_aar_targets(aarfiles):\n- for aarfile in aarfiles:\n- name = \"aars__\" + aarfile[aarfile.rindex(\"/\") + 1:aarfile.rindex(\".aar\")]\n- lib_deps.append(\":\" + name)\n- android_prebuilt_aar(\n- name = name,\n- aar = aarfile,\n- )\n-\n-def create_jar_targets(jarfiles):\n- for jarfile in jarfiles:\n- name = \"jars__\" + jarfile[jarfile.rindex(\"/\") + 1:jarfile.rindex(\".jar\")]\n- lib_deps.append(\":\" + name)\n- prebuilt_jar(\n- name = name,\n- binary_jar = jarfile,\n- )\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/debug/AndroidManifest.xml b/templates/expo-template-bare-minimum/android/app/src/debug/AndroidManifest.xml\nindex 99e38fc5f8..3ec2507bab 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/debug/AndroidManifest.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/debug/AndroidManifest.xml\n@@ -3,5 +3,5 @@\n \n \n \n- \n+ \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java b/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\nindex 8cddb11cb2..595dd5831c 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java\n@@ -1,5 +1,5 @@\n /**\n- * Copyright (c) Facebook, Inc. and its affiliates.\n+ * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n *

This source code is licensed under the MIT license found in the LICENSE file in the root\n * directory of this source tree.\n@@ -17,22 +17,27 @@ import com.facebook.flipper.plugins.inspector.DescriptorMapping;\n import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;\n import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;\n import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;\n-import com.facebook.flipper.plugins.react.ReactFlipperPlugin;\n import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;\n+import com.facebook.react.ReactInstanceEventListener;\n import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.bridge.ReactContext;\n import com.facebook.react.modules.network.NetworkingModule;\n import okhttp3.OkHttpClient;\n \n+/**\n+ * Class responsible of loading Flipper inside your React Native application. This is the debug\n+ * flavor of it. Here you can add your own plugins and customize the Flipper setup.\n+ */\n public class ReactNativeFlipper {\n public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {\n if (FlipperUtils.shouldEnableFlipper(context)) {\n final FlipperClient client = AndroidFlipperClient.getInstance(context);\n+\n client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));\n- client.addPlugin(new ReactFlipperPlugin());\n client.addPlugin(new DatabasesFlipperPlugin(context));\n client.addPlugin(new SharedPreferencesFlipperPlugin(context));\n client.addPlugin(CrashReporterPlugin.getInstance());\n+\n NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();\n NetworkingModule.setCustomClientBuilder(\n new NetworkingModule.CustomClientBuilder() {\n@@ -43,12 +48,13 @@ public class ReactNativeFlipper {\n });\n client.addPlugin(networkFlipperPlugin);\n client.start();\n+\n // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized\n // Hence we run if after all native modules have been initialized\n ReactContext reactContext = reactInstanceManager.getCurrentReactContext();\n if (reactContext == null) {\n reactInstanceManager.addReactInstanceEventListener(\n- new ReactInstanceManager.ReactInstanceEventListener() {\n+ new ReactInstanceEventListener() {\n @Override\n public void onReactContextInitialized(ReactContext reactContext) {\n reactInstanceManager.removeReactInstanceEventListener(this);\n@@ -66,4 +72,4 @@ public class ReactNativeFlipper {\n }\n }\n }\n-}\n\\ No newline at end of file\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\nindex 0cad655b33..34a7ca8314 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n@@ -1,4 +1,4 @@\n-\n+\n \n \n \n@@ -18,7 +18,7 @@\n \n \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\nindex 576e23db45..176fbf6a2a 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n@@ -5,7 +5,8 @@ import android.os.Bundle;\n \n import com.facebook.react.ReactActivity;\n import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactActivityDelegate;\n \n import expo.modules.ReactActivityDelegateWrapper;\n \n@@ -28,11 +29,18 @@ public class MainActivity extends ReactActivity {\n return \"main\";\n }\n \n+ /**\n+ * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link\n+ * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React\n+ * (aka React 18) with two boolean flags.\n+ */\n @Override\n protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this,\n- new ReactActivityDelegate(this, getMainComponentName())\n- );\n+ return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate(\n+ this,\n+ getMainComponentName(),\n+ // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n+ DefaultNewArchitectureEntryPoint.getFabricEnabled()));\n }\n \n /**\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\nindex 7deb688b07..e7f376902d 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n@@ -1,69 +1,76 @@\n package com.helloworld;\n \n import android.app.Application;\n-import android.content.Context;\n import android.content.res.Configuration;\n import androidx.annotation.NonNull;\n \n import com.facebook.react.PackageList;\n import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.ReactNativeHost;\n import com.facebook.react.ReactPackage;\n import com.facebook.react.config.ReactFeatureFlags;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactNativeHost;\n import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n \n import expo.modules.ApplicationLifecycleDispatcher;\n import expo.modules.ReactNativeHostWrapper;\n \n-import java.lang.reflect.InvocationTargetException;\n import java.util.List;\n \n public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n \n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n+ private final ReactNativeHost mReactNativeHost =\n+ new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) {\n+ @Override\n+ public boolean getUseDeveloperSupport() {\n+ return BuildConfig.DEBUG;\n+ }\n \n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n+ @Override\n+ protected List getPackages() {\n+ @SuppressWarnings(\"UnnecessaryLocalVariable\")\n+ List packages = new PackageList(this).getPackages();\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return packages;\n+ }\n \n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n+ @Override\n+ protected String getJSMainModuleName() {\n+ return \".expo/.virtual-metro-entry\";\n+ }\n+\n+ @Override\n+ protected boolean isNewArchEnabled() {\n+ return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n+ }\n+\n+ @Override\n+ protected Boolean isHermesEnabled() {\n+ return BuildConfig.IS_HERMES_ENABLED;\n+ }\n+ });\n \n @Override\n public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n+ return mReactNativeHost;\n }\n \n @Override\n public void onCreate() {\n super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false;\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ DefaultNewArchitectureEntryPoint.load();\n+ }\n+ if (BuildConfig.DEBUG) {\n+ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n+ }\n ApplicationLifecycleDispatcher.onApplicationCreate(this);\n }\n \n@@ -72,35 +79,4 @@ public class MainApplication extends Application implements ReactApplication {\n super.onConfigurationChanged(newConfig);\n ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex f555e36448..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,116 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- new EmptyReactNativeConfig(),\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex 0ae6366756..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,49 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source \n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_futures \\\n- libfolly_json \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,7 +18,7 @@\n \n \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\nindex 8e13797d9b..176fbf6a2a 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n@@ -5,7 +5,8 @@ import android.os.Bundle;\n \n import com.facebook.react.ReactActivity;\n import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactActivityDelegate;\n \n import expo.modules.ReactActivityDelegateWrapper;\n \n@@ -29,15 +30,17 @@ public class MainActivity extends ReactActivity {\n }\n \n /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n+ * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link\n+ * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React\n+ * (aka React 18) with two boolean flags.\n */\n @Override\n protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n+ return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate(\n+ this,\n+ getMainComponentName(),\n+ // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n+ DefaultNewArchitectureEntryPoint.getFabricEnabled()));\n }\n \n /**\n@@ -59,25 +62,4 @@ public class MainActivity extends ReactActivity {\n // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n super.invokeDefaultOnBackPressed();\n }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\nindex 7deb688b07..e7f376902d 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n@@ -1,69 +1,76 @@\n package com.helloworld;\n \n import android.app.Application;\n-import android.content.Context;\n import android.content.res.Configuration;\n import androidx.annotation.NonNull;\n \n import com.facebook.react.PackageList;\n import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.ReactNativeHost;\n import com.facebook.react.ReactPackage;\n import com.facebook.react.config.ReactFeatureFlags;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactNativeHost;\n import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n \n import expo.modules.ApplicationLifecycleDispatcher;\n import expo.modules.ReactNativeHostWrapper;\n \n-import java.lang.reflect.InvocationTargetException;\n import java.util.List;\n \n public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n \n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n+ private final ReactNativeHost mReactNativeHost =\n+ new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) {\n+ @Override\n+ public boolean getUseDeveloperSupport() {\n+ return BuildConfig.DEBUG;\n+ }\n \n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n+ @Override\n+ protected List getPackages() {\n+ @SuppressWarnings(\"UnnecessaryLocalVariable\")\n+ List packages = new PackageList(this).getPackages();\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return packages;\n+ }\n \n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n+ @Override\n+ protected String getJSMainModuleName() {\n+ return \".expo/.virtual-metro-entry\";\n+ }\n+\n+ @Override\n+ protected boolean isNewArchEnabled() {\n+ return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n+ }\n+\n+ @Override\n+ protected Boolean isHermesEnabled() {\n+ return BuildConfig.IS_HERMES_ENABLED;\n+ }\n+ });\n \n @Override\n public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n+ return mReactNativeHost;\n }\n \n @Override\n public void onCreate() {\n super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false;\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ DefaultNewArchitectureEntryPoint.load();\n+ }\n+ if (BuildConfig.DEBUG) {\n+ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n+ }\n ApplicationLifecycleDispatcher.onApplicationCreate(this);\n }\n \n@@ -72,35 +79,4 @@ public class MainApplication extends Application implements ReactApplication {\n super.onConfigurationChanged(newConfig);\n ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex cda1391225..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source\n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_runtime \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,7 +18,7 @@\n \n \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\nindex 8e13797d9b..176fbf6a2a 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n@@ -5,7 +5,8 @@ import android.os.Bundle;\n \n import com.facebook.react.ReactActivity;\n import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactActivityDelegate;\n \n import expo.modules.ReactActivityDelegateWrapper;\n \n@@ -29,15 +30,17 @@ public class MainActivity extends ReactActivity {\n }\n \n /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n+ * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link\n+ * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React\n+ * (aka React 18) with two boolean flags.\n */\n @Override\n protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n+ return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate(\n+ this,\n+ getMainComponentName(),\n+ // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n+ DefaultNewArchitectureEntryPoint.getFabricEnabled()));\n }\n \n /**\n@@ -59,25 +62,4 @@ public class MainActivity extends ReactActivity {\n // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n super.invokeDefaultOnBackPressed();\n }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\nindex 7deb688b07..e7f376902d 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n@@ -1,69 +1,76 @@\n package com.helloworld;\n \n import android.app.Application;\n-import android.content.Context;\n import android.content.res.Configuration;\n import androidx.annotation.NonNull;\n \n import com.facebook.react.PackageList;\n import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n import com.facebook.react.ReactNativeHost;\n import com.facebook.react.ReactPackage;\n import com.facebook.react.config.ReactFeatureFlags;\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;\n+import com.facebook.react.defaults.DefaultReactNativeHost;\n import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n \n import expo.modules.ApplicationLifecycleDispatcher;\n import expo.modules.ReactNativeHostWrapper;\n \n-import java.lang.reflect.InvocationTargetException;\n import java.util.List;\n \n public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n \n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n+ private final ReactNativeHost mReactNativeHost =\n+ new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) {\n+ @Override\n+ public boolean getUseDeveloperSupport() {\n+ return BuildConfig.DEBUG;\n+ }\n \n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n+ @Override\n+ protected List getPackages() {\n+ @SuppressWarnings(\"UnnecessaryLocalVariable\")\n+ List packages = new PackageList(this).getPackages();\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return packages;\n+ }\n \n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n+ @Override\n+ protected String getJSMainModuleName() {\n+ return \".expo/.virtual-metro-entry\";\n+ }\n+\n+ @Override\n+ protected boolean isNewArchEnabled() {\n+ return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n+ }\n+\n+ @Override\n+ protected Boolean isHermesEnabled() {\n+ return BuildConfig.IS_HERMES_ENABLED;\n+ }\n+ });\n \n @Override\n public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n+ return mReactNativeHost;\n }\n \n @Override\n public void onCreate() {\n super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false;\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ DefaultNewArchitectureEntryPoint.load();\n+ }\n+ if (BuildConfig.DEBUG) {\n+ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n+ }\n ApplicationLifecycleDispatcher.onApplicationCreate(this);\n }\n \n@@ -72,35 +79,4 @@ public class MainApplication extends Application implements ReactApplication {\n super.onConfigurationChanged(newConfig);\n ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n }\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt b/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\ndeleted file mode 100644\nindex d2cad3a326..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-cmake_minimum_required(VERSION 3.13)\n-\n-# Define the library name here.\n-project(helloworld_appmodules)\n-\n-# This file includes all the necessary to let you build your application with the New Architecture.\n-include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 26162dd872..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n-\n- // Module providers autolinked by RN CLI\n- auto rncli_module = rncli_ModuleProvider(moduleName, params);\n- if (rncli_module != nullptr) {\n- return rncli_module;\n- }\n-\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex b38ccf53fd..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex 5fd688c509..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- const std::string &name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 9ee38a81f6..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(const std::string &name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 54f598a486..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,65 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Autolinked providers registered by RN CLI\n- rncli_registerProviders(providerRegistry);\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,7 +18,7 @@\n \n \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\ndeleted file mode 100644\nindex 576e23db45..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ /dev/null\n@@ -1,57 +0,0 @@\n-package com.helloworld;\n-\n-import android.os.Build;\n-import android.os.Bundle;\n-\n-import com.facebook.react.ReactActivity;\n-import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n-\n-import expo.modules.ReactActivityDelegateWrapper;\n-\n-public class MainActivity extends ReactActivity {\n- @Override\n- protected void onCreate(Bundle savedInstanceState) {\n- // Set the theme to AppTheme BEFORE onCreate to support \n- // coloring the background, status bar, and navigation bar.\n- // This is required for expo-splash-screen.\n- setTheme(R.style.AppTheme);\n- super.onCreate(null);\n- }\n-\n- /**\n- * Returns the name of the main component registered from JavaScript.\n- * This is used to schedule rendering of the component.\n- */\n- @Override\n- protected String getMainComponentName() {\n- return \"main\";\n- }\n-\n- @Override\n- protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this,\n- new ReactActivityDelegate(this, getMainComponentName())\n- );\n- }\n-\n- /**\n- * Align the back button behavior with Android S\n- * where moving root activities to background instead of finishing activities.\n- * @see onBackPressed\n- */\n- @Override\n- public void invokeDefaultOnBackPressed() {\n- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n- if (!moveTaskToBack(false)) {\n- // For non-root activities, use the default implementation to finish them.\n- super.invokeDefaultOnBackPressed();\n- }\n- return;\n- }\n-\n- // Use the default back button implementation on Android S\n- // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n- super.invokeDefaultOnBackPressed();\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\nnew file mode 100644\nindex 0000000000..c4467326aa\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\n@@ -0,0 +1,61 @@\n+package com.helloworld\n+\n+import android.os.Build\n+import android.os.Bundle\n+\n+import com.facebook.react.ReactActivity\n+import com.facebook.react.ReactActivityDelegate\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled\n+import com.facebook.react.defaults.DefaultReactActivityDelegate\n+\n+import expo.modules.ReactActivityDelegateWrapper\n+\n+class MainActivity : ReactActivity() {\n+ override fun onCreate(savedInstanceState: Bundle?) {\n+ // Set the theme to AppTheme BEFORE onCreate to support\n+ // coloring the background, status bar, and navigation bar.\n+ // This is required for expo-splash-screen.\n+ setTheme(R.style.AppTheme);\n+ super.onCreate(null)\n+ }\n+\n+ /**\n+ * Returns the name of the main component registered from JavaScript. This is used to schedule\n+ * rendering of the component.\n+ */\n+ override fun getMainComponentName(): String = \"main\"\n+\n+ /**\n+ * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]\n+ * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]\n+ */\n+ override fun createReactActivityDelegate(): ReactActivityDelegate {\n+ return ReactActivityDelegateWrapper(\n+ this,\n+ BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n+ object : DefaultReactActivityDelegate(\n+ this,\n+ mainComponentName,\n+ fabricEnabled\n+ ){})\n+ }\n+\n+ /**\n+ * Align the back button behavior with Android S\n+ * where moving root activities to background instead of finishing activities.\n+ * @see onBackPressed\n+ */\n+ override fun invokeDefaultOnBackPressed() {\n+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n+ if (!moveTaskToBack(false)) {\n+ // For non-root activities, use the default implementation to finish them.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+ return\n+ }\n+\n+ // Use the default back button implementation on Android S\n+ // because it's doing more than [Activity.moveTaskToBack] in fact.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\ndeleted file mode 100644\nindex 7deb688b07..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ /dev/null\n@@ -1,106 +0,0 @@\n-package com.helloworld;\n-\n-import android.app.Application;\n-import android.content.Context;\n-import android.content.res.Configuration;\n-import androidx.annotation.NonNull;\n-\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n-import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n-\n-import expo.modules.ApplicationLifecycleDispatcher;\n-import expo.modules.ReactNativeHostWrapper;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.List;\n-\n-public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n-\n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n-\n- @Override\n- public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n- }\n-\n- @Override\n- public void onCreate() {\n- super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- ApplicationLifecycleDispatcher.onApplicationCreate(this);\n- }\n-\n- @Override\n- public void onConfigurationChanged(@NonNull Configuration newConfig) {\n- super.onConfigurationChanged(newConfig);\n- ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n- }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\nnew file mode 100644\nindex 0000000000..8258c40ed4\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,65 @@\n+package com.helloworld\n+\n+import android.app.Application\n+import android.content.res.Configuration\n+import androidx.annotation.NonNull\n+\n+import com.facebook.react.PackageList\n+import com.facebook.react.ReactApplication\n+import com.facebook.react.ReactNativeHost\n+import com.facebook.react.ReactPackage\n+import com.facebook.react.ReactHost\n+import com.facebook.react.config.ReactFeatureFlags\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\n+import com.facebook.react.flipper.ReactNativeFlipper\n+import com.facebook.soloader.SoLoader\n+\n+import expo.modules.ApplicationLifecycleDispatcher\n+import expo.modules.ReactNativeHostWrapper\n+\n+class MainApplication : Application(), ReactApplication {\n+\n+ override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(\n+ this,\n+ object : DefaultReactNativeHost(this) {\n+ override fun getPackages(): List {\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return PackageList(this).packages\n+ }\n+\n+ override fun getJSMainModuleName(): String = \".expo/.virtual-metro-entry\"\n+\n+ override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n+\n+ override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n+ override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n+ }\n+ )\n+\n+ override val reactHost: ReactHost\n+ get() = getDefaultReactHost(this.applicationContext, reactNativeHost)\n+\n+ override fun onCreate() {\n+ super.onCreate()\n+ SoLoader.init(this, false)\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ load()\n+ }\n+ if (BuildConfig.DEBUG) {\n+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager)\n+ }\n+ ApplicationLifecycleDispatcher.onApplicationCreate(this)\n+ }\n+\n+ override fun onConfigurationChanged(newConfig: Configuration) {\n+ super.onConfigurationChanged(newConfig)\n+ ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex f555e36448..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,116 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- new EmptyReactNativeConfig(),\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex 0ae6366756..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,49 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source \n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_futures \\\n- libfolly_json \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,7 +18,7 @@\n \n \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\ndeleted file mode 100644\nindex 8e13797d9b..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ /dev/null\n@@ -1,83 +0,0 @@\n-package com.helloworld;\n-\n-import android.os.Build;\n-import android.os.Bundle;\n-\n-import com.facebook.react.ReactActivity;\n-import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n-\n-import expo.modules.ReactActivityDelegateWrapper;\n-\n-public class MainActivity extends ReactActivity {\n- @Override\n- protected void onCreate(Bundle savedInstanceState) {\n- // Set the theme to AppTheme BEFORE onCreate to support \n- // coloring the background, status bar, and navigation bar.\n- // This is required for expo-splash-screen.\n- setTheme(R.style.AppTheme);\n- super.onCreate(null);\n- }\n-\n- /**\n- * Returns the name of the main component registered from JavaScript.\n- * This is used to schedule rendering of the component.\n- */\n- @Override\n- protected String getMainComponentName() {\n- return \"main\";\n- }\n-\n- /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n- */\n- @Override\n- protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n- }\n-\n- /**\n- * Align the back button behavior with Android S\n- * where moving root activities to background instead of finishing activities.\n- * @see onBackPressed\n- */\n- @Override\n- public void invokeDefaultOnBackPressed() {\n- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n- if (!moveTaskToBack(false)) {\n- // For non-root activities, use the default implementation to finish them.\n- super.invokeDefaultOnBackPressed();\n- }\n- return;\n- }\n-\n- // Use the default back button implementation on Android S\n- // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n- super.invokeDefaultOnBackPressed();\n- }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\nnew file mode 100644\nindex 0000000000..c4467326aa\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\n@@ -0,0 +1,61 @@\n+package com.helloworld\n+\n+import android.os.Build\n+import android.os.Bundle\n+\n+import com.facebook.react.ReactActivity\n+import com.facebook.react.ReactActivityDelegate\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled\n+import com.facebook.react.defaults.DefaultReactActivityDelegate\n+\n+import expo.modules.ReactActivityDelegateWrapper\n+\n+class MainActivity : ReactActivity() {\n+ override fun onCreate(savedInstanceState: Bundle?) {\n+ // Set the theme to AppTheme BEFORE onCreate to support\n+ // coloring the background, status bar, and navigation bar.\n+ // This is required for expo-splash-screen.\n+ setTheme(R.style.AppTheme);\n+ super.onCreate(null)\n+ }\n+\n+ /**\n+ * Returns the name of the main component registered from JavaScript. This is used to schedule\n+ * rendering of the component.\n+ */\n+ override fun getMainComponentName(): String = \"main\"\n+\n+ /**\n+ * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]\n+ * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]\n+ */\n+ override fun createReactActivityDelegate(): ReactActivityDelegate {\n+ return ReactActivityDelegateWrapper(\n+ this,\n+ BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n+ object : DefaultReactActivityDelegate(\n+ this,\n+ mainComponentName,\n+ fabricEnabled\n+ ){})\n+ }\n+\n+ /**\n+ * Align the back button behavior with Android S\n+ * where moving root activities to background instead of finishing activities.\n+ * @see onBackPressed\n+ */\n+ override fun invokeDefaultOnBackPressed() {\n+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n+ if (!moveTaskToBack(false)) {\n+ // For non-root activities, use the default implementation to finish them.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+ return\n+ }\n+\n+ // Use the default back button implementation on Android S\n+ // because it's doing more than [Activity.moveTaskToBack] in fact.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\ndeleted file mode 100644\nindex 7deb688b07..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ /dev/null\n@@ -1,106 +0,0 @@\n-package com.helloworld;\n-\n-import android.app.Application;\n-import android.content.Context;\n-import android.content.res.Configuration;\n-import androidx.annotation.NonNull;\n-\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n-import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n-\n-import expo.modules.ApplicationLifecycleDispatcher;\n-import expo.modules.ReactNativeHostWrapper;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.List;\n-\n-public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n-\n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n-\n- @Override\n- public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n- }\n-\n- @Override\n- public void onCreate() {\n- super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- ApplicationLifecycleDispatcher.onApplicationCreate(this);\n- }\n-\n- @Override\n- public void onConfigurationChanged(@NonNull Configuration newConfig) {\n- super.onConfigurationChanged(newConfig);\n- ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n- }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\nnew file mode 100644\nindex 0000000000..8258c40ed4\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,65 @@\n+package com.helloworld\n+\n+import android.app.Application\n+import android.content.res.Configuration\n+import androidx.annotation.NonNull\n+\n+import com.facebook.react.PackageList\n+import com.facebook.react.ReactApplication\n+import com.facebook.react.ReactNativeHost\n+import com.facebook.react.ReactPackage\n+import com.facebook.react.ReactHost\n+import com.facebook.react.config.ReactFeatureFlags\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\n+import com.facebook.react.flipper.ReactNativeFlipper\n+import com.facebook.soloader.SoLoader\n+\n+import expo.modules.ApplicationLifecycleDispatcher\n+import expo.modules.ReactNativeHostWrapper\n+\n+class MainApplication : Application(), ReactApplication {\n+\n+ override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(\n+ this,\n+ object : DefaultReactNativeHost(this) {\n+ override fun getPackages(): List {\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return PackageList(this).packages\n+ }\n+\n+ override fun getJSMainModuleName(): String = \".expo/.virtual-metro-entry\"\n+\n+ override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n+\n+ override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n+ override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n+ }\n+ )\n+\n+ override val reactHost: ReactHost\n+ get() = getDefaultReactHost(this.applicationContext, reactNativeHost)\n+\n+ override fun onCreate() {\n+ super.onCreate()\n+ SoLoader.init(this, false)\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ load()\n+ }\n+ if (BuildConfig.DEBUG) {\n+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager)\n+ }\n+ ApplicationLifecycleDispatcher.onApplicationCreate(this)\n+ }\n+\n+ override fun onConfigurationChanged(newConfig: Configuration) {\n+ super.onConfigurationChanged(newConfig)\n+ ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex cda1391225..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source\n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_runtime \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,7 +18,7 @@\n \n \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\ndeleted file mode 100644\nindex 8e13797d9b..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ /dev/null\n@@ -1,83 +0,0 @@\n-package com.helloworld;\n-\n-import android.os.Build;\n-import android.os.Bundle;\n-\n-import com.facebook.react.ReactActivity;\n-import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n-\n-import expo.modules.ReactActivityDelegateWrapper;\n-\n-public class MainActivity extends ReactActivity {\n- @Override\n- protected void onCreate(Bundle savedInstanceState) {\n- // Set the theme to AppTheme BEFORE onCreate to support \n- // coloring the background, status bar, and navigation bar.\n- // This is required for expo-splash-screen.\n- setTheme(R.style.AppTheme);\n- super.onCreate(null);\n- }\n-\n- /**\n- * Returns the name of the main component registered from JavaScript.\n- * This is used to schedule rendering of the component.\n- */\n- @Override\n- protected String getMainComponentName() {\n- return \"main\";\n- }\n-\n- /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n- */\n- @Override\n- protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n- }\n-\n- /**\n- * Align the back button behavior with Android S\n- * where moving root activities to background instead of finishing activities.\n- * @see onBackPressed\n- */\n- @Override\n- public void invokeDefaultOnBackPressed() {\n- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n- if (!moveTaskToBack(false)) {\n- // For non-root activities, use the default implementation to finish them.\n- super.invokeDefaultOnBackPressed();\n- }\n- return;\n- }\n-\n- // Use the default back button implementation on Android S\n- // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n- super.invokeDefaultOnBackPressed();\n- }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\nnew file mode 100644\nindex 0000000000..c4467326aa\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\n@@ -0,0 +1,61 @@\n+package com.helloworld\n+\n+import android.os.Build\n+import android.os.Bundle\n+\n+import com.facebook.react.ReactActivity\n+import com.facebook.react.ReactActivityDelegate\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled\n+import com.facebook.react.defaults.DefaultReactActivityDelegate\n+\n+import expo.modules.ReactActivityDelegateWrapper\n+\n+class MainActivity : ReactActivity() {\n+ override fun onCreate(savedInstanceState: Bundle?) {\n+ // Set the theme to AppTheme BEFORE onCreate to support\n+ // coloring the background, status bar, and navigation bar.\n+ // This is required for expo-splash-screen.\n+ setTheme(R.style.AppTheme);\n+ super.onCreate(null)\n+ }\n+\n+ /**\n+ * Returns the name of the main component registered from JavaScript. This is used to schedule\n+ * rendering of the component.\n+ */\n+ override fun getMainComponentName(): String = \"main\"\n+\n+ /**\n+ * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]\n+ * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]\n+ */\n+ override fun createReactActivityDelegate(): ReactActivityDelegate {\n+ return ReactActivityDelegateWrapper(\n+ this,\n+ BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n+ object : DefaultReactActivityDelegate(\n+ this,\n+ mainComponentName,\n+ fabricEnabled\n+ ){})\n+ }\n+\n+ /**\n+ * Align the back button behavior with Android S\n+ * where moving root activities to background instead of finishing activities.\n+ * @see onBackPressed\n+ */\n+ override fun invokeDefaultOnBackPressed() {\n+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n+ if (!moveTaskToBack(false)) {\n+ // For non-root activities, use the default implementation to finish them.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+ return\n+ }\n+\n+ // Use the default back button implementation on Android S\n+ // because it's doing more than [Activity.moveTaskToBack] in fact.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\ndeleted file mode 100644\nindex 7deb688b07..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ /dev/null\n@@ -1,106 +0,0 @@\n-package com.helloworld;\n-\n-import android.app.Application;\n-import android.content.Context;\n-import android.content.res.Configuration;\n-import androidx.annotation.NonNull;\n-\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n-import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n-\n-import expo.modules.ApplicationLifecycleDispatcher;\n-import expo.modules.ReactNativeHostWrapper;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.List;\n-\n-public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n-\n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n-\n- @Override\n- public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n- }\n-\n- @Override\n- public void onCreate() {\n- super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- ApplicationLifecycleDispatcher.onApplicationCreate(this);\n- }\n-\n- @Override\n- public void onConfigurationChanged(@NonNull Configuration newConfig) {\n- super.onConfigurationChanged(newConfig);\n- ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n- }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\nnew file mode 100644\nindex 0000000000..8258c40ed4\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,65 @@\n+package com.helloworld\n+\n+import android.app.Application\n+import android.content.res.Configuration\n+import androidx.annotation.NonNull\n+\n+import com.facebook.react.PackageList\n+import com.facebook.react.ReactApplication\n+import com.facebook.react.ReactNativeHost\n+import com.facebook.react.ReactPackage\n+import com.facebook.react.ReactHost\n+import com.facebook.react.config.ReactFeatureFlags\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\n+import com.facebook.react.flipper.ReactNativeFlipper\n+import com.facebook.soloader.SoLoader\n+\n+import expo.modules.ApplicationLifecycleDispatcher\n+import expo.modules.ReactNativeHostWrapper\n+\n+class MainApplication : Application(), ReactApplication {\n+\n+ override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(\n+ this,\n+ object : DefaultReactNativeHost(this) {\n+ override fun getPackages(): List {\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return PackageList(this).packages\n+ }\n+\n+ override fun getJSMainModuleName(): String = \".expo/.virtual-metro-entry\"\n+\n+ override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n+\n+ override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n+ override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n+ }\n+ )\n+\n+ override val reactHost: ReactHost\n+ get() = getDefaultReactHost(this.applicationContext, reactNativeHost)\n+\n+ override fun onCreate() {\n+ super.onCreate()\n+ SoLoader.init(this, false)\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ load()\n+ }\n+ if (BuildConfig.DEBUG) {\n+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager)\n+ }\n+ ApplicationLifecycleDispatcher.onApplicationCreate(this)\n+ }\n+\n+ override fun onConfigurationChanged(newConfig: Configuration) {\n+ super.onConfigurationChanged(newConfig)\n+ ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt b/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\ndeleted file mode 100644\nindex d2cad3a326..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-cmake_minimum_required(VERSION 3.13)\n-\n-# Define the library name here.\n-project(helloworld_appmodules)\n-\n-# This file includes all the necessary to let you build your application with the New Architecture.\n-include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 26162dd872..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n-\n- // Module providers autolinked by RN CLI\n- auto rncli_module = rncli_ModuleProvider(moduleName, params);\n- if (rncli_module != nullptr) {\n- return rncli_module;\n- }\n-\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex b38ccf53fd..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex 5fd688c509..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- const std::string &name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 9ee38a81f6..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(const std::string &name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 54f598a486..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,65 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Autolinked providers registered by RN CLI\n- rncli_registerProviders(providerRegistry);\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,9 +18,9 @@\n \n \n \n- \n+ \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\ndeleted file mode 100644\nindex 576e23db45..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ /dev/null\n@@ -1,57 +0,0 @@\n-package com.helloworld;\n-\n-import android.os.Build;\n-import android.os.Bundle;\n-\n-import com.facebook.react.ReactActivity;\n-import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n-\n-import expo.modules.ReactActivityDelegateWrapper;\n-\n-public class MainActivity extends ReactActivity {\n- @Override\n- protected void onCreate(Bundle savedInstanceState) {\n- // Set the theme to AppTheme BEFORE onCreate to support \n- // coloring the background, status bar, and navigation bar.\n- // This is required for expo-splash-screen.\n- setTheme(R.style.AppTheme);\n- super.onCreate(null);\n- }\n-\n- /**\n- * Returns the name of the main component registered from JavaScript.\n- * This is used to schedule rendering of the component.\n- */\n- @Override\n- protected String getMainComponentName() {\n- return \"main\";\n- }\n-\n- @Override\n- protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this,\n- new ReactActivityDelegate(this, getMainComponentName())\n- );\n- }\n-\n- /**\n- * Align the back button behavior with Android S\n- * where moving root activities to background instead of finishing activities.\n- * @see onBackPressed\n- */\n- @Override\n- public void invokeDefaultOnBackPressed() {\n- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n- if (!moveTaskToBack(false)) {\n- // For non-root activities, use the default implementation to finish them.\n- super.invokeDefaultOnBackPressed();\n- }\n- return;\n- }\n-\n- // Use the default back button implementation on Android S\n- // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n- super.invokeDefaultOnBackPressed();\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\nnew file mode 100644\nindex 0000000000..c4467326aa\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\n@@ -0,0 +1,61 @@\n+package com.helloworld\n+\n+import android.os.Build\n+import android.os.Bundle\n+\n+import com.facebook.react.ReactActivity\n+import com.facebook.react.ReactActivityDelegate\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled\n+import com.facebook.react.defaults.DefaultReactActivityDelegate\n+\n+import expo.modules.ReactActivityDelegateWrapper\n+\n+class MainActivity : ReactActivity() {\n+ override fun onCreate(savedInstanceState: Bundle?) {\n+ // Set the theme to AppTheme BEFORE onCreate to support\n+ // coloring the background, status bar, and navigation bar.\n+ // This is required for expo-splash-screen.\n+ setTheme(R.style.AppTheme);\n+ super.onCreate(null)\n+ }\n+\n+ /**\n+ * Returns the name of the main component registered from JavaScript. This is used to schedule\n+ * rendering of the component.\n+ */\n+ override fun getMainComponentName(): String = \"main\"\n+\n+ /**\n+ * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]\n+ * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]\n+ */\n+ override fun createReactActivityDelegate(): ReactActivityDelegate {\n+ return ReactActivityDelegateWrapper(\n+ this,\n+ BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n+ object : DefaultReactActivityDelegate(\n+ this,\n+ mainComponentName,\n+ fabricEnabled\n+ ){})\n+ }\n+\n+ /**\n+ * Align the back button behavior with Android S\n+ * where moving root activities to background instead of finishing activities.\n+ * @see onBackPressed\n+ */\n+ override fun invokeDefaultOnBackPressed() {\n+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n+ if (!moveTaskToBack(false)) {\n+ // For non-root activities, use the default implementation to finish them.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+ return\n+ }\n+\n+ // Use the default back button implementation on Android S\n+ // because it's doing more than [Activity.moveTaskToBack] in fact.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\ndeleted file mode 100644\nindex 7deb688b07..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ /dev/null\n@@ -1,106 +0,0 @@\n-package com.helloworld;\n-\n-import android.app.Application;\n-import android.content.Context;\n-import android.content.res.Configuration;\n-import androidx.annotation.NonNull;\n-\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n-import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n-\n-import expo.modules.ApplicationLifecycleDispatcher;\n-import expo.modules.ReactNativeHostWrapper;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.List;\n-\n-public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n-\n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n-\n- @Override\n- public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n- }\n-\n- @Override\n- public void onCreate() {\n- super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- ApplicationLifecycleDispatcher.onApplicationCreate(this);\n- }\n-\n- @Override\n- public void onConfigurationChanged(@NonNull Configuration newConfig) {\n- super.onConfigurationChanged(newConfig);\n- ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n- }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\nnew file mode 100644\nindex 0000000000..8258c40ed4\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,65 @@\n+package com.helloworld\n+\n+import android.app.Application\n+import android.content.res.Configuration\n+import androidx.annotation.NonNull\n+\n+import com.facebook.react.PackageList\n+import com.facebook.react.ReactApplication\n+import com.facebook.react.ReactNativeHost\n+import com.facebook.react.ReactPackage\n+import com.facebook.react.ReactHost\n+import com.facebook.react.config.ReactFeatureFlags\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\n+import com.facebook.react.flipper.ReactNativeFlipper\n+import com.facebook.soloader.SoLoader\n+\n+import expo.modules.ApplicationLifecycleDispatcher\n+import expo.modules.ReactNativeHostWrapper\n+\n+class MainApplication : Application(), ReactApplication {\n+\n+ override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(\n+ this,\n+ object : DefaultReactNativeHost(this) {\n+ override fun getPackages(): List {\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return PackageList(this).packages\n+ }\n+\n+ override fun getJSMainModuleName(): String = \".expo/.virtual-metro-entry\"\n+\n+ override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n+\n+ override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n+ override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n+ }\n+ )\n+\n+ override val reactHost: ReactHost\n+ get() = getDefaultReactHost(this.applicationContext, reactNativeHost)\n+\n+ override fun onCreate() {\n+ super.onCreate()\n+ SoLoader.init(this, false)\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ load()\n+ }\n+ if (BuildConfig.DEBUG) {\n+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager)\n+ }\n+ ApplicationLifecycleDispatcher.onApplicationCreate(this)\n+ }\n+\n+ override fun onConfigurationChanged(newConfig: Configuration) {\n+ super.onConfigurationChanged(newConfig)\n+ ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex f555e36448..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,116 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- new EmptyReactNativeConfig(),\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex 0ae6366756..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,49 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source \n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_futures \\\n- libfolly_json \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,9 +18,9 @@\n \n \n \n- \n+ \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\ndeleted file mode 100644\nindex 8e13797d9b..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ /dev/null\n@@ -1,83 +0,0 @@\n-package com.helloworld;\n-\n-import android.os.Build;\n-import android.os.Bundle;\n-\n-import com.facebook.react.ReactActivity;\n-import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n-\n-import expo.modules.ReactActivityDelegateWrapper;\n-\n-public class MainActivity extends ReactActivity {\n- @Override\n- protected void onCreate(Bundle savedInstanceState) {\n- // Set the theme to AppTheme BEFORE onCreate to support \n- // coloring the background, status bar, and navigation bar.\n- // This is required for expo-splash-screen.\n- setTheme(R.style.AppTheme);\n- super.onCreate(null);\n- }\n-\n- /**\n- * Returns the name of the main component registered from JavaScript.\n- * This is used to schedule rendering of the component.\n- */\n- @Override\n- protected String getMainComponentName() {\n- return \"main\";\n- }\n-\n- /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n- */\n- @Override\n- protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n- }\n-\n- /**\n- * Align the back button behavior with Android S\n- * where moving root activities to background instead of finishing activities.\n- * @see onBackPressed\n- */\n- @Override\n- public void invokeDefaultOnBackPressed() {\n- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n- if (!moveTaskToBack(false)) {\n- // For non-root activities, use the default implementation to finish them.\n- super.invokeDefaultOnBackPressed();\n- }\n- return;\n- }\n-\n- // Use the default back button implementation on Android S\n- // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n- super.invokeDefaultOnBackPressed();\n- }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\nnew file mode 100644\nindex 0000000000..c4467326aa\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\n@@ -0,0 +1,61 @@\n+package com.helloworld\n+\n+import android.os.Build\n+import android.os.Bundle\n+\n+import com.facebook.react.ReactActivity\n+import com.facebook.react.ReactActivityDelegate\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled\n+import com.facebook.react.defaults.DefaultReactActivityDelegate\n+\n+import expo.modules.ReactActivityDelegateWrapper\n+\n+class MainActivity : ReactActivity() {\n+ override fun onCreate(savedInstanceState: Bundle?) {\n+ // Set the theme to AppTheme BEFORE onCreate to support\n+ // coloring the background, status bar, and navigation bar.\n+ // This is required for expo-splash-screen.\n+ setTheme(R.style.AppTheme);\n+ super.onCreate(null)\n+ }\n+\n+ /**\n+ * Returns the name of the main component registered from JavaScript. This is used to schedule\n+ * rendering of the component.\n+ */\n+ override fun getMainComponentName(): String = \"main\"\n+\n+ /**\n+ * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]\n+ * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]\n+ */\n+ override fun createReactActivityDelegate(): ReactActivityDelegate {\n+ return ReactActivityDelegateWrapper(\n+ this,\n+ BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n+ object : DefaultReactActivityDelegate(\n+ this,\n+ mainComponentName,\n+ fabricEnabled\n+ ){})\n+ }\n+\n+ /**\n+ * Align the back button behavior with Android S\n+ * where moving root activities to background instead of finishing activities.\n+ * @see onBackPressed\n+ */\n+ override fun invokeDefaultOnBackPressed() {\n+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n+ if (!moveTaskToBack(false)) {\n+ // For non-root activities, use the default implementation to finish them.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+ return\n+ }\n+\n+ // Use the default back button implementation on Android S\n+ // because it's doing more than [Activity.moveTaskToBack] in fact.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\ndeleted file mode 100644\nindex 7deb688b07..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ /dev/null\n@@ -1,106 +0,0 @@\n-package com.helloworld;\n-\n-import android.app.Application;\n-import android.content.Context;\n-import android.content.res.Configuration;\n-import androidx.annotation.NonNull;\n-\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n-import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n-\n-import expo.modules.ApplicationLifecycleDispatcher;\n-import expo.modules.ReactNativeHostWrapper;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.List;\n-\n-public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n-\n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n-\n- @Override\n- public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n- }\n-\n- @Override\n- public void onCreate() {\n- super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- ApplicationLifecycleDispatcher.onApplicationCreate(this);\n- }\n-\n- @Override\n- public void onConfigurationChanged(@NonNull Configuration newConfig) {\n- super.onConfigurationChanged(newConfig);\n- ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n- }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\nnew file mode 100644\nindex 0000000000..8258c40ed4\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,65 @@\n+package com.helloworld\n+\n+import android.app.Application\n+import android.content.res.Configuration\n+import androidx.annotation.NonNull\n+\n+import com.facebook.react.PackageList\n+import com.facebook.react.ReactApplication\n+import com.facebook.react.ReactNativeHost\n+import com.facebook.react.ReactPackage\n+import com.facebook.react.ReactHost\n+import com.facebook.react.config.ReactFeatureFlags\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\n+import com.facebook.react.flipper.ReactNativeFlipper\n+import com.facebook.soloader.SoLoader\n+\n+import expo.modules.ApplicationLifecycleDispatcher\n+import expo.modules.ReactNativeHostWrapper\n+\n+class MainApplication : Application(), ReactApplication {\n+\n+ override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(\n+ this,\n+ object : DefaultReactNativeHost(this) {\n+ override fun getPackages(): List {\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return PackageList(this).packages\n+ }\n+\n+ override fun getJSMainModuleName(): String = \".expo/.virtual-metro-entry\"\n+\n+ override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n+\n+ override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n+ override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n+ }\n+ )\n+\n+ override val reactHost: ReactHost\n+ get() = getDefaultReactHost(this.applicationContext, reactNativeHost)\n+\n+ override fun onCreate() {\n+ super.onCreate()\n+ SoLoader.init(this, false)\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ load()\n+ }\n+ if (BuildConfig.DEBUG) {\n+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager)\n+ }\n+ ApplicationLifecycleDispatcher.onApplicationCreate(this)\n+ }\n+\n+ override fun onConfigurationChanged(newConfig: Configuration) {\n+ super.onConfigurationChanged(newConfig)\n+ ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk b/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\ndeleted file mode 100644\nindex cda1391225..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/Android.mk\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-THIS_DIR := $(call my-dir)\n-\n-include $(REACT_ANDROID_DIR)/Android-prebuilt.mk\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to include the following autogenerated makefile.\n-# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk\n-include $(CLEAR_VARS)\n-\n-LOCAL_PATH := $(THIS_DIR)\n-\n-# You can customize the name of your application .so file here.\n-LOCAL_MODULE := helloworld_appmodules\n-\n-LOCAL_C_INCLUDES := $(LOCAL_PATH)\n-LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)\n-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)\n-\n-# If you wish to add a custom TurboModule or Fabric component in your app you\n-# will have to uncomment those lines to include the generated source\n-# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)\n-#\n-# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)\n-# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni\n-\n-# Here you should add any native library you wish to depend on.\n-LOCAL_SHARED_LIBRARIES := \\\n- libfabricjni \\\n- libfbjni \\\n- libfolly_runtime \\\n- libglog \\\n- libjsi \\\n- libreact_codegen_rncore \\\n- libreact_debug \\\n- libreact_nativemodule_core \\\n- libreact_render_componentregistry \\\n- libreact_render_core \\\n- libreact_render_debug \\\n- libreact_render_graphics \\\n- librrc_view \\\n- libruntimeexecutor \\\n- libturbomodulejsijni \\\n- libyoga\n-\n-LOCAL_CFLAGS := -DLOG_TAG=\\\"ReactNative\\\" -fexceptions -frtti -std=c++17 -Wall\n-\n-include $(BUILD_SHARED_LIBRARY)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 0ac23cc626..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,24 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex 0fa43fa69a..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex dbbdc3d132..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- std::string name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 25f27722d0..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const std::shared_ptr jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(std::string name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 8f7edffd64..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,61 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- \n@@ -18,9 +18,9 @@\n \n \n \n- \n+ \n \n- \n+ \n \n \n \ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\ndeleted file mode 100644\nindex 8e13797d9b..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java\n+++ /dev/null\n@@ -1,83 +0,0 @@\n-package com.helloworld;\n-\n-import android.os.Build;\n-import android.os.Bundle;\n-\n-import com.facebook.react.ReactActivity;\n-import com.facebook.react.ReactActivityDelegate;\n-import com.facebook.react.ReactRootView;\n-\n-import expo.modules.ReactActivityDelegateWrapper;\n-\n-public class MainActivity extends ReactActivity {\n- @Override\n- protected void onCreate(Bundle savedInstanceState) {\n- // Set the theme to AppTheme BEFORE onCreate to support \n- // coloring the background, status bar, and navigation bar.\n- // This is required for expo-splash-screen.\n- setTheme(R.style.AppTheme);\n- super.onCreate(null);\n- }\n-\n- /**\n- * Returns the name of the main component registered from JavaScript.\n- * This is used to schedule rendering of the component.\n- */\n- @Override\n- protected String getMainComponentName() {\n- return \"main\";\n- }\n-\n- /**\n- * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and\n- * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer\n- * (Paper).\n- */\n- @Override\n- protected ReactActivityDelegate createReactActivityDelegate() {\n- return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n- new MainActivityDelegate(this, getMainComponentName())\n- );\n- }\n-\n- /**\n- * Align the back button behavior with Android S\n- * where moving root activities to background instead of finishing activities.\n- * @see onBackPressed\n- */\n- @Override\n- public void invokeDefaultOnBackPressed() {\n- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n- if (!moveTaskToBack(false)) {\n- // For non-root activities, use the default implementation to finish them.\n- super.invokeDefaultOnBackPressed();\n- }\n- return;\n- }\n-\n- // Use the default back button implementation on Android S\n- // because it's doing more than {@link Activity#moveTaskToBack} in fact.\n- super.invokeDefaultOnBackPressed();\n- }\n-\n- public static class MainActivityDelegate extends ReactActivityDelegate {\n- public MainActivityDelegate(ReactActivity activity, String mainComponentName) {\n- super(activity, mainComponentName);\n- }\n-\n- @Override\n- protected ReactRootView createRootView() {\n- ReactRootView reactRootView = new ReactRootView(getContext());\n- // If you opted-in for the New Architecture, we enable the Fabric Renderer.\n- reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);\n- return reactRootView;\n- }\n-\n- @Override\n- protected boolean isConcurrentRootEnabled() {\n- // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).\n- // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html\n- return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\nnew file mode 100644\nindex 0000000000..c4467326aa\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.kt\n@@ -0,0 +1,61 @@\n+package com.helloworld\n+\n+import android.os.Build\n+import android.os.Bundle\n+\n+import com.facebook.react.ReactActivity\n+import com.facebook.react.ReactActivityDelegate\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled\n+import com.facebook.react.defaults.DefaultReactActivityDelegate\n+\n+import expo.modules.ReactActivityDelegateWrapper\n+\n+class MainActivity : ReactActivity() {\n+ override fun onCreate(savedInstanceState: Bundle?) {\n+ // Set the theme to AppTheme BEFORE onCreate to support\n+ // coloring the background, status bar, and navigation bar.\n+ // This is required for expo-splash-screen.\n+ setTheme(R.style.AppTheme);\n+ super.onCreate(null)\n+ }\n+\n+ /**\n+ * Returns the name of the main component registered from JavaScript. This is used to schedule\n+ * rendering of the component.\n+ */\n+ override fun getMainComponentName(): String = \"main\"\n+\n+ /**\n+ * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]\n+ * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]\n+ */\n+ override fun createReactActivityDelegate(): ReactActivityDelegate {\n+ return ReactActivityDelegateWrapper(\n+ this,\n+ BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,\n+ object : DefaultReactActivityDelegate(\n+ this,\n+ mainComponentName,\n+ fabricEnabled\n+ ){})\n+ }\n+\n+ /**\n+ * Align the back button behavior with Android S\n+ * where moving root activities to background instead of finishing activities.\n+ * @see onBackPressed\n+ */\n+ override fun invokeDefaultOnBackPressed() {\n+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {\n+ if (!moveTaskToBack(false)) {\n+ // For non-root activities, use the default implementation to finish them.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+ return\n+ }\n+\n+ // Use the default back button implementation on Android S\n+ // because it's doing more than [Activity.moveTaskToBack] in fact.\n+ super.invokeDefaultOnBackPressed()\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\ndeleted file mode 100644\nindex 7deb688b07..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java\n+++ /dev/null\n@@ -1,106 +0,0 @@\n-package com.helloworld;\n-\n-import android.app.Application;\n-import android.content.Context;\n-import android.content.res.Configuration;\n-import androidx.annotation.NonNull;\n-\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactApplication;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.config.ReactFeatureFlags;\n-import com.facebook.soloader.SoLoader;\n-import com.helloworld.newarchitecture.MainApplicationReactNativeHost;\n-\n-import expo.modules.ApplicationLifecycleDispatcher;\n-import expo.modules.ReactNativeHostWrapper;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.List;\n-\n-public class MainApplication extends Application implements ReactApplication {\n- private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(\n- this,\n- new ReactNativeHost(this) {\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- @SuppressWarnings(\"UnnecessaryLocalVariable\")\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n- });\n-\n- private final ReactNativeHost mNewArchitectureNativeHost =\n- new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));\n-\n- @Override\n- public ReactNativeHost getReactNativeHost() {\n- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n- return mNewArchitectureNativeHost;\n- } else {\n- return mReactNativeHost;\n- }\n- }\n-\n- @Override\n- public void onCreate() {\n- super.onCreate();\n- // If you opted-in for the New Architecture, we enable the TurboModule system\n- ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;\n- SoLoader.init(this, /* native exopackage */ false);\n-\n- initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- ApplicationLifecycleDispatcher.onApplicationCreate(this);\n- }\n-\n- @Override\n- public void onConfigurationChanged(@NonNull Configuration newConfig) {\n- super.onConfigurationChanged(newConfig);\n- ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);\n- }\n-\n- /**\n- * Loads Flipper in React Native templates. Call this in the onCreate method with something like\n- * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());\n- *\n- * @param context\n- * @param reactInstanceManager\n- */\n- private static void initializeFlipper(\n- Context context, ReactInstanceManager reactInstanceManager) {\n- if (BuildConfig.DEBUG) {\n- try {\n- /*\n- We use reflection here to pick up the class that initializes Flipper,\n- since Flipper library is not available in release mode\n- */\n- Class aClass = Class.forName(\"com.helloworld.ReactNativeFlipper\");\n- aClass\n- .getMethod(\"initializeFlipper\", Context.class, ReactInstanceManager.class)\n- .invoke(null, context, reactInstanceManager);\n- } catch (ClassNotFoundException e) {\n- e.printStackTrace();\n- } catch (NoSuchMethodException e) {\n- e.printStackTrace();\n- } catch (IllegalAccessException e) {\n- e.printStackTrace();\n- } catch (InvocationTargetException e) {\n- e.printStackTrace();\n- }\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\nnew file mode 100644\nindex 0000000000..8258c40ed4\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,65 @@\n+package com.helloworld\n+\n+import android.app.Application\n+import android.content.res.Configuration\n+import androidx.annotation.NonNull\n+\n+import com.facebook.react.PackageList\n+import com.facebook.react.ReactApplication\n+import com.facebook.react.ReactNativeHost\n+import com.facebook.react.ReactPackage\n+import com.facebook.react.ReactHost\n+import com.facebook.react.config.ReactFeatureFlags\n+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\n+import com.facebook.react.flipper.ReactNativeFlipper\n+import com.facebook.soloader.SoLoader\n+\n+import expo.modules.ApplicationLifecycleDispatcher\n+import expo.modules.ReactNativeHostWrapper\n+\n+class MainApplication : Application(), ReactApplication {\n+\n+ override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(\n+ this,\n+ object : DefaultReactNativeHost(this) {\n+ override fun getPackages(): List {\n+ // Packages that cannot be autolinked yet can be added manually here, for example:\n+ // packages.add(new MyReactNativePackage());\n+ return PackageList(this).packages\n+ }\n+\n+ override fun getJSMainModuleName(): String = \".expo/.virtual-metro-entry\"\n+\n+ override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG\n+\n+ override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED\n+ override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED\n+ }\n+ )\n+\n+ override val reactHost: ReactHost\n+ get() = getDefaultReactHost(this.applicationContext, reactNativeHost)\n+\n+ override fun onCreate() {\n+ super.onCreate()\n+ SoLoader.init(this, false)\n+ if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {\n+ ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false\n+ }\n+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {\n+ // If you opted-in for the New Architecture, we load the native entry point for this app.\n+ load()\n+ }\n+ if (BuildConfig.DEBUG) {\n+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager)\n+ }\n+ ApplicationLifecycleDispatcher.onApplicationCreate(this)\n+ }\n+\n+ override fun onConfigurationChanged(newConfig: Configuration) {\n+ super.onConfigurationChanged(newConfig)\n+ ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)\n+ }\n+}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\ndeleted file mode 100644\nindex 7665dd923f..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java\n+++ /dev/null\n@@ -1,117 +0,0 @@\n-package com.helloworld.newarchitecture;\n-\n-import android.app.Application;\n-import androidx.annotation.NonNull;\n-import com.facebook.react.PackageList;\n-import com.facebook.react.ReactInstanceManager;\n-import com.facebook.react.ReactNativeHost;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.JSIModulePackage;\n-import com.facebook.react.bridge.JSIModuleProvider;\n-import com.facebook.react.bridge.JSIModuleSpec;\n-import com.facebook.react.bridge.JSIModuleType;\n-import com.facebook.react.bridge.JavaScriptContextHolder;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.react.bridge.UIManager;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.react.fabric.CoreComponentsRegistry;\n-import com.facebook.react.fabric.EmptyReactNativeConfig;\n-import com.facebook.react.fabric.FabricJSIModuleProvider;\n-import com.facebook.react.fabric.ReactNativeConfig;\n-import com.facebook.react.uimanager.ViewManagerRegistry;\n-import com.helloworld.BuildConfig;\n-import com.helloworld.newarchitecture.components.MainComponentsRegistry;\n-import com.helloworld.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both\n- * TurboModule delegates and the Fabric Renderer.\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationReactNativeHost extends ReactNativeHost {\n- public MainApplicationReactNativeHost(Application application) {\n- super(application);\n- }\n-\n- @Override\n- public boolean getUseDeveloperSupport() {\n- return BuildConfig.DEBUG;\n- }\n-\n- @Override\n- protected List getPackages() {\n- List packages = new PackageList(this).getPackages();\n- // Packages that cannot be autolinked yet can be added manually here, for example:\n- // packages.add(new MyReactNativePackage());\n- // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:\n- // packages.add(new TurboReactPackage() { ... });\n- // If you have custom Fabric Components, their ViewManagers should also be loaded here\n- // inside a ReactPackage.\n- return packages;\n- }\n-\n- @Override\n- protected String getJSMainModuleName() {\n- return \"index\";\n- }\n-\n- @NonNull\n- @Override\n- protected ReactPackageTurboModuleManagerDelegate.Builder\n- getReactPackageTurboModuleManagerDelegateBuilder() {\n- // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary\n- // for the new architecture and to use TurboModules correctly.\n- return new MainApplicationTurboModuleManagerDelegate.Builder();\n- }\n-\n- @Override\n- protected JSIModulePackage getJSIModulePackage() {\n- return new JSIModulePackage() {\n- @Override\n- public List getJSIModules(\n- final ReactApplicationContext reactApplicationContext,\n- final JavaScriptContextHolder jsContext) {\n- final List specs = new ArrayList<>();\n-\n- // Here we provide a new JSIModuleSpec that will be responsible of providing the\n- // custom Fabric Components.\n- specs.add(\n- new JSIModuleSpec() {\n- @Override\n- public JSIModuleType getJSIModuleType() {\n- return JSIModuleType.UIManager;\n- }\n-\n- @Override\n- public JSIModuleProvider getJSIModuleProvider() {\n- final ComponentFactory componentFactory = new ComponentFactory();\n- CoreComponentsRegistry.register(componentFactory);\n-\n- // Here we register a Components Registry.\n- // The one that is generated with the template contains no components\n- // and just provides you the one from React Native core.\n- MainComponentsRegistry.register(componentFactory);\n-\n- final ReactInstanceManager reactInstanceManager = getReactInstanceManager();\n-\n- ViewManagerRegistry viewManagerRegistry =\n- new ViewManagerRegistry(\n- reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));\n-\n- return new FabricJSIModuleProvider(\n- reactApplicationContext,\n- componentFactory,\n- ReactNativeConfig.DEFAULT_CONFIG,\n- viewManagerRegistry);\n- }\n- });\n- return specs;\n- }\n- };\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\ndeleted file mode 100644\nindex c74d0ccadb..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java\n+++ /dev/null\n@@ -1,36 +0,0 @@\n-package com.helloworld.newarchitecture.components;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.proguard.annotations.DoNotStrip;\n-import com.facebook.react.fabric.ComponentFactory;\n-import com.facebook.soloader.SoLoader;\n-\n-/**\n- * Class responsible to load the custom Fabric Components. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-@DoNotStrip\n-public class MainComponentsRegistry {\n- static {\n- SoLoader.loadLibrary(\"fabricjni\");\n- }\n-\n- @DoNotStrip private final HybridData mHybridData;\n-\n- @DoNotStrip\n- private native HybridData initHybrid(ComponentFactory componentFactory);\n-\n- @DoNotStrip\n- private MainComponentsRegistry(ComponentFactory componentFactory) {\n- mHybridData = initHybrid(componentFactory);\n- }\n-\n- @DoNotStrip\n- public static MainComponentsRegistry register(ComponentFactory componentFactory) {\n- return new MainComponentsRegistry(componentFactory);\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\ndeleted file mode 100644\nindex 8593b3bb85..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java\n+++ /dev/null\n@@ -1,48 +0,0 @@\n-package com.helloworld.newarchitecture.modules;\n-\n-import com.facebook.jni.HybridData;\n-import com.facebook.react.ReactPackage;\n-import com.facebook.react.ReactPackageTurboModuleManagerDelegate;\n-import com.facebook.react.bridge.ReactApplicationContext;\n-import com.facebook.soloader.SoLoader;\n-import java.util.List;\n-\n-/**\n- * Class responsible to load the TurboModules. This class has native methods and needs a\n- * corresponding C++ implementation/header file to work correctly (already placed inside the jni/\n- * folder for you).\n- *\n- *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the\n- * `newArchEnabled` property). Is ignored otherwise.\n- */\n-public class MainApplicationTurboModuleManagerDelegate\n- extends ReactPackageTurboModuleManagerDelegate {\n-\n- private static volatile boolean sIsSoLibraryLoaded;\n-\n- protected MainApplicationTurboModuleManagerDelegate(\n- ReactApplicationContext reactApplicationContext, List packages) {\n- super(reactApplicationContext, packages);\n- }\n-\n- protected native HybridData initHybrid();\n-\n- native boolean canCreateTurboModule(String moduleName);\n-\n- public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {\n- protected MainApplicationTurboModuleManagerDelegate build(\n- ReactApplicationContext context, List packages) {\n- return new MainApplicationTurboModuleManagerDelegate(context, packages);\n- }\n- }\n-\n- @Override\n- protected synchronized void maybeLoadOtherSoLibraries() {\n- if (!sIsSoLibraryLoaded) {\n- // If you change the name of your application .so file in the Android.mk file,\n- // make sure you update the name here as well.\n- SoLoader.loadLibrary(\"helloworld_appmodules\");\n- sIsSoLibraryLoaded = true;\n- }\n- }\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt b/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\ndeleted file mode 100644\nindex d2cad3a326..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/CMakeLists.txt\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-cmake_minimum_required(VERSION 3.13)\n-\n-# Define the library name here.\n-project(helloworld_appmodules)\n-\n-# This file includes all the necessary to let you build your application with the New Architecture.\n-include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake)\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\ndeleted file mode 100644\nindex 26162dd872..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.cpp\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#include \"MainApplicationModuleProvider.h\"\n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms) {\n- // Here you can provide your own module provider for TurboModules coming from\n- // either your application or from external libraries. The approach to follow\n- // is similar to the following (for a library called `samplelibrary`:\n- //\n- // auto module = samplelibrary_ModuleProvider(moduleName, params);\n- // if (module != nullptr) {\n- // return module;\n- // }\n- // return rncore_ModuleProvider(moduleName, params);\n-\n- // Module providers autolinked by RN CLI\n- auto rncli_module = rncli_ModuleProvider(moduleName, params);\n- if (rncli_module != nullptr) {\n- return rncli_module;\n- }\n-\n- return rncore_ModuleProvider(moduleName, params);\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\ndeleted file mode 100644\nindex b38ccf53fd..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationModuleProvider.h\n+++ /dev/null\n@@ -1,16 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-\n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-std::shared_ptr MainApplicationModuleProvider(\n- const std::string &moduleName,\n- const JavaTurboModule::InitParams ¶ms);\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\ndeleted file mode 100644\nindex 5fd688c509..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp\n+++ /dev/null\n@@ -1,45 +0,0 @@\n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainApplicationModuleProvider.h\"\n-\n-namespace facebook {\n-namespace react {\n-\n-jni::local_ref\n-MainApplicationTurboModuleManagerDelegate::initHybrid(\n- jni::alias_ref) {\n- return makeCxxInstance();\n-}\n-\n-void MainApplicationTurboModuleManagerDelegate::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\n- \"initHybrid\", MainApplicationTurboModuleManagerDelegate::initHybrid),\n- makeNativeMethod(\n- \"canCreateTurboModule\",\n- MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),\n- });\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) {\n- // Not implemented yet: provide pure-C++ NativeModules here.\n- return nullptr;\n-}\n-\n-std::shared_ptr\n-MainApplicationTurboModuleManagerDelegate::getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) {\n- return MainApplicationModuleProvider(name, params);\n-}\n-\n-bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(\n- const std::string &name) {\n- return getTurboModule(name, nullptr) != nullptr ||\n- getTurboModule(name, {.moduleName = name}) != nullptr;\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\ndeleted file mode 100644\nindex 9ee38a81f6..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h\n+++ /dev/null\n@@ -1,38 +0,0 @@\n-#include \n-#include \n-\n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainApplicationTurboModuleManagerDelegate\n- : public jni::HybridClass<\n- MainApplicationTurboModuleManagerDelegate,\n- TurboModuleManagerDelegate> {\n- public:\n- // Adapt it to the package you used for your Java class.\n- static constexpr auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;\";\n-\n- static jni::local_ref initHybrid(jni::alias_ref);\n-\n- static void registerNatives();\n-\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const std::shared_ptr &jsInvoker) override;\n- std::shared_ptr getTurboModule(\n- const std::string &name,\n- const JavaTurboModule::InitParams ¶ms) override;\n-\n- /**\n- * Test-only method. Allows user to verify whether a TurboModule can be\n- * created by instances of this class.\n- */\n- bool canCreateTurboModule(const std::string &name);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\ndeleted file mode 100644\nindex 54f598a486..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.cpp\n+++ /dev/null\n@@ -1,65 +0,0 @@\n-#include \"MainComponentsRegistry.h\"\n-\n-#include \n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}\n-\n-std::shared_ptr\n-MainComponentsRegistry::sharedProviderRegistry() {\n- auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();\n-\n- // Autolinked providers registered by RN CLI\n- rncli_registerProviders(providerRegistry);\n-\n- // Custom Fabric Components go here. You can register custom\n- // components coming from your App or from 3rd party libraries here.\n- //\n- // providerRegistry->add(concreteComponentDescriptorProvider<\n- // AocViewerComponentDescriptor>());\n- return providerRegistry;\n-}\n-\n-jni::local_ref\n-MainComponentsRegistry::initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate) {\n- auto instance = makeCxxInstance(delegate);\n-\n- auto buildRegistryFunction =\n- [](EventDispatcher::Weak const &eventDispatcher,\n- ContextContainer::Shared const &contextContainer)\n- -> ComponentDescriptorRegistry::Shared {\n- auto registry = MainComponentsRegistry::sharedProviderRegistry()\n- ->createComponentDescriptorRegistry(\n- {eventDispatcher, contextContainer});\n-\n- auto mutableRegistry =\n- std::const_pointer_cast(registry);\n-\n- mutableRegistry->setFallbackComponentDescriptor(\n- std::make_shared(\n- ComponentDescriptorParameters{\n- eventDispatcher, contextContainer, nullptr}));\n-\n- return registry;\n- };\n-\n- delegate->buildRegistryFunction = buildRegistryFunction;\n- return instance;\n-}\n-\n-void MainComponentsRegistry::registerNatives() {\n- registerHybrid({\n- makeNativeMethod(\"initHybrid\", MainComponentsRegistry::initHybrid),\n- });\n-}\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h b/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\ndeleted file mode 100644\nindex d61cbffaae..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/MainComponentsRegistry.h\n+++ /dev/null\n@@ -1,32 +0,0 @@\n-#pragma once\n-\n-#include \n-#include \n-#include \n-#include \n-\n-namespace facebook {\n-namespace react {\n-\n-class MainComponentsRegistry\n- : public facebook::jni::HybridClass {\n- public:\n- // Adapt it to the package you used for your Java class.\n- constexpr static auto kJavaDescriptor =\n- \"Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;\";\n-\n- static void registerNatives();\n-\n- MainComponentsRegistry(ComponentFactory *delegate);\n-\n- private:\n- static std::shared_ptr\n- sharedProviderRegistry();\n-\n- static jni::local_ref initHybrid(\n- jni::alias_ref,\n- ComponentFactory *delegate);\n-};\n-\n-} // namespace react\n-} // namespace facebook\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp b/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\ndeleted file mode 100644\nindex c569b6e865..0000000000\n--- a/templates/expo-template-bare-minimum/android/app/src/main/jni/OnLoad.cpp\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-#include \n-#include \"MainApplicationTurboModuleManagerDelegate.h\"\n-#include \"MainComponentsRegistry.h\"\n-\n-JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {\n- return facebook::jni::initialize(vm, [] {\n- facebook::react::MainApplicationTurboModuleManagerDelegate::\n- registerNatives();\n- facebook::react::MainComponentsRegistry::registerNatives();\n- });\n-}\ndiff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\nindex f35d996202..73b37e4d99 100644\n--- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml\n@@ -20,7 +20,7 @@\n android:insetBottom=\"@dimen/abc_edit_text_inset_bottom_material\">\n \n \n- -@@ -18,7 +18,7 @@ +@@ -18,9 +18,9 @@ - + - +- ++ + + diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java deleted file mode 100644 index 576e23db45..0000000000 @@ -876,10 +879,10 @@ index 7deb688b07..0000000000 -} diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt new file mode 100644 -index 0000000000..dd90f54e04 +index 0000000000..8258c40ed4 --- /dev/null +++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt -@@ -0,0 +1,63 @@ +@@ -0,0 +1,65 @@ +package com.helloworld + +import android.app.Application @@ -934,7 +937,9 @@ index 0000000000..dd90f54e04 + // If you opted-in for the New Architecture, we load the native entry point for this app. + load() + } -+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ if (BuildConfig.DEBUG) { ++ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ } + ApplicationLifecycleDispatcher.onApplicationCreate(this) + } + @@ -2320,6 +2325,21 @@ index 9f116db7f2..5a1db7145b 100644 - UIStatusBarStyleDefault +diff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist b/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist +index 03410dc8b3..f4f9f60993 100644 +--- a/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist ++++ b/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist +@@ -2,8 +2,8 @@ + + + +- EXUpdatesSDKVersion +- YOUR-APP-SDK-VERSION-HERE ++ EXUpdatesRuntimeVersion ++ YOUR-APP-RUNTIME-VERSION-HERE + EXUpdatesURL + YOUR-APP-URL-HERE + diff --git a/templates/expo-template-bare-minimum/ios/Podfile b/templates/expo-template-bare-minimum/ios/Podfile index 29797efaaa..b3978b9515 100644 --- a/templates/expo-template-bare-minimum/ios/Podfile diff --git a/docs/public/static/diffs/template-bare-minimum/raw/46..49.diff b/docs/public/static/diffs/template-bare-minimum/raw/46..49.diff index 233ba389d9543..25ede136894e2 100644 --- a/docs/public/static/diffs/template-bare-minimum/raw/46..49.diff +++ b/docs/public/static/diffs/template-bare-minimum/raw/46..49.diff @@ -691,10 +691,10 @@ index 8e13797d9b..176fbf6a2a 100644 - } } diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java -index 7deb688b07..8502c4402d 100644 +index 7deb688b07..e7f376902d 100644 --- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java +++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java -@@ -1,69 +1,74 @@ +@@ -1,69 +1,76 @@ package com.helloworld; import android.app.Application; @@ -800,11 +800,13 @@ index 7deb688b07..8502c4402d 100644 + // If you opted-in for the New Architecture, we load the native entry point for this app. + DefaultNewArchitectureEntryPoint.load(); + } -+ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); ++ if (BuildConfig.DEBUG) { ++ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); ++ } ApplicationLifecycleDispatcher.onApplicationCreate(this); } -@@ -72,35 +77,4 @@ public class MainApplication extends Application implements ReactApplication { +@@ -72,35 +79,4 @@ public class MainApplication extends Application implements ReactApplication { super.onConfigurationChanged(newConfig); ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig); } @@ -2149,7 +2151,7 @@ index 9430b0f9b6..07c9fce65d 100644 + +module.exports = config; diff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json -index d5ca09a584..f100f535f5 100644 +index d5ca09a584..50e94a0837 100644 --- a/templates/expo-template-bare-minimum/package.json +++ b/templates/expo-template-bare-minimum/package.json @@ -1,7 +1,7 @@ @@ -2157,7 +2159,7 @@ index d5ca09a584..f100f535f5 100644 "name": "expo-template-bare-minimum", "description": "This bare project template includes a minimal setup for using unimodules with React Native.", - "version": "46.0.37", -+ "version": "49.0.23", ++ "version": "49.0.24", "main": "index.js", "scripts": { "start": "expo start --dev-client", diff --git a/docs/public/static/diffs/template-bare-minimum/raw/46..50.diff b/docs/public/static/diffs/template-bare-minimum/raw/46..50.diff index 6b8c6358896fd..98d43b1152236 100644 --- a/docs/public/static/diffs/template-bare-minimum/raw/46..50.diff +++ b/docs/public/static/diffs/template-bare-minimum/raw/46..50.diff @@ -85,7 +85,7 @@ index 0e77904834..0000000000 - ], -) diff --git a/templates/expo-template-bare-minimum/android/app/build.gradle b/templates/expo-template-bare-minimum/android/app/build.gradle -index f0293fe400..52d31e3c5e 100644 +index f0293fe400..a265c80fa9 100644 --- a/templates/expo-template-bare-minimum/android/app/build.gradle +++ b/templates/expo-template-bare-minimum/android/app/build.gradle @@ -1,235 +1,97 @@ @@ -300,7 +300,7 @@ index f0293fe400..52d31e3c5e 100644 versionCode 1 versionName "1.0" - buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() -- + - if (isNewArchitectureEnabled()) { - // We configure the NDK build only if you decide to opt-in for the New Architecture. - externalNativeBuild { @@ -318,7 +318,7 @@ index f0293fe400..52d31e3c5e 100644 - // Make sure this target name is the same you specify inside the - // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable. - targets "helloworld_appmodules" - +- - // Fix for windows limit on number of character in file paths and in command lines - if (Os.isFamily(Os.FAMILY_WINDOWS)) { - arguments "NDK_APP_SHORT_COMMANDS=true" @@ -412,7 +412,7 @@ index f0293fe400..52d31e3c5e 100644 } // Apply static values from `gradle.properties` to the `android.packagingOptions` -@@ -289,10 +137,8 @@ android { +@@ -289,88 +137,35 @@ android { } dependencies { @@ -425,30 +425,29 @@ index f0293fe400..52d31e3c5e 100644 def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true"; def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true"; -@@ -301,76 +147,32 @@ dependencies { - - // If your app supports Android versions before Ice Cream Sandwich (API level 14) - if (isGifEnabled || isWebpEnabled) { + def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true"; +- def frescoVersion = rootProject.ext.frescoVersion +- +- // If your app supports Android versions before Ice Cream Sandwich (API level 14) +- if (isGifEnabled || isWebpEnabled) { - implementation "com.facebook.fresco:fresco:${frescoVersion}" - implementation "com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}" -+ implementation("com.facebook.fresco:fresco:${frescoVersion}") -+ implementation("com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}") - } +- } if (isGifEnabled) { // For animated gif support - implementation "com.facebook.fresco:animated-gif:${frescoVersion}" -+ implementation("com.facebook.fresco:animated-gif:${frescoVersion}") ++ implementation("com.facebook.fresco:animated-gif:${reactAndroidLibs.versions.fresco.get()}") } if (isWebpEnabled) { // For webp support - implementation "com.facebook.fresco:webpsupport:${frescoVersion}" -+ implementation("com.facebook.fresco:webpsupport:${frescoVersion}") ++ implementation("com.facebook.fresco:webpsupport:${reactAndroidLibs.versions.fresco.get()}") if (isWebpAnimatedEnabled) { // Animated webp support - implementation "com.facebook.fresco:animated-webp:${frescoVersion}" -+ implementation("com.facebook.fresco:animated-webp:${frescoVersion}") ++ implementation("com.facebook.fresco:animated-webp:${reactAndroidLibs.versions.fresco.get()}") } } @@ -912,10 +911,10 @@ index 7deb688b07..0000000000 -} diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt new file mode 100644 -index 0000000000..dd90f54e04 +index 0000000000..8258c40ed4 --- /dev/null +++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt -@@ -0,0 +1,63 @@ +@@ -0,0 +1,65 @@ +package com.helloworld + +import android.app.Application @@ -970,7 +969,9 @@ index 0000000000..dd90f54e04 + // If you opted-in for the New Architecture, we load the native entry point for this app. + load() + } -+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ if (BuildConfig.DEBUG) { ++ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ } + ApplicationLifecycleDispatcher.onApplicationCreate(this) + } + @@ -1535,10 +1536,10 @@ index f35d996202..73b37e4d99 100644 The item below with state_pressed="false" and state_focused="false" causes a NullPointerException. NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)' diff --git a/templates/expo-template-bare-minimum/android/build.gradle b/templates/expo-template-bare-minimum/android/build.gradle -index f259b31a11..9da06cc296 100644 +index f259b31a11..02a88dad0a 100644 --- a/templates/expo-template-bare-minimum/android/build.gradle +++ b/templates/expo-template-bare-minimum/android/build.gradle -@@ -1,72 +1,41 @@ +@@ -1,72 +1,40 @@ -import org.apache.tools.ant.taskdefs.condition.Os - // Top-level build file where you can add configuration options common to all sub-projects/modules. @@ -1553,10 +1554,10 @@ index f259b31a11..9da06cc296 100644 - if (findProperty('android.kotlinVersion')) { - kotlinVersion = findProperty('android.kotlinVersion') - } +- frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0' + compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '34') + targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '34') + kotlinVersion = findProperty('android.kotlinVersion') ?: '1.8.10' - frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0' - if (System.properties['os.arch'] == 'aarch64') { - // For M1 Users we need to use the NDK 24 which added support for aarch64 @@ -1835,10 +1836,20 @@ index ac1b06f938..53a6b238d4 100644 :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/templates/expo-template-bare-minimum/android/settings.gradle b/templates/expo-template-bare-minimum/android/settings.gradle -index b3332319f9..17ab7a41d7 100644 +index b3332319f9..0fcba3d9bb 100644 --- a/templates/expo-template-bare-minimum/android/settings.gradle +++ b/templates/expo-template-bare-minimum/android/settings.gradle -@@ -3,15 +3,8 @@ rootProject.name = 'HelloWorld' +@@ -1,17 +1,18 @@ + rootProject.name = 'HelloWorld' + ++dependencyResolutionManagement { ++ versionCatalogs { ++ reactAndroidLibs { ++ from(files(new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), "../gradle/libs.versions.toml"))) ++ } ++ } ++} ++ apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle"); useExpoModules() @@ -2471,7 +2482,7 @@ index 9430b0f9b6..07c9fce65d 100644 + +module.exports = config; diff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json -index d5ca09a584..7a9b382c4a 100644 +index d5ca09a584..ec2759d642 100644 --- a/templates/expo-template-bare-minimum/package.json +++ b/templates/expo-template-bare-minimum/package.json @@ -1,7 +1,7 @@ @@ -2479,7 +2490,7 @@ index d5ca09a584..7a9b382c4a 100644 "name": "expo-template-bare-minimum", "description": "This bare project template includes a minimal setup for using unimodules with React Native.", - "version": "46.0.37", -+ "version": "50.0.16", ++ "version": "50.0.22", "main": "index.js", "scripts": { "start": "expo start --dev-client", @@ -2494,10 +2505,10 @@ index d5ca09a584..7a9b382c4a 100644 - "react-dom": "18.0.0", - "react-native": "0.69.9", - "react-native-web": "~0.18.7" -+ "expo": "~50.0.0-preview.3", -+ "expo-status-bar": "~1.11.0", ++ "expo": "~50.0.0-preview.8", ++ "expo-status-bar": "~1.11.1", + "react": "18.2.0", -+ "react-native": "0.73.0" ++ "react-native": "0.73.1" }, "devDependencies": { - "@babel/core": "^7.12.9" diff --git a/docs/public/static/diffs/template-bare-minimum/raw/46..unversioned.diff b/docs/public/static/diffs/template-bare-minimum/raw/46..unversioned.diff index 036ee770b8a3d..67e12af6ff2e6 100644 --- a/docs/public/static/diffs/template-bare-minimum/raw/46..unversioned.diff +++ b/docs/public/static/diffs/template-bare-minimum/raw/46..unversioned.diff @@ -623,7 +623,7 @@ index 8cddb11cb2..0000000000 -} \ No newline at end of file diff --git a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml -index 0cad655b33..34a7ca8314 100644 +index 0cad655b33..04b326127b 100644 --- a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml +++ b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml @@ -1,4 +1,4 @@ @@ -632,15 +632,18 @@ index 0cad655b33..34a7ca8314 100644 -@@ -18,7 +18,7 @@ +@@ -18,9 +18,9 @@ - + - +- ++ + + diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java deleted file mode 100644 index 8e13797d9b..0000000000 @@ -911,10 +914,10 @@ index 7deb688b07..0000000000 -} diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt new file mode 100644 -index 0000000000..dd90f54e04 +index 0000000000..8258c40ed4 --- /dev/null +++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt -@@ -0,0 +1,63 @@ +@@ -0,0 +1,65 @@ +package com.helloworld + +import android.app.Application @@ -969,7 +972,9 @@ index 0000000000..dd90f54e04 + // If you opted-in for the New Architecture, we load the native entry point for this app. + load() + } -+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ if (BuildConfig.DEBUG) { ++ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ } + ApplicationLifecycleDispatcher.onApplicationCreate(this) + } + @@ -2370,6 +2375,21 @@ index 9f116db7f2..5a1db7145b 100644 - UIStatusBarStyleDefault +diff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist b/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist +index 03410dc8b3..f4f9f60993 100644 +--- a/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist ++++ b/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist +@@ -2,8 +2,8 @@ + + + +- EXUpdatesSDKVersion +- YOUR-APP-SDK-VERSION-HERE ++ EXUpdatesRuntimeVersion ++ YOUR-APP-RUNTIME-VERSION-HERE + EXUpdatesURL + YOUR-APP-URL-HERE + diff --git a/templates/expo-template-bare-minimum/ios/Podfile b/templates/expo-template-bare-minimum/ios/Podfile index 91612acca9..b3978b9515 100644 --- a/templates/expo-template-bare-minimum/ios/Podfile diff --git a/docs/public/static/diffs/template-bare-minimum/raw/47..49.diff b/docs/public/static/diffs/template-bare-minimum/raw/47..49.diff index fdca5131f8871..7036b2f51a394 100644 --- a/docs/public/static/diffs/template-bare-minimum/raw/47..49.diff +++ b/docs/public/static/diffs/template-bare-minimum/raw/47..49.diff @@ -677,10 +677,10 @@ index 8e13797d9b..176fbf6a2a 100644 - } } diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java -index 7deb688b07..8502c4402d 100644 +index 7deb688b07..e7f376902d 100644 --- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java +++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java -@@ -1,69 +1,74 @@ +@@ -1,69 +1,76 @@ package com.helloworld; import android.app.Application; @@ -786,11 +786,13 @@ index 7deb688b07..8502c4402d 100644 + // If you opted-in for the New Architecture, we load the native entry point for this app. + DefaultNewArchitectureEntryPoint.load(); + } -+ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); ++ if (BuildConfig.DEBUG) { ++ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); ++ } ApplicationLifecycleDispatcher.onApplicationCreate(this); } -@@ -72,35 +77,4 @@ public class MainApplication extends Application implements ReactApplication { +@@ -72,35 +79,4 @@ public class MainApplication extends Application implements ReactApplication { super.onConfigurationChanged(newConfig); ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig); } @@ -1997,7 +1999,7 @@ index 9430b0f9b6..07c9fce65d 100644 + +module.exports = config; diff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json -index a41fdc0d8d..f100f535f5 100644 +index a41fdc0d8d..50e94a0837 100644 --- a/templates/expo-template-bare-minimum/package.json +++ b/templates/expo-template-bare-minimum/package.json @@ -1,7 +1,7 @@ @@ -2005,7 +2007,7 @@ index a41fdc0d8d..f100f535f5 100644 "name": "expo-template-bare-minimum", "description": "This bare project template includes a minimal setup for using unimodules with React Native.", - "version": "47.0.26", -+ "version": "49.0.23", ++ "version": "49.0.24", "main": "index.js", "scripts": { "start": "expo start --dev-client", diff --git a/docs/public/static/diffs/template-bare-minimum/raw/47..50.diff b/docs/public/static/diffs/template-bare-minimum/raw/47..50.diff index 085a9b1289016..7b032dbadb203 100644 --- a/docs/public/static/diffs/template-bare-minimum/raw/47..50.diff +++ b/docs/public/static/diffs/template-bare-minimum/raw/47..50.diff @@ -85,7 +85,7 @@ index 0e77904834..0000000000 - ], -) diff --git a/templates/expo-template-bare-minimum/android/app/build.gradle b/templates/expo-template-bare-minimum/android/app/build.gradle -index 648135611c..52d31e3c5e 100644 +index 648135611c..a265c80fa9 100644 --- a/templates/expo-template-bare-minimum/android/app/build.gradle +++ b/templates/expo-template-bare-minimum/android/app/build.gradle @@ -1,221 +1,97 @@ @@ -398,7 +398,7 @@ index 648135611c..52d31e3c5e 100644 } // Apply static values from `gradle.properties` to the `android.packagingOptions` -@@ -275,10 +137,8 @@ android { +@@ -275,88 +137,35 @@ android { } dependencies { @@ -411,30 +411,29 @@ index 648135611c..52d31e3c5e 100644 def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true"; def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true"; -@@ -287,76 +147,32 @@ dependencies { - - // If your app supports Android versions before Ice Cream Sandwich (API level 14) - if (isGifEnabled || isWebpEnabled) { + def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true"; +- def frescoVersion = rootProject.ext.frescoVersion +- +- // If your app supports Android versions before Ice Cream Sandwich (API level 14) +- if (isGifEnabled || isWebpEnabled) { - implementation "com.facebook.fresco:fresco:${frescoVersion}" - implementation "com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}" -+ implementation("com.facebook.fresco:fresco:${frescoVersion}") -+ implementation("com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}") - } +- } if (isGifEnabled) { // For animated gif support - implementation "com.facebook.fresco:animated-gif:${frescoVersion}" -+ implementation("com.facebook.fresco:animated-gif:${frescoVersion}") ++ implementation("com.facebook.fresco:animated-gif:${reactAndroidLibs.versions.fresco.get()}") } if (isWebpEnabled) { // For webp support - implementation "com.facebook.fresco:webpsupport:${frescoVersion}" -+ implementation("com.facebook.fresco:webpsupport:${frescoVersion}") ++ implementation("com.facebook.fresco:webpsupport:${reactAndroidLibs.versions.fresco.get()}") if (isWebpAnimatedEnabled) { // Animated webp support - implementation "com.facebook.fresco:animated-webp:${frescoVersion}" -+ implementation("com.facebook.fresco:animated-webp:${frescoVersion}") ++ implementation("com.facebook.fresco:animated-webp:${reactAndroidLibs.versions.fresco.get()}") } } @@ -898,10 +897,10 @@ index 7deb688b07..0000000000 -} diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt new file mode 100644 -index 0000000000..dd90f54e04 +index 0000000000..8258c40ed4 --- /dev/null +++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt -@@ -0,0 +1,63 @@ +@@ -0,0 +1,65 @@ +package com.helloworld + +import android.app.Application @@ -956,7 +955,9 @@ index 0000000000..dd90f54e04 + // If you opted-in for the New Architecture, we load the native entry point for this app. + load() + } -+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ if (BuildConfig.DEBUG) { ++ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ } + ApplicationLifecycleDispatcher.onApplicationCreate(this) + } + @@ -1492,10 +1493,10 @@ index f35d996202..73b37e4d99 100644 The item below with state_pressed="false" and state_focused="false" causes a NullPointerException. NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)' diff --git a/templates/expo-template-bare-minimum/android/build.gradle b/templates/expo-template-bare-minimum/android/build.gradle -index 8181b282cd..9da06cc296 100644 +index 8181b282cd..02a88dad0a 100644 --- a/templates/expo-template-bare-minimum/android/build.gradle +++ b/templates/expo-template-bare-minimum/android/build.gradle -@@ -2,64 +2,40 @@ +@@ -2,64 +2,39 @@ buildscript { ext { @@ -1507,10 +1508,10 @@ index 8181b282cd..9da06cc296 100644 - if (findProperty('android.kotlinVersion')) { - kotlinVersion = findProperty('android.kotlinVersion') - } +- frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0' + compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '34') + targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '34') + kotlinVersion = findProperty('android.kotlinVersion') ?: '1.8.10' - frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0' - if (System.properties['os.arch'] == 'aarch64') { - // For M1 Users we need to use the NDK 24 which added support for aarch64 @@ -1719,10 +1720,20 @@ index a69d9cb6c2..1aa94a4269 100755 set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/templates/expo-template-bare-minimum/android/settings.gradle b/templates/expo-template-bare-minimum/android/settings.gradle -index b3332319f9..17ab7a41d7 100644 +index b3332319f9..0fcba3d9bb 100644 --- a/templates/expo-template-bare-minimum/android/settings.gradle +++ b/templates/expo-template-bare-minimum/android/settings.gradle -@@ -3,15 +3,8 @@ rootProject.name = 'HelloWorld' +@@ -1,17 +1,18 @@ + rootProject.name = 'HelloWorld' + ++dependencyResolutionManagement { ++ versionCatalogs { ++ reactAndroidLibs { ++ from(files(new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), "../gradle/libs.versions.toml"))) ++ } ++ } ++} ++ apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle"); useExpoModules() @@ -2353,7 +2364,7 @@ index 9430b0f9b6..07c9fce65d 100644 + +module.exports = config; diff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json -index a41fdc0d8d..7a9b382c4a 100644 +index a41fdc0d8d..ec2759d642 100644 --- a/templates/expo-template-bare-minimum/package.json +++ b/templates/expo-template-bare-minimum/package.json @@ -1,7 +1,7 @@ @@ -2361,7 +2372,7 @@ index a41fdc0d8d..7a9b382c4a 100644 "name": "expo-template-bare-minimum", "description": "This bare project template includes a minimal setup for using unimodules with React Native.", - "version": "47.0.26", -+ "version": "50.0.16", ++ "version": "50.0.22", "main": "index.js", "scripts": { "start": "expo start --dev-client", @@ -2374,10 +2385,10 @@ index a41fdc0d8d..7a9b382c4a 100644 - "expo-status-bar": "~1.4.2", - "react": "18.1.0", - "react-native": "0.70.8" -+ "expo": "~50.0.0-preview.3", -+ "expo-status-bar": "~1.11.0", ++ "expo": "~50.0.0-preview.8", ++ "expo-status-bar": "~1.11.1", + "react": "18.2.0", -+ "react-native": "0.73.0" ++ "react-native": "0.73.1" }, "devDependencies": { - "@babel/core": "^7.12.9" diff --git a/docs/public/static/diffs/template-bare-minimum/raw/47..unversioned.diff b/docs/public/static/diffs/template-bare-minimum/raw/47..unversioned.diff index 6c61163bbf527..c0e257424f1dc 100644 --- a/docs/public/static/diffs/template-bare-minimum/raw/47..unversioned.diff +++ b/docs/public/static/diffs/template-bare-minimum/raw/47..unversioned.diff @@ -609,7 +609,7 @@ index 8cddb11cb2..0000000000 -} \ No newline at end of file diff --git a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml -index 0cad655b33..34a7ca8314 100644 +index 0cad655b33..04b326127b 100644 --- a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml +++ b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml @@ -1,4 +1,4 @@ @@ -618,15 +618,18 @@ index 0cad655b33..34a7ca8314 100644 -@@ -18,7 +18,7 @@ +@@ -18,9 +18,9 @@ - + - +- ++ + + diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java deleted file mode 100644 index 8e13797d9b..0000000000 @@ -897,10 +900,10 @@ index 7deb688b07..0000000000 -} diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt new file mode 100644 -index 0000000000..dd90f54e04 +index 0000000000..8258c40ed4 --- /dev/null +++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt -@@ -0,0 +1,63 @@ +@@ -0,0 +1,65 @@ +package com.helloworld + +import android.app.Application @@ -955,7 +958,9 @@ index 0000000000..dd90f54e04 + // If you opted-in for the New Architecture, we load the native entry point for this app. + load() + } -+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ if (BuildConfig.DEBUG) { ++ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ } + ApplicationLifecycleDispatcher.onApplicationCreate(this) + } + @@ -2255,6 +2260,21 @@ index 9f116db7f2..5a1db7145b 100644 - UIStatusBarStyleDefault +diff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist b/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist +index 03410dc8b3..f4f9f60993 100644 +--- a/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist ++++ b/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist +@@ -2,8 +2,8 @@ + + + +- EXUpdatesSDKVersion +- YOUR-APP-SDK-VERSION-HERE ++ EXUpdatesRuntimeVersion ++ YOUR-APP-RUNTIME-VERSION-HERE + EXUpdatesURL + YOUR-APP-URL-HERE + diff --git a/templates/expo-template-bare-minimum/ios/Podfile b/templates/expo-template-bare-minimum/ios/Podfile index 474455b90d..b3978b9515 100644 --- a/templates/expo-template-bare-minimum/ios/Podfile diff --git a/docs/public/static/diffs/template-bare-minimum/raw/48..49.diff b/docs/public/static/diffs/template-bare-minimum/raw/48..49.diff index 5ed6a28f88573..7007390cbb0bf 100644 --- a/docs/public/static/diffs/template-bare-minimum/raw/48..49.diff +++ b/docs/public/static/diffs/template-bare-minimum/raw/48..49.diff @@ -196,7 +196,7 @@ index 7e2823fb6c..176fbf6a2a 100644 /** diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java -index 31c2b288c1..8502c4402d 100644 +index 31c2b288c1..e7f376902d 100644 --- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java +++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java @@ -8,6 +8,7 @@ import com.facebook.react.PackageList; @@ -216,7 +216,7 @@ index 31c2b288c1..8502c4402d 100644 } @Override -@@ -60,6 +61,9 @@ public class MainApplication extends Application implements ReactApplication { +@@ -60,11 +61,16 @@ public class MainApplication extends Application implements ReactApplication { public void onCreate() { super.onCreate(); SoLoader.init(this, /* native exopackage */ false); @@ -226,6 +226,14 @@ index 31c2b288c1..8502c4402d 100644 if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { // If you opted-in for the New Architecture, we load the native entry point for this app. DefaultNewArchitectureEntryPoint.load(); + } +- ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); ++ if (BuildConfig.DEBUG) { ++ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); ++ } + ApplicationLifecycleDispatcher.onApplicationCreate(this); + } + diff --git a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml b/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml index f35d996202..73b37e4d99 100644 --- a/templates/expo-template-bare-minimum/android/app/src/main/res/drawable/rn_edit_text_material.xml @@ -577,7 +585,7 @@ index 9430b0f9b6..07c9fce65d 100644 + +module.exports = config; diff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json -index d1fcd513cc..f100f535f5 100644 +index d1fcd513cc..50e94a0837 100644 --- a/templates/expo-template-bare-minimum/package.json +++ b/templates/expo-template-bare-minimum/package.json @@ -1,7 +1,7 @@ @@ -585,7 +593,7 @@ index d1fcd513cc..f100f535f5 100644 "name": "expo-template-bare-minimum", "description": "This bare project template includes a minimal setup for using unimodules with React Native.", - "version": "48.0.21", -+ "version": "49.0.23", ++ "version": "49.0.24", "main": "index.js", "scripts": { "start": "expo start --dev-client", diff --git a/docs/public/static/diffs/template-bare-minimum/raw/48..50.diff b/docs/public/static/diffs/template-bare-minimum/raw/48..50.diff index 9ef8d6e219a0e..034fde3ba7fa7 100644 --- a/docs/public/static/diffs/template-bare-minimum/raw/48..50.diff +++ b/docs/public/static/diffs/template-bare-minimum/raw/48..50.diff @@ -11,7 +11,7 @@ index 4e6ce00391..bc0b76356d 100644 android/app/build android/.gradle diff --git a/templates/expo-template-bare-minimum/android/app/build.gradle b/templates/expo-template-bare-minimum/android/app/build.gradle -index 189390e7e3..52d31e3c5e 100644 +index 189390e7e3..a265c80fa9 100644 --- a/templates/expo-template-bare-minimum/android/app/build.gradle +++ b/templates/expo-template-bare-minimum/android/app/build.gradle @@ -1,17 +1,8 @@ @@ -153,7 +153,32 @@ index 189390e7e3..52d31e3c5e 100644 } // Apply static values from `gradle.properties` to the `android.packagingOptions` -@@ -218,13 +165,7 @@ dependencies { +@@ -196,35 +143,22 @@ dependencies { + def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true"; + def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true"; + def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true"; +- def frescoVersion = rootProject.ext.frescoVersion +- +- // If your app supports Android versions before Ice Cream Sandwich (API level 14) +- if (isGifEnabled || isWebpEnabled) { +- implementation("com.facebook.fresco:fresco:${frescoVersion}") +- implementation("com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}") +- } + + if (isGifEnabled) { + // For animated gif support +- implementation("com.facebook.fresco:animated-gif:${frescoVersion}") ++ implementation("com.facebook.fresco:animated-gif:${reactAndroidLibs.versions.fresco.get()}") + } + + if (isWebpEnabled) { + // For webp support +- implementation("com.facebook.fresco:webpsupport:${frescoVersion}") ++ implementation("com.facebook.fresco:webpsupport:${reactAndroidLibs.versions.fresco.get()}") + if (isWebpAnimatedEnabled) { + // Animated webp support +- implementation("com.facebook.fresco:animated-webp:${frescoVersion}") ++ implementation("com.facebook.fresco:animated-webp:${reactAndroidLibs.versions.fresco.get()}") } } @@ -168,7 +193,7 @@ index 189390e7e3..52d31e3c5e 100644 if (hermesEnabled.toBoolean()) { implementation("com.facebook.react:hermes-android") -@@ -233,5 +174,5 @@ dependencies { +@@ -233,5 +167,5 @@ dependencies { } } @@ -505,10 +530,10 @@ index 31c2b288c1..0000000000 -} diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt new file mode 100644 -index 0000000000..dd90f54e04 +index 0000000000..8258c40ed4 --- /dev/null +++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt -@@ -0,0 +1,63 @@ +@@ -0,0 +1,65 @@ +package com.helloworld + +import android.app.Application @@ -563,7 +588,9 @@ index 0000000000..dd90f54e04 + // If you opted-in for the New Architecture, we load the native entry point for this app. + load() + } -+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ if (BuildConfig.DEBUG) { ++ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ } + ApplicationLifecycleDispatcher.onApplicationCreate(this) + } + @@ -612,10 +639,10 @@ index b510364404..0000000000 - } -} diff --git a/templates/expo-template-bare-minimum/android/build.gradle b/templates/expo-template-bare-minimum/android/build.gradle -index e5fda82878..9da06cc296 100644 +index e5fda82878..02a88dad0a 100644 --- a/templates/expo-template-bare-minimum/android/build.gradle +++ b/templates/expo-template-bare-minimum/android/build.gradle -@@ -2,28 +2,27 @@ +@@ -2,28 +2,26 @@ buildscript { ext { @@ -627,10 +654,10 @@ index e5fda82878..9da06cc296 100644 - if (findProperty('android.kotlinVersion')) { - kotlinVersion = findProperty('android.kotlinVersion') - } +- frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0' + compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '34') + targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '34') + kotlinVersion = findProperty('android.kotlinVersion') ?: '1.8.10' - frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0' - // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP. - ndkVersion = "23.1.7779620" @@ -652,7 +679,7 @@ index e5fda82878..9da06cc296 100644 allprojects { repositories { maven { -@@ -32,7 +31,7 @@ allprojects { +@@ -32,7 +30,7 @@ allprojects { } maven { // Android JSC is installed from npm @@ -795,10 +822,20 @@ index a69d9cb6c2..1aa94a4269 100755 set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/templates/expo-template-bare-minimum/android/settings.gradle b/templates/expo-template-bare-minimum/android/settings.gradle -index 1dc416e7c1..17ab7a41d7 100644 +index 1dc416e7c1..0fcba3d9bb 100644 --- a/templates/expo-template-bare-minimum/android/settings.gradle +++ b/templates/expo-template-bare-minimum/android/settings.gradle -@@ -3,8 +3,8 @@ rootProject.name = 'HelloWorld' +@@ -1,10 +1,18 @@ + rootProject.name = 'HelloWorld' + ++dependencyResolutionManagement { ++ versionCatalogs { ++ reactAndroidLibs { ++ from(files(new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), "../gradle/libs.versions.toml"))) ++ } ++ } ++} ++ apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle"); useExpoModules() @@ -1252,7 +1289,7 @@ index 9430b0f9b6..07c9fce65d 100644 + +module.exports = config; diff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json -index d1fcd513cc..7a9b382c4a 100644 +index d1fcd513cc..ec2759d642 100644 --- a/templates/expo-template-bare-minimum/package.json +++ b/templates/expo-template-bare-minimum/package.json @@ -1,7 +1,7 @@ @@ -1260,7 +1297,7 @@ index d1fcd513cc..7a9b382c4a 100644 "name": "expo-template-bare-minimum", "description": "This bare project template includes a minimal setup for using unimodules with React Native.", - "version": "48.0.21", -+ "version": "50.0.16", ++ "version": "50.0.22", "main": "index.js", "scripts": { "start": "expo start --dev-client", @@ -1271,11 +1308,11 @@ index d1fcd513cc..7a9b382c4a 100644 - "expo": "~48.0.21", - "expo-splash-screen": "~0.18.2", - "expo-status-bar": "~1.4.4", -+ "expo": "~50.0.0-preview.3", -+ "expo-status-bar": "~1.11.0", ++ "expo": "~50.0.0-preview.8", ++ "expo-status-bar": "~1.11.1", "react": "18.2.0", - "react-native": "0.71.14" -+ "react-native": "0.73.0" ++ "react-native": "0.73.1" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/docs/public/static/diffs/template-bare-minimum/raw/48..unversioned.diff b/docs/public/static/diffs/template-bare-minimum/raw/48..unversioned.diff index 5bdde730c9552..bf3a3da5f72eb 100644 --- a/docs/public/static/diffs/template-bare-minimum/raw/48..unversioned.diff +++ b/docs/public/static/diffs/template-bare-minimum/raw/48..unversioned.diff @@ -293,18 +293,21 @@ index 595dd5831c..0000000000 - } -} diff --git a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml -index 6536fc03ad..34a7ca8314 100644 +index 6536fc03ad..04b326127b 100644 --- a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml +++ b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml -@@ -18,7 +18,7 @@ +@@ -18,9 +18,9 @@ - + - +- ++ + + diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java deleted file mode 100644 index 7e2823fb6c..0000000000 @@ -530,10 +533,10 @@ index 31c2b288c1..0000000000 -} diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt new file mode 100644 -index 0000000000..dd90f54e04 +index 0000000000..8258c40ed4 --- /dev/null +++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt -@@ -0,0 +1,63 @@ +@@ -0,0 +1,65 @@ +package com.helloworld + +import android.app.Application @@ -588,7 +591,9 @@ index 0000000000..dd90f54e04 + // If you opted-in for the New Architecture, we load the native entry point for this app. + load() + } -+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ if (BuildConfig.DEBUG) { ++ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ } + ApplicationLifecycleDispatcher.onApplicationCreate(this) + } + @@ -1216,6 +1221,21 @@ index 9f116db7f2..5a1db7145b 100644 - UIStatusBarStyleDefault +diff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist b/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist +index 03410dc8b3..f4f9f60993 100644 +--- a/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist ++++ b/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist +@@ -2,8 +2,8 @@ + + + +- EXUpdatesSDKVersion +- YOUR-APP-SDK-VERSION-HERE ++ EXUpdatesRuntimeVersion ++ YOUR-APP-RUNTIME-VERSION-HERE + EXUpdatesURL + YOUR-APP-URL-HERE + diff --git a/templates/expo-template-bare-minimum/ios/Podfile b/templates/expo-template-bare-minimum/ios/Podfile index e523ea5cac..b3978b9515 100644 --- a/templates/expo-template-bare-minimum/ios/Podfile diff --git a/docs/public/static/diffs/template-bare-minimum/raw/49..50.diff b/docs/public/static/diffs/template-bare-minimum/raw/49..50.diff index 9f7af3d00c1da..91a139db819ec 100644 --- a/docs/public/static/diffs/template-bare-minimum/raw/49..50.diff +++ b/docs/public/static/diffs/template-bare-minimum/raw/49..50.diff @@ -1,5 +1,5 @@ diff --git a/templates/expo-template-bare-minimum/android/app/build.gradle b/templates/expo-template-bare-minimum/android/app/build.gradle -index 7105aaaa3f..52d31e3c5e 100644 +index 7105aaaa3f..a265c80fa9 100644 --- a/templates/expo-template-bare-minimum/android/app/build.gradle +++ b/templates/expo-template-bare-minimum/android/app/build.gradle @@ -1,4 +1,5 @@ @@ -32,7 +32,32 @@ index 7105aaaa3f..52d31e3c5e 100644 namespace "com.helloworld" defaultConfig { -@@ -163,11 +165,7 @@ dependencies { +@@ -141,33 +143,22 @@ dependencies { + def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true"; + def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true"; + def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true"; +- def frescoVersion = rootProject.ext.frescoVersion +- +- // If your app supports Android versions before Ice Cream Sandwich (API level 14) +- if (isGifEnabled || isWebpEnabled) { +- implementation("com.facebook.fresco:fresco:${frescoVersion}") +- implementation("com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}") +- } + + if (isGifEnabled) { + // For animated gif support +- implementation("com.facebook.fresco:animated-gif:${frescoVersion}") ++ implementation("com.facebook.fresco:animated-gif:${reactAndroidLibs.versions.fresco.get()}") + } + + if (isWebpEnabled) { + // For webp support +- implementation("com.facebook.fresco:webpsupport:${frescoVersion}") ++ implementation("com.facebook.fresco:webpsupport:${reactAndroidLibs.versions.fresco.get()}") + if (isWebpAnimatedEnabled) { + // Animated webp support +- implementation("com.facebook.fresco:animated-webp:${frescoVersion}") ++ implementation("com.facebook.fresco:animated-webp:${reactAndroidLibs.versions.fresco.get()}") } } @@ -45,7 +70,7 @@ index 7105aaaa3f..52d31e3c5e 100644 if (hermesEnabled.toBoolean()) { implementation("com.facebook.react:hermes-android") -@@ -176,5 +174,5 @@ dependencies { +@@ -176,5 +167,5 @@ dependencies { } } @@ -273,10 +298,10 @@ index 0000000000..c4467326aa +} diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java deleted file mode 100644 -index 8502c4402d..0000000000 +index e7f376902d..0000000000 --- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java +++ /dev/null -@@ -1,80 +0,0 @@ +@@ -1,82 +0,0 @@ -package com.helloworld; - -import android.app.Application; @@ -347,7 +372,9 @@ index 8502c4402d..0000000000 - // If you opted-in for the New Architecture, we load the native entry point for this app. - DefaultNewArchitectureEntryPoint.load(); - } -- ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); +- if (BuildConfig.DEBUG) { +- ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); +- } - ApplicationLifecycleDispatcher.onApplicationCreate(this); - } - @@ -359,10 +386,10 @@ index 8502c4402d..0000000000 -} diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt new file mode 100644 -index 0000000000..dd90f54e04 +index 0000000000..8258c40ed4 --- /dev/null +++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt -@@ -0,0 +1,63 @@ +@@ -0,0 +1,65 @@ +package com.helloworld + +import android.app.Application @@ -417,7 +444,9 @@ index 0000000000..dd90f54e04 + // If you opted-in for the New Architecture, we load the native entry point for this app. + load() + } -+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ if (BuildConfig.DEBUG) { ++ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ } + ApplicationLifecycleDispatcher.onApplicationCreate(this) + } + @@ -453,10 +482,10 @@ index b510364404..0000000000 - } -} diff --git a/templates/expo-template-bare-minimum/android/build.gradle b/templates/expo-template-bare-minimum/android/build.gradle -index bf861dbf33..9da06cc296 100644 +index bf861dbf33..02a88dad0a 100644 --- a/templates/expo-template-bare-minimum/android/build.gradle +++ b/templates/expo-template-bare-minimum/android/build.gradle -@@ -2,26 +2,27 @@ +@@ -2,26 +2,26 @@ buildscript { ext { @@ -468,7 +497,7 @@ index bf861dbf33..9da06cc296 100644 + compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '34') + targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '34') kotlinVersion = findProperty('android.kotlinVersion') ?: '1.8.10' - frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0' +- frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0' - // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP. - ndkVersion = "23.1.7779620" @@ -490,7 +519,7 @@ index bf861dbf33..9da06cc296 100644 allprojects { repositories { maven { -@@ -30,7 +31,7 @@ allprojects { +@@ -30,7 +30,7 @@ allprojects { } maven { // Android JSC is installed from npm @@ -613,10 +642,20 @@ index a69d9cb6c2..1aa94a4269 100755 set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/templates/expo-template-bare-minimum/android/settings.gradle b/templates/expo-template-bare-minimum/android/settings.gradle -index d172e59a6e..17ab7a41d7 100644 +index d172e59a6e..0fcba3d9bb 100644 --- a/templates/expo-template-bare-minimum/android/settings.gradle +++ b/templates/expo-template-bare-minimum/android/settings.gradle -@@ -3,8 +3,8 @@ rootProject.name = 'HelloWorld' +@@ -1,10 +1,18 @@ + rootProject.name = 'HelloWorld' + ++dependencyResolutionManagement { ++ versionCatalogs { ++ reactAndroidLibs { ++ from(files(new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), "../gradle/libs.versions.toml"))) ++ } ++ } ++} ++ apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle"); useExpoModules() @@ -872,15 +911,15 @@ index 2402cc34b2..b3978b9515 100644 # This is necessary for Xcode 14, because it signs resource bundles by default # when building for devices. diff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json -index f100f535f5..7a9b382c4a 100644 +index 50e94a0837..ec2759d642 100644 --- a/templates/expo-template-bare-minimum/package.json +++ b/templates/expo-template-bare-minimum/package.json @@ -1,7 +1,7 @@ { "name": "expo-template-bare-minimum", "description": "This bare project template includes a minimal setup for using unimodules with React Native.", -- "version": "49.0.23", -+ "version": "50.0.16", +- "version": "49.0.24", ++ "version": "50.0.22", "main": "index.js", "scripts": { "start": "expo start --dev-client", @@ -891,11 +930,11 @@ index f100f535f5..7a9b382c4a 100644 - "expo": "~49.0.18", - "expo-splash-screen": "~0.20.5", - "expo-status-bar": "~1.6.0", -+ "expo": "~50.0.0-preview.3", -+ "expo-status-bar": "~1.11.0", ++ "expo": "~50.0.0-preview.8", ++ "expo-status-bar": "~1.11.1", "react": "18.2.0", - "react-native": "0.72.6" -+ "react-native": "0.73.0" ++ "react-native": "0.73.1" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/docs/public/static/diffs/template-bare-minimum/raw/49..unversioned.diff b/docs/public/static/diffs/template-bare-minimum/raw/49..unversioned.diff index b1ecf7f834b45..25e61d10043fd 100644 --- a/docs/public/static/diffs/template-bare-minimum/raw/49..unversioned.diff +++ b/docs/public/static/diffs/template-bare-minimum/raw/49..unversioned.diff @@ -158,6 +158,19 @@ index 595dd5831c..0000000000 - } - } -} +diff --git a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml +index 34a7ca8314..04b326127b 100644 +--- a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml ++++ b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml +@@ -20,7 +20,7 @@ + + + +- ++ + + + diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainActivity.java deleted file mode 100644 index 176fbf6a2a..0000000000 @@ -298,10 +311,10 @@ index 0000000000..c4467326aa +} diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java deleted file mode 100644 -index 8502c4402d..0000000000 +index e7f376902d..0000000000 --- a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.java +++ /dev/null -@@ -1,80 +0,0 @@ +@@ -1,82 +0,0 @@ -package com.helloworld; - -import android.app.Application; @@ -372,7 +385,9 @@ index 8502c4402d..0000000000 - // If you opted-in for the New Architecture, we load the native entry point for this app. - DefaultNewArchitectureEntryPoint.load(); - } -- ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); +- if (BuildConfig.DEBUG) { +- ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); +- } - ApplicationLifecycleDispatcher.onApplicationCreate(this); - } - @@ -384,10 +399,10 @@ index 8502c4402d..0000000000 -} diff --git a/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt new file mode 100644 -index 0000000000..dd90f54e04 +index 0000000000..8258c40ed4 --- /dev/null +++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt -@@ -0,0 +1,63 @@ +@@ -0,0 +1,65 @@ +package com.helloworld + +import android.app.Application @@ -442,7 +457,9 @@ index 0000000000..dd90f54e04 + // If you opted-in for the New Architecture, we load the native entry point for this app. + load() + } -+ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ if (BuildConfig.DEBUG) { ++ ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) ++ } + ApplicationLifecycleDispatcher.onApplicationCreate(this) + } + @@ -871,6 +888,21 @@ index 0a2a4dfa13..5a1db7145b 100644 - +diff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist b/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist +index 03410dc8b3..f4f9f60993 100644 +--- a/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist ++++ b/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist +@@ -2,8 +2,8 @@ + + + +- EXUpdatesSDKVersion +- YOUR-APP-SDK-VERSION-HERE ++ EXUpdatesRuntimeVersion ++ YOUR-APP-RUNTIME-VERSION-HERE + EXUpdatesURL + YOUR-APP-URL-HERE + diff --git a/templates/expo-template-bare-minimum/ios/Podfile b/templates/expo-template-bare-minimum/ios/Podfile index 2402cc34b2..b3978b9515 100644 --- a/templates/expo-template-bare-minimum/ios/Podfile @@ -907,14 +939,14 @@ index 2402cc34b2..b3978b9515 100644 # This is necessary for Xcode 14, because it signs resource bundles by default # when building for devices. diff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json -index f100f535f5..a0b1b85c0a 100644 +index 50e94a0837..a0b1b85c0a 100644 --- a/templates/expo-template-bare-minimum/package.json +++ b/templates/expo-template-bare-minimum/package.json @@ -1,7 +1,7 @@ { "name": "expo-template-bare-minimum", "description": "This bare project template includes a minimal setup for using unimodules with React Native.", -- "version": "49.0.23", +- "version": "49.0.24", + "version": "50.0.17", "main": "index.js", "scripts": { diff --git a/docs/public/static/diffs/template-bare-minimum/raw/50..unversioned.diff b/docs/public/static/diffs/template-bare-minimum/raw/50..unversioned.diff index 9fd6db069e40b..e41dc088188f0 100644 --- a/docs/public/static/diffs/template-bare-minimum/raw/50..unversioned.diff +++ b/docs/public/static/diffs/template-bare-minimum/raw/50..unversioned.diff @@ -1,89 +1,52 @@ -diff --git a/templates/expo-template-bare-minimum/android/app/build.gradle b/templates/expo-template-bare-minimum/android/app/build.gradle -index 52d31e3c5e..a265c80fa9 100644 ---- a/templates/expo-template-bare-minimum/android/app/build.gradle -+++ b/templates/expo-template-bare-minimum/android/app/build.gradle -@@ -143,25 +143,18 @@ dependencies { - def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true"; - def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true"; - def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true"; -- def frescoVersion = rootProject.ext.frescoVersion -- -- // If your app supports Android versions before Ice Cream Sandwich (API level 14) -- if (isGifEnabled || isWebpEnabled) { -- implementation("com.facebook.fresco:fresco:${frescoVersion}") -- implementation("com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}") -- } - - if (isGifEnabled) { - // For animated gif support -- implementation("com.facebook.fresco:animated-gif:${frescoVersion}") -+ implementation("com.facebook.fresco:animated-gif:${reactAndroidLibs.versions.fresco.get()}") - } - - if (isWebpEnabled) { - // For webp support -- implementation("com.facebook.fresco:webpsupport:${frescoVersion}") -+ implementation("com.facebook.fresco:webpsupport:${reactAndroidLibs.versions.fresco.get()}") - if (isWebpAnimatedEnabled) { - // Animated webp support -- implementation("com.facebook.fresco:animated-webp:${frescoVersion}") -+ implementation("com.facebook.fresco:animated-webp:${reactAndroidLibs.versions.fresco.get()}") - } - } - -diff --git a/templates/expo-template-bare-minimum/android/build.gradle b/templates/expo-template-bare-minimum/android/build.gradle -index 9da06cc296..02a88dad0a 100644 ---- a/templates/expo-template-bare-minimum/android/build.gradle -+++ b/templates/expo-template-bare-minimum/android/build.gradle -@@ -7,7 +7,6 @@ buildscript { - compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '34') - targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '34') - kotlinVersion = findProperty('android.kotlinVersion') ?: '1.8.10' -- frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0' - - ndkVersion = "25.1.8937393" - } -diff --git a/templates/expo-template-bare-minimum/android/settings.gradle b/templates/expo-template-bare-minimum/android/settings.gradle -index 17ab7a41d7..0fcba3d9bb 100644 ---- a/templates/expo-template-bare-minimum/android/settings.gradle -+++ b/templates/expo-template-bare-minimum/android/settings.gradle -@@ -1,5 +1,13 @@ - rootProject.name = 'HelloWorld' - -+dependencyResolutionManagement { -+ versionCatalogs { -+ reactAndroidLibs { -+ from(files(new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), "../gradle/libs.versions.toml"))) -+ } -+ } -+} -+ - apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle"); - useExpoModules() +diff --git a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml +index 34a7ca8314..04b326127b 100644 +--- a/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml ++++ b/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml +@@ -20,7 +20,7 @@ + + +- ++ + + + +diff --git a/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist b/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist +index 03410dc8b3..f4f9f60993 100644 +--- a/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist ++++ b/templates/expo-template-bare-minimum/ios/HelloWorld/Supporting/Expo.plist +@@ -2,8 +2,8 @@ + + + +- EXUpdatesSDKVersion +- YOUR-APP-SDK-VERSION-HERE ++ EXUpdatesRuntimeVersion ++ YOUR-APP-RUNTIME-VERSION-HERE + EXUpdatesURL + YOUR-APP-URL-HERE + diff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json -index 7a9b382c4a..a0b1b85c0a 100644 +index ec2759d642..a0b1b85c0a 100644 --- a/templates/expo-template-bare-minimum/package.json +++ b/templates/expo-template-bare-minimum/package.json @@ -1,7 +1,7 @@ { "name": "expo-template-bare-minimum", "description": "This bare project template includes a minimal setup for using unimodules with React Native.", -- "version": "50.0.16", +- "version": "50.0.22", + "version": "50.0.17", "main": "index.js", "scripts": { "start": "expo start --dev-client", -@@ -10,10 +10,10 @@ +@@ -10,8 +10,8 @@ "web": "expo start --web" }, "dependencies": { -- "expo": "~50.0.0-preview.3", +- "expo": "~50.0.0-preview.8", +- "expo-status-bar": "~1.11.1", + "expo": "~50.0.0-preview.4", - "expo-status-bar": "~1.11.0", ++ "expo-status-bar": "~1.11.0", "react": "18.2.0", -- "react-native": "0.73.0" -+ "react-native": "0.73.1" + "react-native": "0.73.1" }, - "devDependencies": { - "@babel/core": "^7.20.0" diff --git a/home/package.json b/home/package.json index ac23c39a62a35..7330f9efc299b 100644 --- a/home/package.json +++ b/home/package.json @@ -57,7 +57,7 @@ "prop-types": "^15.7.2", "querystring": "^0.2.0", "react": "18.2.0", - "react-native": "0.73.1", + "react-native": "0.73.2", "react-native-fade-in-image": "^1.6.1", "react-native-gesture-handler": "~2.14.0", "react-native-infinite-scroll-view": "^0.4.5", diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 98a52b9336f8e..fcf93f31e7d01 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -988,14 +988,14 @@ PODS: - FBAEMKit (16.2.1): - FBSDKCoreKit_Basics (= 16.2.1) - FBAudienceNetwork (6.14.0) - - FBLazyVector (0.73.1) - - FBReactNativeSpec (0.73.1): - - RCT-Folly (= 2022.05.16.00) - - RCTRequired (= 0.73.1) - - RCTTypeSafety (= 0.73.1) - - React-Core (= 0.73.1) - - React-jsi (= 0.73.1) - - ReactCommon/turbomodule/core (= 0.73.1) + - FBLazyVector (0.73.2) + - FBReactNativeSpec (0.73.2): + - RCT-Folly (= 2022.05.16.00) + - RCTRequired (= 0.73.2) + - RCTTypeSafety (= 0.73.2) + - React-Core (= 0.73.2) + - React-jsi (= 0.73.2) + - ReactCommon/turbomodule/core (= 0.73.2) - FBSDKCoreKit (16.2.1): - FBAEMKit (= 16.2.1) - FBSDKCoreKit_Basics (= 16.2.1) @@ -1108,9 +1108,9 @@ PODS: - AppAuth/Core (~> 1.6) - GTMSessionFetcher/Core (< 4.0, >= 1.5) - GTMSessionFetcher/Core (3.1.1) - - hermes-engine (0.73.1): - - hermes-engine/Pre-built (= 0.73.1) - - hermes-engine/Pre-built (0.73.1) + - hermes-engine (0.73.2): + - hermes-engine/Pre-built (= 0.73.2) + - hermes-engine/Pre-built (0.73.2) - JKBigInteger (0.0.6) - libaom (3.0.0): - libvmaf (>= 2.2.0) @@ -1169,27 +1169,27 @@ PODS: - fmt (~> 6.2.1) - glog - libevent - - RCTRequired (0.73.1) - - RCTTypeSafety (0.73.1): - - FBLazyVector (= 0.73.1) - - RCTRequired (= 0.73.1) - - React-Core (= 0.73.1) + - RCTRequired (0.73.2) + - RCTTypeSafety (0.73.2): + - FBLazyVector (= 0.73.2) + - RCTRequired (= 0.73.2) + - React-Core (= 0.73.2) - ReachabilitySwift (5.0.0) - - React (0.73.1): - - React-Core (= 0.73.1) - - React-Core/DevSupport (= 0.73.1) - - React-Core/RCTWebSocket (= 0.73.1) - - React-RCTActionSheet (= 0.73.1) - - React-RCTAnimation (= 0.73.1) - - React-RCTBlob (= 0.73.1) - - React-RCTImage (= 0.73.1) - - React-RCTLinking (= 0.73.1) - - React-RCTNetwork (= 0.73.1) - - React-RCTSettings (= 0.73.1) - - React-RCTText (= 0.73.1) - - React-RCTVibration (= 0.73.1) - - React-callinvoker (0.73.1) - - React-Codegen (0.73.1): + - React (0.73.2): + - React-Core (= 0.73.2) + - React-Core/DevSupport (= 0.73.2) + - React-Core/RCTWebSocket (= 0.73.2) + - React-RCTActionSheet (= 0.73.2) + - React-RCTAnimation (= 0.73.2) + - React-RCTBlob (= 0.73.2) + - React-RCTImage (= 0.73.2) + - React-RCTLinking (= 0.73.2) + - React-RCTNetwork (= 0.73.2) + - React-RCTSettings (= 0.73.2) + - React-RCTText (= 0.73.2) + - React-RCTVibration (= 0.73.2) + - React-callinvoker (0.73.2) + - React-Codegen (0.73.2): - DoubleConversion - FBReactNativeSpec - glog @@ -1204,11 +1204,11 @@ PODS: - React-rncore - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.73.1): + - React-Core (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) + - React-Core/Default (= 0.73.2) - React-cxxreact - React-hermes - React-jsi @@ -1218,7 +1218,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/CoreModulesHeaders (0.73.1): + - React-Core/CoreModulesHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1232,7 +1232,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/Default (0.73.1): + - React-Core/Default (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1245,23 +1245,23 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/DevSupport (0.73.1): + - React-Core/DevSupport (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) - - React-Core/RCTWebSocket (= 0.73.1) + - React-Core/Default (= 0.73.2) + - React-Core/RCTWebSocket (= 0.73.2) - React-cxxreact - React-hermes - React-jsi - React-jsiexecutor - - React-jsinspector (= 0.73.1) + - React-jsinspector (= 0.73.2) - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.73.1): + - React-Core/RCTActionSheetHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1275,7 +1275,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTAnimationHeaders (0.73.1): + - React-Core/RCTAnimationHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1289,7 +1289,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTBlobHeaders (0.73.1): + - React-Core/RCTBlobHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1303,7 +1303,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTImageHeaders (0.73.1): + - React-Core/RCTImageHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1317,7 +1317,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTLinkingHeaders (0.73.1): + - React-Core/RCTLinkingHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1331,7 +1331,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTNetworkHeaders (0.73.1): + - React-Core/RCTNetworkHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1345,7 +1345,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTSettingsHeaders (0.73.1): + - React-Core/RCTSettingsHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1359,7 +1359,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTTextHeaders (0.73.1): + - React-Core/RCTTextHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1373,7 +1373,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTVibrationHeaders (0.73.1): + - React-Core/RCTVibrationHeaders (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1387,11 +1387,11 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTWebSocket (0.73.1): + - React-Core/RCTWebSocket (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) + - React-Core/Default (= 0.73.2) - React-cxxreact - React-hermes - React-jsi @@ -1401,33 +1401,33 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-CoreModules (0.73.1): + - React-CoreModules (0.73.2): - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety (= 0.73.1) + - RCTTypeSafety (= 0.73.2) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.73.1) - - React-jsi (= 0.73.1) + - React-Core/CoreModulesHeaders (= 0.73.2) + - React-jsi (= 0.73.2) - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.73.1) + - React-RCTImage (= 0.73.2) - ReactCommon - SocketRocket (= 0.6.1) - - React-cxxreact (0.73.1): + - React-cxxreact (0.73.2): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-debug (= 0.73.1) - - React-jsi (= 0.73.1) - - React-jsinspector (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - React-runtimeexecutor (= 0.73.1) - - React-debug (0.73.1) - - React-Fabric (0.73.1): + - React-callinvoker (= 0.73.2) + - React-debug (= 0.73.2) + - React-jsi (= 0.73.2) + - React-jsinspector (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) + - React-runtimeexecutor (= 0.73.2) + - React-debug (0.73.2) + - React-Fabric (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1438,20 +1438,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.73.1) - - React-Fabric/attributedstring (= 0.73.1) - - React-Fabric/componentregistry (= 0.73.1) - - React-Fabric/componentregistrynative (= 0.73.1) - - React-Fabric/components (= 0.73.1) - - React-Fabric/core (= 0.73.1) - - React-Fabric/imagemanager (= 0.73.1) - - React-Fabric/leakchecker (= 0.73.1) - - React-Fabric/mounting (= 0.73.1) - - React-Fabric/scheduler (= 0.73.1) - - React-Fabric/telemetry (= 0.73.1) - - React-Fabric/templateprocessor (= 0.73.1) - - React-Fabric/textlayoutmanager (= 0.73.1) - - React-Fabric/uimanager (= 0.73.1) + - React-Fabric/animations (= 0.73.2) + - React-Fabric/attributedstring (= 0.73.2) + - React-Fabric/componentregistry (= 0.73.2) + - React-Fabric/componentregistrynative (= 0.73.2) + - React-Fabric/components (= 0.73.2) + - React-Fabric/core (= 0.73.2) + - React-Fabric/imagemanager (= 0.73.2) + - React-Fabric/leakchecker (= 0.73.2) + - React-Fabric/mounting (= 0.73.2) + - React-Fabric/scheduler (= 0.73.2) + - React-Fabric/telemetry (= 0.73.2) + - React-Fabric/templateprocessor (= 0.73.2) + - React-Fabric/textlayoutmanager (= 0.73.2) + - React-Fabric/uimanager (= 0.73.2) - React-graphics - React-jsi - React-jsiexecutor @@ -1460,7 +1460,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.73.1): + - React-Fabric/animations (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1479,7 +1479,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.73.1): + - React-Fabric/attributedstring (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1498,7 +1498,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.73.1): + - React-Fabric/componentregistry (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1517,7 +1517,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.73.1): + - React-Fabric/componentregistrynative (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1536,7 +1536,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.73.1): + - React-Fabric/components (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1547,17 +1547,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.73.1) - - React-Fabric/components/legacyviewmanagerinterop (= 0.73.1) - - React-Fabric/components/modal (= 0.73.1) - - React-Fabric/components/rncore (= 0.73.1) - - React-Fabric/components/root (= 0.73.1) - - React-Fabric/components/safeareaview (= 0.73.1) - - React-Fabric/components/scrollview (= 0.73.1) - - React-Fabric/components/text (= 0.73.1) - - React-Fabric/components/textinput (= 0.73.1) - - React-Fabric/components/unimplementedview (= 0.73.1) - - React-Fabric/components/view (= 0.73.1) + - React-Fabric/components/inputaccessory (= 0.73.2) + - React-Fabric/components/legacyviewmanagerinterop (= 0.73.2) + - React-Fabric/components/modal (= 0.73.2) + - React-Fabric/components/rncore (= 0.73.2) + - React-Fabric/components/root (= 0.73.2) + - React-Fabric/components/safeareaview (= 0.73.2) + - React-Fabric/components/scrollview (= 0.73.2) + - React-Fabric/components/text (= 0.73.2) + - React-Fabric/components/textinput (= 0.73.2) + - React-Fabric/components/unimplementedview (= 0.73.2) + - React-Fabric/components/view (= 0.73.2) - React-graphics - React-jsi - React-jsiexecutor @@ -1566,7 +1566,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.73.1): + - React-Fabric/components/inputaccessory (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1585,7 +1585,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.73.1): + - React-Fabric/components/legacyviewmanagerinterop (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1604,7 +1604,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.73.1): + - React-Fabric/components/modal (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1623,7 +1623,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.73.1): + - React-Fabric/components/rncore (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1642,7 +1642,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.73.1): + - React-Fabric/components/root (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1661,7 +1661,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.73.1): + - React-Fabric/components/safeareaview (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1680,7 +1680,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.73.1): + - React-Fabric/components/scrollview (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1699,7 +1699,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.73.1): + - React-Fabric/components/text (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1718,7 +1718,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.73.1): + - React-Fabric/components/textinput (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1737,7 +1737,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.73.1): + - React-Fabric/components/unimplementedview (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1756,7 +1756,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.73.1): + - React-Fabric/components/view (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1776,7 +1776,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.73.1): + - React-Fabric/core (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1795,7 +1795,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.73.1): + - React-Fabric/imagemanager (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1814,7 +1814,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.73.1): + - React-Fabric/leakchecker (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1833,7 +1833,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.73.1): + - React-Fabric/mounting (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1852,7 +1852,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.73.1): + - React-Fabric/scheduler (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1871,7 +1871,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.73.1): + - React-Fabric/telemetry (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1890,7 +1890,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.73.1): + - React-Fabric/templateprocessor (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1909,7 +1909,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.73.1): + - React-Fabric/textlayoutmanager (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1929,7 +1929,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.73.1): + - React-Fabric/uimanager (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1948,42 +1948,42 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.73.1): + - React-FabricImage (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired (= 0.73.1) - - RCTTypeSafety (= 0.73.1) + - RCTRequired (= 0.73.2) + - RCTTypeSafety (= 0.73.2) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.73.1) + - React-jsiexecutor (= 0.73.2) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-graphics (0.73.1): + - React-graphics (0.73.2): - glog - RCT-Folly/Fabric (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) + - React-Core/Default (= 0.73.2) - React-utils - - React-hermes (0.73.1): + - React-hermes (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - RCT-Folly/Futures (= 2022.05.16.00) - - React-cxxreact (= 0.73.1) + - React-cxxreact (= 0.73.2) - React-jsi - - React-jsiexecutor (= 0.73.1) - - React-jsinspector (= 0.73.1) - - React-perflogger (= 0.73.1) - - React-ImageManager (0.73.1): + - React-jsiexecutor (= 0.73.2) + - React-jsinspector (= 0.73.2) + - React-perflogger (= 0.73.2) + - React-ImageManager (0.73.2): - glog - RCT-Folly/Fabric - React-Core/Default @@ -1992,36 +1992,36 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jsc (0.73.1): - - React-jsc/Fabric (= 0.73.1) - - React-jsi (= 0.73.1) - - React-jsc/Fabric (0.73.1): - - React-jsi (= 0.73.1) - - React-jserrorhandler (0.73.1): + - React-jsc (0.73.2): + - React-jsc/Fabric (= 0.73.2) + - React-jsi (= 0.73.2) + - React-jsc/Fabric (0.73.2): + - React-jsi (= 0.73.2) + - React-jserrorhandler (0.73.2): - RCT-Folly/Fabric (= 2022.05.16.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.73.1): + - React-jsi (0.73.2): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-jsiexecutor (0.73.1): + - React-jsiexecutor (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-perflogger (= 0.73.1) - - React-jsinspector (0.73.1) - - React-logger (0.73.1): + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-perflogger (= 0.73.2) + - React-jsinspector (0.73.2) + - React-logger (0.73.2): - glog - - React-Mapbuffer (0.73.1): + - React-Mapbuffer (0.73.2): - glog - React-debug - react-native-netinfo (11.1.0): @@ -2040,8 +2040,8 @@ PODS: - React-Core - react-native-webview (13.6.3): - React-Core - - React-nativeconfig (0.73.1) - - React-NativeModulesApple (0.73.1): + - React-nativeconfig (0.73.2) + - React-NativeModulesApple (0.73.2): - glog - hermes-engine - React-callinvoker @@ -2051,10 +2051,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.73.1) - - React-RCTActionSheet (0.73.1): - - React-Core/RCTActionSheetHeaders (= 0.73.1) - - React-RCTAnimation (0.73.1): + - React-perflogger (0.73.2) + - React-RCTActionSheet (0.73.2): + - React-Core/RCTActionSheetHeaders (= 0.73.2) + - React-RCTAnimation (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -2062,7 +2062,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.73.1): + - React-RCTAppDelegate (0.73.2): - RCT-Folly - RCTRequired - RCTTypeSafety @@ -2076,7 +2076,7 @@ PODS: - React-RCTNetwork - React-runtimescheduler - ReactCommon - - React-RCTBlob (0.73.1): + - React-RCTBlob (0.73.2): - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Codegen @@ -2086,7 +2086,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.73.1): + - React-RCTFabric (0.73.2): - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) @@ -2104,7 +2104,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.73.1): + - React-RCTImage (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -2113,14 +2113,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.73.1): + - React-RCTLinking (0.73.2): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.73.1) - - React-jsi (= 0.73.1) + - React-Core/RCTLinkingHeaders (= 0.73.2) + - React-jsi (= 0.73.2) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.73.1) - - React-RCTNetwork (0.73.1): + - ReactCommon/turbomodule/core (= 0.73.2) + - React-RCTNetwork (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -2128,7 +2128,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.73.1): + - React-RCTSettings (0.73.2): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -2136,25 +2136,25 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTText (0.73.1): - - React-Core/RCTTextHeaders (= 0.73.1) + - React-RCTText (0.73.2): + - React-Core/RCTTextHeaders (= 0.73.2) - Yoga - - React-RCTVibration (0.73.1): + - React-RCTVibration (0.73.2): - RCT-Folly (= 2022.05.16.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.73.1): + - React-rendererdebug (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - RCT-Folly (= 2022.05.16.00) - React-debug - - React-rncore (0.73.1) - - React-runtimeexecutor (0.73.1): - - React-jsi (= 0.73.1) - - React-runtimescheduler (0.73.1): + - React-rncore (0.73.2) + - React-runtimeexecutor (0.73.2): + - React-jsi (= 0.73.2) + - React-runtimescheduler (0.73.2): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -2165,48 +2165,48 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.73.1): + - React-utils (0.73.2): - glog - RCT-Folly (= 2022.05.16.00) - React-debug - - ReactCommon (0.73.1): - - React-logger (= 0.73.1) - - ReactCommon/turbomodule (= 0.73.1) - - ReactCommon/turbomodule (0.73.1): + - ReactCommon (0.73.2): + - React-logger (= 0.73.2) + - ReactCommon/turbomodule (= 0.73.2) + - ReactCommon/turbomodule (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - ReactCommon/turbomodule/bridging (= 0.73.1) - - ReactCommon/turbomodule/core (= 0.73.1) - - ReactCommon/turbomodule/bridging (0.73.1): + - React-callinvoker (= 0.73.2) + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) + - ReactCommon/turbomodule/bridging (= 0.73.2) + - ReactCommon/turbomodule/core (= 0.73.2) + - ReactCommon/turbomodule/bridging (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - ReactCommon/turbomodule/core (0.73.1): + - React-callinvoker (= 0.73.2) + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) + - ReactCommon/turbomodule/core (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) + - React-callinvoker (= 0.73.2) + - React-cxxreact (= 0.73.2) + - React-jsi (= 0.73.2) + - React-logger (= 0.73.2) + - React-perflogger (= 0.73.2) - RNCAsyncStorage (1.18.2): - React-Core - RNFlashList (1.6.3): @@ -3244,7 +3244,7 @@ SPEC CHECKSUMS: Analytics: 9655e0e1c71ea98107cfcb2b14891168acc6c6c9 AppAuth: 3bb1d1cd9340bd09f5ed189fb00b1cc28e1e8570 ASN1Decoder: 4f4bbcaf1d1b8be56daa3280e82863a607f5bda9 - boost: 42fe04d4353fbd09a3e183ae133230469d587424 + boost: d830586077ed12da2468a1cbec8f72ff3e4ec097 Branch: 23b6b9351d5574377e7a764841cfb13a70c2799b CocoaLumberjack: 2f44e60eb91c176d471fdba43b9e3eae6a721947 DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 @@ -3312,8 +3312,8 @@ SPEC CHECKSUMS: EXUpdatesInterface: 95d6bc086d7e043c1f33e30762ebc16a5cf4b153 FBAEMKit: 4763aa27b8f69eb9d2c274189e91388de1dbd88a FBAudienceNetwork: 03e273f66b70756be7d060927111af97b7641b06 - FBLazyVector: 5a091967030396469b29af84d84e98e2a4d029b7 - FBReactNativeSpec: 90bf551418d9fccf8afad80139cb1346dadaf76c + FBLazyVector: f53548403f1ae063f4c901c7860deadf7ad8b0ab + FBReactNativeSpec: a2cda44c0e4239f8e4c5802dfb3d70dc16e9d402 FBSDKCoreKit: 40ae989ca1da1bbeba56acd4671dde64ad415506 FBSDKCoreKit_Basics: 1257d71d2d692661290bf2af4bea5f9a101387af FirebaseCore: 25c0400b670fd1e2f2104349cd3b5dcce8d9418f @@ -3332,7 +3332,7 @@ SPEC CHECKSUMS: GoogleUtilities: 13e2c67ede716b8741c7989e26893d151b2b2084 GTMAppAuth: 99fb010047ba3973b7026e45393f51f27ab965ae GTMSessionFetcher: e8647203b65cee28c5f73d0f473d096653945e72 - hermes-engine: 34df9d5034e90bd9bf1505e1ca198760373935af + hermes-engine: b361c9ef5ef3cda53f66e195599b47e1f84ffa35 JKBigInteger: 5c72131974815e969c0782c41e3452f1bbe5619f libaom: 144606b1da4b5915a1054383c3a4459ccdb3c661 libavif: 84bbb62fb232c3018d6f1bab79beea87e35de7b7 @@ -3347,28 +3347,28 @@ SPEC CHECKSUMS: PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4 Quick: d32871931c05547cb4e0bc9009d66a18b50d8558 RCT-Folly: 083a526bd53c2f793ebe3ff554c3b5eb12a93505 - RCTRequired: 68ce07c884d5a2e1566bbf13a6d6bcb985d072ff - RCTTypeSafety: 86211d74a045fe52c748176a76ff8975667be77e + RCTRequired: 5e96ba1183fe1ed74ac830d927706ff9eacbd5da + RCTTypeSafety: 464b562d4743c71743dd1f520cbc8e3788a82973 ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825 - React: 507a4bdc6ecd84f9a4c9153c800e0b13708968c0 - React-callinvoker: 8196a86f651332dfea73e53330f42d3b9df6bcf5 - React-Codegen: 65b426d1c3185df0e1d901ff56a23d94e1974791 - React-Core: 9da53cfadc3bb06c09361fa9c3ec2a813b204b9c - React-CoreModules: c000953dd8ac7af43a81262e44c5115789d258c2 - React-cxxreact: 0baf369680a95037f0eb4be060c9c0b53a5e9dfa - React-debug: b107b17f16d5b124fbb8afcf06849b40929d10b4 - React-Fabric: 11f92c3e5413e097597df5cf34364d1c1f768d14 - React-FabricImage: db069dd9b38702f0cd2d1a82606fd60cf2b3bb75 - React-graphics: b8b2187677f3c0358327256d34c514b2b0a1a3d4 - React-hermes: 3c373d39741c6345e429be9025d1894a6912579e - React-ImageManager: 99580f0636c722d0a4e3ac9c8b9352aec3f98127 - React-jsc: d2d178d555e6f06c00e2df14c9fa60d849dfbe8b - React-jserrorhandler: 5971e7cecde2a520b314032c9d78f462b0c60a98 - React-jsi: e42b9f4739f03ef9cf3d4e0d29874325339f5cb4 - React-jsiexecutor: b724accf84092ff3cbd3eb3e62cbe32422601208 - React-jsinspector: 1ec849692f8e2aa7c17ce11040e64059a51aa65c - React-logger: 9012a5b9c7f366d1aa4d9ca87ac35105b7819653 - React-Mapbuffer: d2dc1c7d55d5a1283913120e1b647d007aa6817b + React: ab6781d38033c28ff70c59c3843037a95c77f909 + React-callinvoker: 3f15663513baec729d1707a4a048d99781646b50 + React-Codegen: c4447ffa339f4e7a22e0c9c800eec9084f31899c + React-Core: 8211954fdaadae2064509303705e5f679e0ec5c4 + React-CoreModules: 631d527402b8aefb9217566e27e4ac06659d547b + React-cxxreact: 465fb3a76e50b5c1065e3c6566895c73f8bc7844 + React-debug: e9947b8a0d6b32fa472bdc2ddbebe6e709d24a47 + React-Fabric: 35b92ea6b52951e2623f709a91f5b52354598172 + React-FabricImage: 3cbb1847507428ad94042fbca39a70727f19bd15 + React-graphics: 16a2de4e3948e7b6ea7722b623cf532e041a3cf2 + React-hermes: 5ad1f0f2f910a20c91dc7101eefa29f1eb130a77 + React-ImageManager: 6ef31830325457c23b8f123f52307d41c25a6538 + React-jsc: 4add7b535ad5615b0807bc21b15329e80053a86c + React-jserrorhandler: 50779f683ee2caca8307fe6aef2e0021fe76102f + React-jsi: 120241e31dde501ce39847d95bf6b2a0f57a546e + React-jsiexecutor: 3a4affc5284acda639e12f550dca89f3bc3e5d5e + React-jsinspector: f2dafb8023b87c8ec7505f4f8177484b2cd647fb + React-logger: 3d4d7a8d4a82a9a7904cd371fc1a201fe310bb75 + React-Mapbuffer: 3515ccc36ebec5d938ecca1dba1031ce189fc7f0 react-native-netinfo: 3aa5637c18834966e0c932de8ae1ae56fea20a97 react-native-pager-view: c29d484f19c49ff19525a94105e4ab2c4d4ae273 react-native-safe-area-context: 0ee144a6170530ccc37a0fd9388e28d06f516a89 @@ -3376,26 +3376,26 @@ SPEC CHECKSUMS: react-native-skia: 1a2fbce7fc198eb229b13f15bce48a06b5c92d69 react-native-slider: 33b8d190b59d4f67a541061bb91775d53d617d9d react-native-webview: 88293a0f23eca8465c0433c023ec632930e644d0 - React-nativeconfig: b914df598eaad5f2955a1603cced6aebd15f74c0 - React-NativeModulesApple: 215938e5fd4f77b2cb749b263c79c472bc24732d - React-perflogger: 9d19492c4df448ba9e74ab2d4903fbb2506adbb9 - React-RCTActionSheet: ae229f9a01b550e28889f3d2da3b4900197f8486 - React-RCTAnimation: d84f561ef44eb2e5f962753da45cc5506dff4aa9 - React-RCTAppDelegate: 3ca7c72715ced52e1639b769bed836f8a757636c - React-RCTBlob: 0225d008d9b9dd555335111000cdb59edfb14ec4 - React-RCTFabric: 07dc7ecec2c31b840df7b6ae84824f03576f986e - React-RCTImage: 85a5ee57360eb2aa4c596f989b63ac3bcd13255d - React-RCTLinking: 27b78b69a6c78d991d16d5ab5d695a4a5b772335 - React-RCTNetwork: 70571dc8c2a6e267fe1dd7b9560f0986e2a50929 - React-RCTSettings: b29aafe96f589a701f2c7c2b841e108b4367522d - React-RCTText: 078290401568962938e2b57975bbdedc126a0ed3 - React-RCTVibration: 0ec607ada0f1aa2d037ced67e88f4c3f2504dbe8 - React-rendererdebug: e06a302595563dcca8b69c23f4261373f07db0f4 - React-rncore: 039b2b0dcb2cb1a9a1439b3d326a38860154d748 - React-runtimeexecutor: dfd87505eee5fdfe774a2e04178160e08da56ea8 - React-runtimescheduler: 4d84d6fa8f027f2b41463b4dd9a724edce532b7d - React-utils: 6ac3e5c11ce5feb7577e441c4af924117e103945 - ReactCommon: c83cea3a62dab1ffb390d7e9dbbfecd564a1f937 + React-nativeconfig: 5825cf902451c79fcfb61d3f58f68279dce36791 + React-NativeModulesApple: b013de08507bb6ad6c7fe27ba60ed790400d6c12 + React-perflogger: 7d0251987e6b34a133a8682216a5b95c25c29fb1 + React-RCTActionSheet: 235ad060f1cbd4dfb5d3a3cdde774c6550fc2ae5 + React-RCTAnimation: b887367c3c3f910aa6302609c0865778e99061e9 + React-RCTAppDelegate: 359ecfe0c98b6b91b36eb4111441d5ba7ee19dd4 + React-RCTBlob: 3d7ec73792a7cc1c73a96af2c05702e5253567a5 + React-RCTFabric: 9df2a560ed7c2d0ad64fc390c445522a34fa660d + React-RCTImage: 5a1c34e4e828724b20dcdba83f0663446735c67a + React-RCTLinking: 0346d2f3fe08425ea51564a2786bf241c9825460 + React-RCTNetwork: 901b9becf3470fb7c962f0052f1a08483ba9ef0f + React-RCTSettings: a7d36dbbe7a05858ab09e67b9b2e97305ba74ae2 + React-RCTText: 1bd3a180b73f82132819ff6adad7a2221bf9d75e + React-RCTVibration: e29229474ae51c994d96b8ec0fccd10850a784d2 + React-rendererdebug: 30f5cca357c8986b6a71550c15f2b36bacf660ae + React-rncore: 99363de6d853eaa4bdf9ff4e293fe13e873f5f75 + React-runtimeexecutor: e7b536d8e13cc59c65c2e65b815c4c05a0cdf546 + React-runtimescheduler: 679adcaa48eb4afc6fd61d9bf33abba14d45bc30 + React-utils: fab57d2ea66e0f7eaca844f16032e2c2fa0201d6 + ReactCommon: 64943a65edc9701717e09436c8f1f655ce1f85bf RNCAsyncStorage: ddc4ee162bfd41b0d2c68bf2d95acd81dd7f1f93 RNFlashList: 4b4b6b093afc0df60ae08f9cbf6ccd4c836c667a RNGestureHandler: 4279931048471f17faf46d912b2e96e10f1da99b @@ -3418,7 +3418,7 @@ SPEC CHECKSUMS: StripePaymentsUI: 595f6581a9a039fa2f23f9a77235af44c15171fc StripeUICore: 5099399e52853370736aca81b27fc0e86b1822c8 UMAppLoader: 5df85360d65cabaef544be5424ac64672e648482 - Yoga: 6bfe5dbcd3b89b9c6a2d277664f259903873e196 + Yoga: 5b026bfa7d236308ae62cab88fd027cf55903c97 ZXingObjC: 8898711ab495761b2dbbdec76d90164a6d7e14c5 PODFILE CHECKSUM: d21b959522ea734e5c316c7d6e3f09319baf866b diff --git a/package.json b/package.json index cdad0e3b0e75c..88072f1725480 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ ] }, "resolutions": { - "react-native": "0.73.1", + "react-native": "0.73.2", "react-refresh": "^0.14.0", "@react-navigation/native": "^6.1.6", "@react-navigation/core": "^6.4.9", diff --git a/packages/expo-dev-launcher/CHANGELOG.md b/packages/expo-dev-launcher/CHANGELOG.md index a6ce042eb771a..fbf0a1295c24e 100644 --- a/packages/expo-dev-launcher/CHANGELOG.md +++ b/packages/expo-dev-launcher/CHANGELOG.md @@ -10,6 +10,10 @@ ### 💡 Others +### 📚 3rd party library updates + +- Update react-native to 0.73.2. ([#26308](https://github.com/expo/expo/pull/26308) by [@gabrieldonadel](https://github.com/gabrieldonadel)) + ## 3.6.1 — 2023-12-19 ### 🎉 New features diff --git a/packages/expo-dev-launcher/android/src/debug/assets/expo_dev_launcher_android.bundle b/packages/expo-dev-launcher/android/src/debug/assets/expo_dev_launcher_android.bundle index 7010a3e56e108..d92e09792b385 100644 --- a/packages/expo-dev-launcher/android/src/debug/assets/expo_dev_launcher_android.bundle +++ b/packages/expo-dev-launcher/android/src/debug/assets/expo_dev_launcher_android.bundle @@ -485,7 +485,7 @@ __d((function(g,r,i,a,m,_e,d){'use strict';var t=r(d[0]),n=r(d[1]),e=r(d[2]),u=r __d((function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.DynamicColorIOS=void 0;e.DynamicColorIOS=function(o){throw new Error('DynamicColorIOS is not available on this platform.')}}),436,[]); __d((function(g,r,_i,a,m,_e,d){var e=r(d[0]),t=e(r(d[1])),n=e(r(d[2])),i=e(r(d[3])),o=e(r(d[4])),c=e(r(d[5])),l=e(r(d[6])),u=e(r(d[7])),s=e(r(d[8])),v=e(r(d[9])),f=r(d[10]),h=r(d[11]),S=r(d[12]),p=e(r(d[13])),y=e(r(d[14])),b=r(d[15]),w=r(d[16]),C=["children"],N=["enabled","freezeOnBlur"],k=["active","activityState","children","isNativeStack","gestureResponseDistance","onGestureCancel"],x=["active","activityState","style","onComponentRef"],B=["enabled","hasTwoStates"];function j(e){var t=R();return function(){var n,i=(0,c.default)(e);if(t){var l=(0,c.default)(this).constructor;n=Reflect.construct(i,arguments,l)}else n=i.apply(this,arguments);return(0,o.default)(this,n)}}function R(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function P(e){for(var t=1;t1,children:e})}));return(0,w.jsx)(U.NativeScreenStack,P(P({},n),{},{children:o}))},InnerScreen:q,SearchBar:K,FullWindowOverlay:function(e){return console.warn('Importing FullWindowOverlay is only valid on iOS devices.'),(0,w.jsx)(f.View,P({},e))},get NativeScreen(){return U.NativeScreen},get NativeScreenContainer(){return U.NativeScreenContainer},get NativeScreenNavigationContainer(){return U.NativeScreenNavigationContainer},get ScreenStackHeaderConfig(){return U.NativeScreenStackHeaderConfig},get ScreenStackHeaderSubview(){return U.NativeScreenStackHeaderSubview},get SearchBarCommands(){return U.NativeSearchBarCommands},ScreenStackHeaderBackButtonImage:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,{type:"back",style:J.headerSubview,children:(0,w.jsx)(f.Image,P({resizeMode:"center",fadeDuration:0},e))})},ScreenStackHeaderRightView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"right",style:J.headerSubview}))},ScreenStackHeaderLeftView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"left",style:J.headerSubview}))},ScreenStackHeaderCenterView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"center",style:J.headerSubview}))},ScreenStackHeaderSearchBarView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"searchBar",style:J.headerSubview}))},enableScreens:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];(H=e)&&!f.UIManager.getViewManagerConfig('RNSScreen')&&console.error("Screen native module hasn't been linked. Please check the react-native-screens README for more details")},enableFreeze:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=parseInt(S.version.split('.')[1]);0===t||t>=64||!e||console.warn('react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'),D=e},screensEnabled:function(){return H},shouldUseActivityState:!0,useTransitionProgress:y.default,isSearchBarAvailableForCurrentPlatform:b.isSearchBarAvailableForCurrentPlatform,isNewBackTitleImplementation:b.isNewBackTitleImplementation,executeNativeBackPress:b.executeNativeBackPress}}),437,[6,8,9,16,18,15,40,180,51,101,2,438,439,440,441,442,219,443,444,445,446,447,448,449]); __d((function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.Freeze=function(o){var u=o.freeze,c=o.children,l=o.placeholder,p=void 0===l?null:l;return(0,n.jsx)(t.Suspense,{fallback:p,children:(0,n.jsx)(f,{freeze:u,children:c})})};var t=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var f=o(n);if(f&&f.has(t))return f.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=c?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(u,l,p):u[l]=t[l]}u.default=t,f&&f.set(t,u);return u})(r(d[0])),n=r(d[1]);function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,f=new WeakMap;return(o=function(t){return t?f:n})(t)}function f(o){var f=o.freeze,u=o.children,c=(0,t.useRef)({}).current;if(f&&!c.promise)throw c.promise=new Promise((function(t){c.resolve=t})),c.promise;if(f)throw c.promise;return c.promise&&(c.resolve(),c.promise=void 0),(0,n.jsx)(t.Fragment,{children:u})}}),438,[101,219]); -__d((function(e,s,t,r,i,a,c){i.exports={name:"react-native",version:"0.73.1",description:"A framework for building native apps using React",license:"MIT",repository:{type:"git",url:"https://github.com/facebook/react-native.git",directory:"packages/react-native"},homepage:"https://reactnative.dev/",keywords:["react","react-native","android","ios","mobile","cross-platform","app-framework","mobile-development"],bugs:"https://github.com/facebook/react-native/issues",engines:{node:">=18"},bin:"./cli.js",types:"types","jest-junit":{outputDirectory:"reports/junit",outputName:"js-test-results.xml"},files:["android","build.gradle.kts","cli.js","flow","gradle.properties","gradle/libs.versions.toml","index.js","interface.js","jest-preset.js","jest","Libraries","LICENSE","local-cli","React-Core.podspec","react-native.config.js","React.podspec","React","ReactAndroid","ReactCommon","README.md","rn-get-polyfills.js","scripts/compose-source-maps.js","scripts/find-node-for-xcode.sh","scripts/generate-codegen-artifacts.js","scripts/generate-provider-cli.js","scripts/generate-specs-cli.js","scripts/codegen","!scripts/codegen/__tests__","!scripts/codegen/__test_fixtures__","scripts/hermes/hermes-utils.js","scripts/hermes/prepare-hermes-for-build.js","scripts/ios-configure-glog.sh","scripts/xcode/with-environment.sh","scripts/native_modules.rb","scripts/node-binary.sh","scripts/packager.sh","scripts/packager-reporter.js","scripts/react_native_pods_utils/script_phases.rb","scripts/react_native_pods_utils/script_phases.sh","scripts/react_native_pods.rb","scripts/cocoapods","!scripts/cocoapods/__tests__","scripts/react-native-xcode.sh","sdks/.hermesversion","sdks/hermes-engine","sdks/hermesc","settings.gradle.kts","template.config.js","template","!template/node_modules","!template/package-lock.json","!template/yarn.lock","third-party-podspecs","types"],scripts:{prepack:"cp ../../README.md ."},peerDependencies:{react:"18.2.0"},dependencies:{"@jest/create-cache-key-function":"^29.6.3","@react-native-community/cli":"12.3.0","@react-native-community/cli-platform-android":"12.3.0","@react-native-community/cli-platform-ios":"12.3.0","@react-native/assets-registry":"^0.73.1","@react-native/community-cli-plugin":"0.73.11","@react-native/codegen":"^0.73.2","@react-native/gradle-plugin":"^0.73.4","@react-native/js-polyfills":"^0.73.1","@react-native/normalize-colors":"^0.73.2","@react-native/virtualized-lists":"^0.73.4","abort-controller":"^3.0.0",anser:"^1.4.9","ansi-regex":"^5.0.0","base64-js":"^1.5.1","deprecated-react-native-prop-types":"^5.0.0","event-target-shim":"^5.0.1","flow-enums-runtime":"^0.0.6",invariant:"^2.2.4","jest-environment-node":"^29.6.3","jsc-android":"^250231.0.0","memoize-one":"^5.0.0","metro-runtime":"^0.80.0","metro-source-map":"^0.80.0",mkdirp:"^0.5.1",nullthrows:"^1.1.1","pretty-format":"^26.5.2",promise:"^8.3.0","react-devtools-core":"^4.27.7","react-refresh":"^0.14.0","react-shallow-renderer":"^16.15.0","regenerator-runtime":"^0.13.2",scheduler:"0.24.0-canary-efb381bbf-20230505","stacktrace-parser":"^0.1.10","whatwg-fetch":"^3.0.0",ws:"^6.2.2",yargs:"^17.6.2"},codegenConfig:{libraries:[{name:"FBReactNativeSpec",type:"modules",ios:{},android:{},jsSrcsDir:"Libraries"},{name:"rncore",type:"components",ios:{},android:{},jsSrcsDir:"Libraries"}]}}}),439,[]); +__d((function(e,s,t,r,i,a,c){i.exports={name:"react-native",version:"0.73.2",description:"A framework for building native apps using React",license:"MIT",repository:{type:"git",url:"https://github.com/facebook/react-native.git",directory:"packages/react-native"},homepage:"https://reactnative.dev/",keywords:["react","react-native","android","ios","mobile","cross-platform","app-framework","mobile-development"],bugs:"https://github.com/facebook/react-native/issues",engines:{node:">=18"},bin:"./cli.js",types:"types","jest-junit":{outputDirectory:"reports/junit",outputName:"js-test-results.xml"},files:["android","build.gradle.kts","cli.js","flow","gradle.properties","gradle/libs.versions.toml","index.js","interface.js","jest-preset.js","jest","Libraries","LICENSE","local-cli","React-Core.podspec","react-native.config.js","React.podspec","React","ReactAndroid","ReactCommon","README.md","rn-get-polyfills.js","scripts/compose-source-maps.js","scripts/find-node-for-xcode.sh","scripts/generate-codegen-artifacts.js","scripts/generate-provider-cli.js","scripts/generate-specs-cli.js","scripts/codegen","!scripts/codegen/__tests__","!scripts/codegen/__test_fixtures__","scripts/hermes/hermes-utils.js","scripts/hermes/prepare-hermes-for-build.js","scripts/ios-configure-glog.sh","scripts/xcode/with-environment.sh","scripts/native_modules.rb","scripts/node-binary.sh","scripts/packager.sh","scripts/packager-reporter.js","scripts/react_native_pods_utils/script_phases.rb","scripts/react_native_pods_utils/script_phases.sh","scripts/react_native_pods.rb","scripts/cocoapods","!scripts/cocoapods/__tests__","scripts/react-native-xcode.sh","sdks/.hermesversion","sdks/hermes-engine","sdks/hermesc","settings.gradle.kts","template.config.js","template","!template/node_modules","!template/package-lock.json","!template/yarn.lock","third-party-podspecs","types"],scripts:{prepack:"cp ../../README.md ."},peerDependencies:{react:"18.2.0"},dependencies:{"@jest/create-cache-key-function":"^29.6.3","@react-native-community/cli":"12.3.0","@react-native-community/cli-platform-android":"12.3.0","@react-native-community/cli-platform-ios":"12.3.0","@react-native/assets-registry":"0.73.1","@react-native/community-cli-plugin":"0.73.12","@react-native/codegen":"0.73.2","@react-native/gradle-plugin":"0.73.4","@react-native/js-polyfills":"0.73.1","@react-native/normalize-colors":"0.73.2","@react-native/virtualized-lists":"0.73.4","abort-controller":"^3.0.0",anser:"^1.4.9","ansi-regex":"^5.0.0","base64-js":"^1.5.1","deprecated-react-native-prop-types":"^5.0.0","event-target-shim":"^5.0.1","flow-enums-runtime":"^0.0.6",invariant:"^2.2.4","jest-environment-node":"^29.6.3","jsc-android":"^250231.0.0","memoize-one":"^5.0.0","metro-runtime":"^0.80.3","metro-source-map":"^0.80.3",mkdirp:"^0.5.1",nullthrows:"^1.1.1","pretty-format":"^26.5.2",promise:"^8.3.0","react-devtools-core":"^4.27.7","react-refresh":"^0.14.0","react-shallow-renderer":"^16.15.0","regenerator-runtime":"^0.13.2",scheduler:"0.24.0-canary-efb381bbf-20230505","stacktrace-parser":"^0.1.10","whatwg-fetch":"^3.0.0",ws:"^6.2.2",yargs:"^17.6.2"},codegenConfig:{libraries:[{name:"FBReactNativeSpec",type:"modules",ios:{},android:{},jsSrcsDir:"Libraries"},{name:"rncore",type:"components",ios:{},android:{},jsSrcsDir:"Libraries"}]}}}),439,[]); __d((function(g,r,i,a,m,e,d){function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(t=function(t){return t?u:o})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var u=t(o);if(u&&u.has(n))return u.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,u&&u.set(n,f);return f})(r(d[0])).createContext(void 0);e.default=n}),440,[101]); __d((function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=n.useContext(o.default);if(void 0===t)throw new Error("Couldn't find values for transition progress. Are you inside a screen in Native Stack?");return t};var n=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=u(n);if(o&&o.has(t))return o.get(t);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=c?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=t[l]}f.default=t,o&&o.set(t,f);return f})(r(d[1])),o=t(r(d[2]));function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(u=function(t){return t?o:n})(t)}}),441,[6,101,440]); __d((function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.executeNativeBackPress=function(){return t.BackHandler.exitApp(),!0},e.isSearchBarAvailableForCurrentPlatform=e.isNewBackTitleImplementation=void 0;var t=r(d[0]),n=['ios','android'].includes("android");e.isSearchBarAvailableForCurrentPlatform=n;e.isNewBackTitleImplementation=!0}),442,[2]); diff --git a/packages/expo-dev-launcher/ios/main.jsbundle b/packages/expo-dev-launcher/ios/main.jsbundle index a2305d714502c..a386b1e96bedc 100644 --- a/packages/expo-dev-launcher/ios/main.jsbundle +++ b/packages/expo-dev-launcher/ios/main.jsbundle @@ -485,7 +485,7 @@ __d((function(g,r,i,a,m,_e,d){'use strict';var t=r(d[0]),n=r(d[1]),e=r(d[2]),u=r __d((function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.DynamicColorIOS=void 0;var t=r(d[0]);e.DynamicColorIOS=function(o){return(0,t.DynamicColorIOSPrivate)({light:o.light,dark:o.dark,highContrastLight:o.highContrastLight,highContrastDark:o.highContrastDark})}}),436,[69]); __d((function(g,r,_i,a,m,_e,d){var e=r(d[0]),t=e(r(d[1])),n=e(r(d[2])),i=e(r(d[3])),o=e(r(d[4])),c=e(r(d[5])),l=e(r(d[6])),u=e(r(d[7])),s=e(r(d[8])),v=e(r(d[9])),f=r(d[10]),h=r(d[11]),S=r(d[12]),p=e(r(d[13])),y=e(r(d[14])),b=r(d[15]),w=r(d[16]),C=["children"],N=["enabled","freezeOnBlur"],k=["active","activityState","children","isNativeStack","gestureResponseDistance","onGestureCancel"],x=["active","activityState","style","onComponentRef"],B=["enabled","hasTwoStates"];function j(e){var t=R();return function(){var n,i=(0,c.default)(e);if(t){var l=(0,c.default)(this).constructor;n=Reflect.construct(i,arguments,l)}else n=i.apply(this,arguments);return(0,o.default)(this,n)}}function R(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function P(e){for(var t=1;t1,children:e})}));return(0,w.jsx)(U.NativeScreenStack,P(P({},n),{},{children:o}))},InnerScreen:q,SearchBar:K,FullWindowOverlay:function(e){return(0,w.jsx)(U.NativeFullWindowOverlay,{style:{position:'absolute',width:'100%',height:'100%'},children:e.children})},get NativeScreen(){return U.NativeScreen},get NativeScreenContainer(){return U.NativeScreenContainer},get NativeScreenNavigationContainer(){return U.NativeScreenNavigationContainer},get ScreenStackHeaderConfig(){return U.NativeScreenStackHeaderConfig},get ScreenStackHeaderSubview(){return U.NativeScreenStackHeaderSubview},get SearchBarCommands(){return U.NativeSearchBarCommands},ScreenStackHeaderBackButtonImage:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,{type:"back",style:J.headerSubview,children:(0,w.jsx)(f.Image,P({resizeMode:"center",fadeDuration:0},e))})},ScreenStackHeaderRightView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"right",style:J.headerSubview}))},ScreenStackHeaderLeftView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"left",style:J.headerSubview}))},ScreenStackHeaderCenterView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"center",style:J.headerSubview}))},ScreenStackHeaderSearchBarView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"searchBar",style:J.headerSubview}))},enableScreens:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];(H=e)&&!f.UIManager.getViewManagerConfig('RNSScreen')&&console.error("Screen native module hasn't been linked. Please check the react-native-screens README for more details")},enableFreeze:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=parseInt(S.version.split('.')[1]);0===t||t>=64||!e||console.warn('react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'),D=e},screensEnabled:function(){return H},shouldUseActivityState:!0,useTransitionProgress:y.default,isSearchBarAvailableForCurrentPlatform:b.isSearchBarAvailableForCurrentPlatform,isNewBackTitleImplementation:b.isNewBackTitleImplementation,executeNativeBackPress:b.executeNativeBackPress}}),437,[6,8,9,16,18,15,40,180,51,101,2,438,439,440,441,442,220,443,444,445,446,447,448,449,450]); __d((function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.Freeze=function(o){var u=o.freeze,c=o.children,l=o.placeholder,p=void 0===l?null:l;return(0,n.jsx)(t.Suspense,{fallback:p,children:(0,n.jsx)(f,{freeze:u,children:c})})};var t=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var f=o(n);if(f&&f.has(t))return f.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=c?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(u,l,p):u[l]=t[l]}u.default=t,f&&f.set(t,u);return u})(r(d[0])),n=r(d[1]);function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,f=new WeakMap;return(o=function(t){return t?f:n})(t)}function f(o){var f=o.freeze,u=o.children,c=(0,t.useRef)({}).current;if(f&&!c.promise)throw c.promise=new Promise((function(t){c.resolve=t})),c.promise;if(f)throw c.promise;return c.promise&&(c.resolve(),c.promise=void 0),(0,n.jsx)(t.Fragment,{children:u})}}),438,[101,220]); -__d((function(e,s,t,r,i,a,c){i.exports={name:"react-native",version:"0.73.1",description:"A framework for building native apps using React",license:"MIT",repository:{type:"git",url:"https://github.com/facebook/react-native.git",directory:"packages/react-native"},homepage:"https://reactnative.dev/",keywords:["react","react-native","android","ios","mobile","cross-platform","app-framework","mobile-development"],bugs:"https://github.com/facebook/react-native/issues",engines:{node:">=18"},bin:"./cli.js",types:"types","jest-junit":{outputDirectory:"reports/junit",outputName:"js-test-results.xml"},files:["android","build.gradle.kts","cli.js","flow","gradle.properties","gradle/libs.versions.toml","index.js","interface.js","jest-preset.js","jest","Libraries","LICENSE","local-cli","React-Core.podspec","react-native.config.js","React.podspec","React","ReactAndroid","ReactCommon","README.md","rn-get-polyfills.js","scripts/compose-source-maps.js","scripts/find-node-for-xcode.sh","scripts/generate-codegen-artifacts.js","scripts/generate-provider-cli.js","scripts/generate-specs-cli.js","scripts/codegen","!scripts/codegen/__tests__","!scripts/codegen/__test_fixtures__","scripts/hermes/hermes-utils.js","scripts/hermes/prepare-hermes-for-build.js","scripts/ios-configure-glog.sh","scripts/xcode/with-environment.sh","scripts/native_modules.rb","scripts/node-binary.sh","scripts/packager.sh","scripts/packager-reporter.js","scripts/react_native_pods_utils/script_phases.rb","scripts/react_native_pods_utils/script_phases.sh","scripts/react_native_pods.rb","scripts/cocoapods","!scripts/cocoapods/__tests__","scripts/react-native-xcode.sh","sdks/.hermesversion","sdks/hermes-engine","sdks/hermesc","settings.gradle.kts","template.config.js","template","!template/node_modules","!template/package-lock.json","!template/yarn.lock","third-party-podspecs","types"],scripts:{prepack:"cp ../../README.md ."},peerDependencies:{react:"18.2.0"},dependencies:{"@jest/create-cache-key-function":"^29.6.3","@react-native-community/cli":"12.3.0","@react-native-community/cli-platform-android":"12.3.0","@react-native-community/cli-platform-ios":"12.3.0","@react-native/assets-registry":"^0.73.1","@react-native/community-cli-plugin":"0.73.11","@react-native/codegen":"^0.73.2","@react-native/gradle-plugin":"^0.73.4","@react-native/js-polyfills":"^0.73.1","@react-native/normalize-colors":"^0.73.2","@react-native/virtualized-lists":"^0.73.4","abort-controller":"^3.0.0",anser:"^1.4.9","ansi-regex":"^5.0.0","base64-js":"^1.5.1","deprecated-react-native-prop-types":"^5.0.0","event-target-shim":"^5.0.1","flow-enums-runtime":"^0.0.6",invariant:"^2.2.4","jest-environment-node":"^29.6.3","jsc-android":"^250231.0.0","memoize-one":"^5.0.0","metro-runtime":"^0.80.0","metro-source-map":"^0.80.0",mkdirp:"^0.5.1",nullthrows:"^1.1.1","pretty-format":"^26.5.2",promise:"^8.3.0","react-devtools-core":"^4.27.7","react-refresh":"^0.14.0","react-shallow-renderer":"^16.15.0","regenerator-runtime":"^0.13.2",scheduler:"0.24.0-canary-efb381bbf-20230505","stacktrace-parser":"^0.1.10","whatwg-fetch":"^3.0.0",ws:"^6.2.2",yargs:"^17.6.2"},codegenConfig:{libraries:[{name:"FBReactNativeSpec",type:"modules",ios:{},android:{},jsSrcsDir:"Libraries"},{name:"rncore",type:"components",ios:{},android:{},jsSrcsDir:"Libraries"}]}}}),439,[]); +__d((function(e,s,t,r,i,a,c){i.exports={name:"react-native",version:"0.73.2",description:"A framework for building native apps using React",license:"MIT",repository:{type:"git",url:"https://github.com/facebook/react-native.git",directory:"packages/react-native"},homepage:"https://reactnative.dev/",keywords:["react","react-native","android","ios","mobile","cross-platform","app-framework","mobile-development"],bugs:"https://github.com/facebook/react-native/issues",engines:{node:">=18"},bin:"./cli.js",types:"types","jest-junit":{outputDirectory:"reports/junit",outputName:"js-test-results.xml"},files:["android","build.gradle.kts","cli.js","flow","gradle.properties","gradle/libs.versions.toml","index.js","interface.js","jest-preset.js","jest","Libraries","LICENSE","local-cli","React-Core.podspec","react-native.config.js","React.podspec","React","ReactAndroid","ReactCommon","README.md","rn-get-polyfills.js","scripts/compose-source-maps.js","scripts/find-node-for-xcode.sh","scripts/generate-codegen-artifacts.js","scripts/generate-provider-cli.js","scripts/generate-specs-cli.js","scripts/codegen","!scripts/codegen/__tests__","!scripts/codegen/__test_fixtures__","scripts/hermes/hermes-utils.js","scripts/hermes/prepare-hermes-for-build.js","scripts/ios-configure-glog.sh","scripts/xcode/with-environment.sh","scripts/native_modules.rb","scripts/node-binary.sh","scripts/packager.sh","scripts/packager-reporter.js","scripts/react_native_pods_utils/script_phases.rb","scripts/react_native_pods_utils/script_phases.sh","scripts/react_native_pods.rb","scripts/cocoapods","!scripts/cocoapods/__tests__","scripts/react-native-xcode.sh","sdks/.hermesversion","sdks/hermes-engine","sdks/hermesc","settings.gradle.kts","template.config.js","template","!template/node_modules","!template/package-lock.json","!template/yarn.lock","third-party-podspecs","types"],scripts:{prepack:"cp ../../README.md ."},peerDependencies:{react:"18.2.0"},dependencies:{"@jest/create-cache-key-function":"^29.6.3","@react-native-community/cli":"12.3.0","@react-native-community/cli-platform-android":"12.3.0","@react-native-community/cli-platform-ios":"12.3.0","@react-native/assets-registry":"0.73.1","@react-native/community-cli-plugin":"0.73.12","@react-native/codegen":"0.73.2","@react-native/gradle-plugin":"0.73.4","@react-native/js-polyfills":"0.73.1","@react-native/normalize-colors":"0.73.2","@react-native/virtualized-lists":"0.73.4","abort-controller":"^3.0.0",anser:"^1.4.9","ansi-regex":"^5.0.0","base64-js":"^1.5.1","deprecated-react-native-prop-types":"^5.0.0","event-target-shim":"^5.0.1","flow-enums-runtime":"^0.0.6",invariant:"^2.2.4","jest-environment-node":"^29.6.3","jsc-android":"^250231.0.0","memoize-one":"^5.0.0","metro-runtime":"^0.80.3","metro-source-map":"^0.80.3",mkdirp:"^0.5.1",nullthrows:"^1.1.1","pretty-format":"^26.5.2",promise:"^8.3.0","react-devtools-core":"^4.27.7","react-refresh":"^0.14.0","react-shallow-renderer":"^16.15.0","regenerator-runtime":"^0.13.2",scheduler:"0.24.0-canary-efb381bbf-20230505","stacktrace-parser":"^0.1.10","whatwg-fetch":"^3.0.0",ws:"^6.2.2",yargs:"^17.6.2"},codegenConfig:{libraries:[{name:"FBReactNativeSpec",type:"modules",ios:{},android:{},jsSrcsDir:"Libraries"},{name:"rncore",type:"components",ios:{},android:{},jsSrcsDir:"Libraries"}]}}}),439,[]); __d((function(g,r,i,a,m,e,d){function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(t=function(t){return t?u:o})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var u=t(o);if(u&&u.has(n))return u.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,u&&u.set(n,f);return f})(r(d[0])).createContext(void 0);e.default=n}),440,[101]); __d((function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=n.useContext(o.default);if(void 0===t)throw new Error("Couldn't find values for transition progress. Are you inside a screen in Native Stack?");return t};var n=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=u(n);if(o&&o.has(t))return o.get(t);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=c?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=t[l]}f.default=t,o&&o.set(t,f);return f})(r(d[1])),o=t(r(d[2]));function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(u=function(t){return t?o:n})(t)}}),441,[6,101,440]); __d((function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.executeNativeBackPress=function(){return t.BackHandler.exitApp(),!0},e.isSearchBarAvailableForCurrentPlatform=e.isNewBackTitleImplementation=void 0;var t=r(d[0]),n=['ios','android'].includes("ios");e.isSearchBarAvailableForCurrentPlatform=n;e.isNewBackTitleImplementation=!0}),442,[2]); diff --git a/packages/expo-dev-launcher/package.json b/packages/expo-dev-launcher/package.json index 0b61e4a357bcd..19ccbd06c4000 100644 --- a/packages/expo-dev-launcher/package.json +++ b/packages/expo-dev-launcher/package.json @@ -52,7 +52,7 @@ "graphql": "^16.0.1", "graphql-request": "^3.6.1", "react": "18.2.0", - "react-native": "0.73.1", + "react-native": "0.73.2", "react-query": "^3.34.16", "url": "^0.11.0" }, diff --git a/packages/expo-dev-menu/CHANGELOG.md b/packages/expo-dev-menu/CHANGELOG.md index acc11547bbea2..f13b41c2157b1 100644 --- a/packages/expo-dev-menu/CHANGELOG.md +++ b/packages/expo-dev-menu/CHANGELOG.md @@ -10,6 +10,10 @@ ### 💡 Others +### 📚 3rd party library updates + +- Update react-native to 0.73.2. ([#26308](https://github.com/expo/expo/pull/26308) by [@gabrieldonadel](https://github.com/gabrieldonadel)) + ## 4.5.2 — 2023-12-19 ### 🎉 New features diff --git a/packages/expo-dev-menu/assets/EXDevMenuApp.android.js b/packages/expo-dev-menu/assets/EXDevMenuApp.android.js index bf8d120e78a03..2de59cecc97e2 100644 --- a/packages/expo-dev-menu/assets/EXDevMenuApp.android.js +++ b/packages/expo-dev-menu/assets/EXDevMenuApp.android.js @@ -484,7 +484,7 @@ __d((function(g,r,i,a,m,_e,d){'use strict';var t=r(d[0]),n=r(d[1]),e=r(d[2]),u=r __d((function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.DynamicColorIOS=void 0;e.DynamicColorIOS=function(o){throw new Error('DynamicColorIOS is not available on this platform.')}}),435,[]); __d((function(g,r,_i,a,m,_e,d){var e=r(d[0]),t=e(r(d[1])),n=e(r(d[2])),i=e(r(d[3])),o=e(r(d[4])),c=e(r(d[5])),l=e(r(d[6])),u=e(r(d[7])),s=e(r(d[8])),v=e(r(d[9])),f=r(d[10]),h=r(d[11]),S=r(d[12]),p=e(r(d[13])),y=e(r(d[14])),b=r(d[15]),w=r(d[16]),C=["children"],N=["enabled","freezeOnBlur"],k=["active","activityState","children","isNativeStack","gestureResponseDistance","onGestureCancel"],x=["active","activityState","style","onComponentRef"],B=["enabled","hasTwoStates"];function j(e){var t=R();return function(){var n,i=(0,c.default)(e);if(t){var l=(0,c.default)(this).constructor;n=Reflect.construct(i,arguments,l)}else n=i.apply(this,arguments);return(0,o.default)(this,n)}}function R(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function P(e){for(var t=1;t1,children:e})}));return(0,w.jsx)(U.NativeScreenStack,P(P({},n),{},{children:o}))},InnerScreen:q,SearchBar:K,FullWindowOverlay:function(e){return console.warn('Importing FullWindowOverlay is only valid on iOS devices.'),(0,w.jsx)(f.View,P({},e))},get NativeScreen(){return U.NativeScreen},get NativeScreenContainer(){return U.NativeScreenContainer},get NativeScreenNavigationContainer(){return U.NativeScreenNavigationContainer},get ScreenStackHeaderConfig(){return U.NativeScreenStackHeaderConfig},get ScreenStackHeaderSubview(){return U.NativeScreenStackHeaderSubview},get SearchBarCommands(){return U.NativeSearchBarCommands},ScreenStackHeaderBackButtonImage:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,{type:"back",style:J.headerSubview,children:(0,w.jsx)(f.Image,P({resizeMode:"center",fadeDuration:0},e))})},ScreenStackHeaderRightView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"right",style:J.headerSubview}))},ScreenStackHeaderLeftView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"left",style:J.headerSubview}))},ScreenStackHeaderCenterView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"center",style:J.headerSubview}))},ScreenStackHeaderSearchBarView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"searchBar",style:J.headerSubview}))},enableScreens:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];(H=e)&&!f.UIManager.getViewManagerConfig('RNSScreen')&&console.error("Screen native module hasn't been linked. Please check the react-native-screens README for more details")},enableFreeze:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=parseInt(S.version.split('.')[1]);0===t||t>=64||!e||console.warn('react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'),D=e},screensEnabled:function(){return H},shouldUseActivityState:!0,useTransitionProgress:y.default,isSearchBarAvailableForCurrentPlatform:b.isSearchBarAvailableForCurrentPlatform,isNewBackTitleImplementation:b.isNewBackTitleImplementation,executeNativeBackPress:b.executeNativeBackPress}}),436,[5,7,8,15,17,14,39,179,50,100,1,437,438,439,440,441,218,442,443,444,445,446,447,448]); __d((function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.Freeze=function(o){var u=o.freeze,c=o.children,l=o.placeholder,p=void 0===l?null:l;return(0,n.jsx)(t.Suspense,{fallback:p,children:(0,n.jsx)(f,{freeze:u,children:c})})};var t=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var f=o(n);if(f&&f.has(t))return f.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=c?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(u,l,p):u[l]=t[l]}u.default=t,f&&f.set(t,u);return u})(r(d[0])),n=r(d[1]);function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,f=new WeakMap;return(o=function(t){return t?f:n})(t)}function f(o){var f=o.freeze,u=o.children,c=(0,t.useRef)({}).current;if(f&&!c.promise)throw c.promise=new Promise((function(t){c.resolve=t})),c.promise;if(f)throw c.promise;return c.promise&&(c.resolve(),c.promise=void 0),(0,n.jsx)(t.Fragment,{children:u})}}),437,[100,218]); -__d((function(e,s,t,r,i,a,c){i.exports={name:"react-native",version:"0.73.1",description:"A framework for building native apps using React",license:"MIT",repository:{type:"git",url:"https://github.com/facebook/react-native.git",directory:"packages/react-native"},homepage:"https://reactnative.dev/",keywords:["react","react-native","android","ios","mobile","cross-platform","app-framework","mobile-development"],bugs:"https://github.com/facebook/react-native/issues",engines:{node:">=18"},bin:"./cli.js",types:"types","jest-junit":{outputDirectory:"reports/junit",outputName:"js-test-results.xml"},files:["android","build.gradle.kts","cli.js","flow","gradle.properties","gradle/libs.versions.toml","index.js","interface.js","jest-preset.js","jest","Libraries","LICENSE","local-cli","React-Core.podspec","react-native.config.js","React.podspec","React","ReactAndroid","ReactCommon","README.md","rn-get-polyfills.js","scripts/compose-source-maps.js","scripts/find-node-for-xcode.sh","scripts/generate-codegen-artifacts.js","scripts/generate-provider-cli.js","scripts/generate-specs-cli.js","scripts/codegen","!scripts/codegen/__tests__","!scripts/codegen/__test_fixtures__","scripts/hermes/hermes-utils.js","scripts/hermes/prepare-hermes-for-build.js","scripts/ios-configure-glog.sh","scripts/xcode/with-environment.sh","scripts/native_modules.rb","scripts/node-binary.sh","scripts/packager.sh","scripts/packager-reporter.js","scripts/react_native_pods_utils/script_phases.rb","scripts/react_native_pods_utils/script_phases.sh","scripts/react_native_pods.rb","scripts/cocoapods","!scripts/cocoapods/__tests__","scripts/react-native-xcode.sh","sdks/.hermesversion","sdks/hermes-engine","sdks/hermesc","settings.gradle.kts","template.config.js","template","!template/node_modules","!template/package-lock.json","!template/yarn.lock","third-party-podspecs","types"],scripts:{prepack:"cp ../../README.md ."},peerDependencies:{react:"18.2.0"},dependencies:{"@jest/create-cache-key-function":"^29.6.3","@react-native-community/cli":"12.3.0","@react-native-community/cli-platform-android":"12.3.0","@react-native-community/cli-platform-ios":"12.3.0","@react-native/assets-registry":"^0.73.1","@react-native/community-cli-plugin":"0.73.11","@react-native/codegen":"^0.73.2","@react-native/gradle-plugin":"^0.73.4","@react-native/js-polyfills":"^0.73.1","@react-native/normalize-colors":"^0.73.2","@react-native/virtualized-lists":"^0.73.4","abort-controller":"^3.0.0",anser:"^1.4.9","ansi-regex":"^5.0.0","base64-js":"^1.5.1","deprecated-react-native-prop-types":"^5.0.0","event-target-shim":"^5.0.1","flow-enums-runtime":"^0.0.6",invariant:"^2.2.4","jest-environment-node":"^29.6.3","jsc-android":"^250231.0.0","memoize-one":"^5.0.0","metro-runtime":"^0.80.0","metro-source-map":"^0.80.0",mkdirp:"^0.5.1",nullthrows:"^1.1.1","pretty-format":"^26.5.2",promise:"^8.3.0","react-devtools-core":"^4.27.7","react-refresh":"^0.14.0","react-shallow-renderer":"^16.15.0","regenerator-runtime":"^0.13.2",scheduler:"0.24.0-canary-efb381bbf-20230505","stacktrace-parser":"^0.1.10","whatwg-fetch":"^3.0.0",ws:"^6.2.2",yargs:"^17.6.2"},codegenConfig:{libraries:[{name:"FBReactNativeSpec",type:"modules",ios:{},android:{},jsSrcsDir:"Libraries"},{name:"rncore",type:"components",ios:{},android:{},jsSrcsDir:"Libraries"}]}}}),438,[]); +__d((function(e,s,t,r,i,a,c){i.exports={name:"react-native",version:"0.73.2",description:"A framework for building native apps using React",license:"MIT",repository:{type:"git",url:"https://github.com/facebook/react-native.git",directory:"packages/react-native"},homepage:"https://reactnative.dev/",keywords:["react","react-native","android","ios","mobile","cross-platform","app-framework","mobile-development"],bugs:"https://github.com/facebook/react-native/issues",engines:{node:">=18"},bin:"./cli.js",types:"types","jest-junit":{outputDirectory:"reports/junit",outputName:"js-test-results.xml"},files:["android","build.gradle.kts","cli.js","flow","gradle.properties","gradle/libs.versions.toml","index.js","interface.js","jest-preset.js","jest","Libraries","LICENSE","local-cli","React-Core.podspec","react-native.config.js","React.podspec","React","ReactAndroid","ReactCommon","README.md","rn-get-polyfills.js","scripts/compose-source-maps.js","scripts/find-node-for-xcode.sh","scripts/generate-codegen-artifacts.js","scripts/generate-provider-cli.js","scripts/generate-specs-cli.js","scripts/codegen","!scripts/codegen/__tests__","!scripts/codegen/__test_fixtures__","scripts/hermes/hermes-utils.js","scripts/hermes/prepare-hermes-for-build.js","scripts/ios-configure-glog.sh","scripts/xcode/with-environment.sh","scripts/native_modules.rb","scripts/node-binary.sh","scripts/packager.sh","scripts/packager-reporter.js","scripts/react_native_pods_utils/script_phases.rb","scripts/react_native_pods_utils/script_phases.sh","scripts/react_native_pods.rb","scripts/cocoapods","!scripts/cocoapods/__tests__","scripts/react-native-xcode.sh","sdks/.hermesversion","sdks/hermes-engine","sdks/hermesc","settings.gradle.kts","template.config.js","template","!template/node_modules","!template/package-lock.json","!template/yarn.lock","third-party-podspecs","types"],scripts:{prepack:"cp ../../README.md ."},peerDependencies:{react:"18.2.0"},dependencies:{"@jest/create-cache-key-function":"^29.6.3","@react-native-community/cli":"12.3.0","@react-native-community/cli-platform-android":"12.3.0","@react-native-community/cli-platform-ios":"12.3.0","@react-native/assets-registry":"0.73.1","@react-native/community-cli-plugin":"0.73.12","@react-native/codegen":"0.73.2","@react-native/gradle-plugin":"0.73.4","@react-native/js-polyfills":"0.73.1","@react-native/normalize-colors":"0.73.2","@react-native/virtualized-lists":"0.73.4","abort-controller":"^3.0.0",anser:"^1.4.9","ansi-regex":"^5.0.0","base64-js":"^1.5.1","deprecated-react-native-prop-types":"^5.0.0","event-target-shim":"^5.0.1","flow-enums-runtime":"^0.0.6",invariant:"^2.2.4","jest-environment-node":"^29.6.3","jsc-android":"^250231.0.0","memoize-one":"^5.0.0","metro-runtime":"^0.80.3","metro-source-map":"^0.80.3",mkdirp:"^0.5.1",nullthrows:"^1.1.1","pretty-format":"^26.5.2",promise:"^8.3.0","react-devtools-core":"^4.27.7","react-refresh":"^0.14.0","react-shallow-renderer":"^16.15.0","regenerator-runtime":"^0.13.2",scheduler:"0.24.0-canary-efb381bbf-20230505","stacktrace-parser":"^0.1.10","whatwg-fetch":"^3.0.0",ws:"^6.2.2",yargs:"^17.6.2"},codegenConfig:{libraries:[{name:"FBReactNativeSpec",type:"modules",ios:{},android:{},jsSrcsDir:"Libraries"},{name:"rncore",type:"components",ios:{},android:{},jsSrcsDir:"Libraries"}]}}}),438,[]); __d((function(g,r,i,a,m,e,d){function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(t=function(t){return t?u:o})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var u=t(o);if(u&&u.has(n))return u.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,u&&u.set(n,f);return f})(r(d[0])).createContext(void 0);e.default=n}),439,[100]); __d((function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=n.useContext(o.default);if(void 0===t)throw new Error("Couldn't find values for transition progress. Are you inside a screen in Native Stack?");return t};var n=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=u(n);if(o&&o.has(t))return o.get(t);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=c?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=t[l]}f.default=t,o&&o.set(t,f);return f})(r(d[1])),o=t(r(d[2]));function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(u=function(t){return t?o:n})(t)}}),440,[5,100,439]); __d((function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.executeNativeBackPress=function(){return t.BackHandler.exitApp(),!0},e.isSearchBarAvailableForCurrentPlatform=e.isNewBackTitleImplementation=void 0;var t=r(d[0]),n=['ios','android'].includes("android");e.isSearchBarAvailableForCurrentPlatform=n;e.isNewBackTitleImplementation=!0}),441,[1]); diff --git a/packages/expo-dev-menu/assets/EXDevMenuApp.ios.js b/packages/expo-dev-menu/assets/EXDevMenuApp.ios.js index 99e6a0293c10a..789c9c2cf6a61 100644 --- a/packages/expo-dev-menu/assets/EXDevMenuApp.ios.js +++ b/packages/expo-dev-menu/assets/EXDevMenuApp.ios.js @@ -484,7 +484,7 @@ __d((function(g,r,i,a,m,_e,d){'use strict';var t=r(d[0]),n=r(d[1]),e=r(d[2]),u=r __d((function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.DynamicColorIOS=void 0;var t=r(d[0]);e.DynamicColorIOS=function(o){return(0,t.DynamicColorIOSPrivate)({light:o.light,dark:o.dark,highContrastLight:o.highContrastLight,highContrastDark:o.highContrastDark})}}),435,[68]); __d((function(g,r,_i,a,m,_e,d){var e=r(d[0]),t=e(r(d[1])),n=e(r(d[2])),i=e(r(d[3])),o=e(r(d[4])),c=e(r(d[5])),l=e(r(d[6])),u=e(r(d[7])),s=e(r(d[8])),v=e(r(d[9])),f=r(d[10]),h=r(d[11]),S=r(d[12]),p=e(r(d[13])),y=e(r(d[14])),b=r(d[15]),w=r(d[16]),C=["children"],N=["enabled","freezeOnBlur"],k=["active","activityState","children","isNativeStack","gestureResponseDistance","onGestureCancel"],x=["active","activityState","style","onComponentRef"],B=["enabled","hasTwoStates"];function j(e){var t=R();return function(){var n,i=(0,c.default)(e);if(t){var l=(0,c.default)(this).constructor;n=Reflect.construct(i,arguments,l)}else n=i.apply(this,arguments);return(0,o.default)(this,n)}}function R(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function P(e){for(var t=1;t1,children:e})}));return(0,w.jsx)(U.NativeScreenStack,P(P({},n),{},{children:o}))},InnerScreen:q,SearchBar:K,FullWindowOverlay:function(e){return(0,w.jsx)(U.NativeFullWindowOverlay,{style:{position:'absolute',width:'100%',height:'100%'},children:e.children})},get NativeScreen(){return U.NativeScreen},get NativeScreenContainer(){return U.NativeScreenContainer},get NativeScreenNavigationContainer(){return U.NativeScreenNavigationContainer},get ScreenStackHeaderConfig(){return U.NativeScreenStackHeaderConfig},get ScreenStackHeaderSubview(){return U.NativeScreenStackHeaderSubview},get SearchBarCommands(){return U.NativeSearchBarCommands},ScreenStackHeaderBackButtonImage:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,{type:"back",style:J.headerSubview,children:(0,w.jsx)(f.Image,P({resizeMode:"center",fadeDuration:0},e))})},ScreenStackHeaderRightView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"right",style:J.headerSubview}))},ScreenStackHeaderLeftView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"left",style:J.headerSubview}))},ScreenStackHeaderCenterView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"center",style:J.headerSubview}))},ScreenStackHeaderSearchBarView:function(e){return(0,w.jsx)(U.NativeScreenStackHeaderSubview,P(P({},e),{},{type:"searchBar",style:J.headerSubview}))},enableScreens:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];(H=e)&&!f.UIManager.getViewManagerConfig('RNSScreen')&&console.error("Screen native module hasn't been linked. Please check the react-native-screens README for more details")},enableFreeze:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=parseInt(S.version.split('.')[1]);0===t||t>=64||!e||console.warn('react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'),D=e},screensEnabled:function(){return H},shouldUseActivityState:!0,useTransitionProgress:y.default,isSearchBarAvailableForCurrentPlatform:b.isSearchBarAvailableForCurrentPlatform,isNewBackTitleImplementation:b.isNewBackTitleImplementation,executeNativeBackPress:b.executeNativeBackPress}}),436,[5,7,8,15,17,14,39,179,50,100,1,437,438,439,440,441,219,442,443,444,445,446,447,448,449]); __d((function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.Freeze=function(o){var u=o.freeze,c=o.children,l=o.placeholder,p=void 0===l?null:l;return(0,n.jsx)(t.Suspense,{fallback:p,children:(0,n.jsx)(f,{freeze:u,children:c})})};var t=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var f=o(n);if(f&&f.has(t))return f.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=c?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(u,l,p):u[l]=t[l]}u.default=t,f&&f.set(t,u);return u})(r(d[0])),n=r(d[1]);function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,f=new WeakMap;return(o=function(t){return t?f:n})(t)}function f(o){var f=o.freeze,u=o.children,c=(0,t.useRef)({}).current;if(f&&!c.promise)throw c.promise=new Promise((function(t){c.resolve=t})),c.promise;if(f)throw c.promise;return c.promise&&(c.resolve(),c.promise=void 0),(0,n.jsx)(t.Fragment,{children:u})}}),437,[100,219]); -__d((function(e,s,t,r,i,a,c){i.exports={name:"react-native",version:"0.73.1",description:"A framework for building native apps using React",license:"MIT",repository:{type:"git",url:"https://github.com/facebook/react-native.git",directory:"packages/react-native"},homepage:"https://reactnative.dev/",keywords:["react","react-native","android","ios","mobile","cross-platform","app-framework","mobile-development"],bugs:"https://github.com/facebook/react-native/issues",engines:{node:">=18"},bin:"./cli.js",types:"types","jest-junit":{outputDirectory:"reports/junit",outputName:"js-test-results.xml"},files:["android","build.gradle.kts","cli.js","flow","gradle.properties","gradle/libs.versions.toml","index.js","interface.js","jest-preset.js","jest","Libraries","LICENSE","local-cli","React-Core.podspec","react-native.config.js","React.podspec","React","ReactAndroid","ReactCommon","README.md","rn-get-polyfills.js","scripts/compose-source-maps.js","scripts/find-node-for-xcode.sh","scripts/generate-codegen-artifacts.js","scripts/generate-provider-cli.js","scripts/generate-specs-cli.js","scripts/codegen","!scripts/codegen/__tests__","!scripts/codegen/__test_fixtures__","scripts/hermes/hermes-utils.js","scripts/hermes/prepare-hermes-for-build.js","scripts/ios-configure-glog.sh","scripts/xcode/with-environment.sh","scripts/native_modules.rb","scripts/node-binary.sh","scripts/packager.sh","scripts/packager-reporter.js","scripts/react_native_pods_utils/script_phases.rb","scripts/react_native_pods_utils/script_phases.sh","scripts/react_native_pods.rb","scripts/cocoapods","!scripts/cocoapods/__tests__","scripts/react-native-xcode.sh","sdks/.hermesversion","sdks/hermes-engine","sdks/hermesc","settings.gradle.kts","template.config.js","template","!template/node_modules","!template/package-lock.json","!template/yarn.lock","third-party-podspecs","types"],scripts:{prepack:"cp ../../README.md ."},peerDependencies:{react:"18.2.0"},dependencies:{"@jest/create-cache-key-function":"^29.6.3","@react-native-community/cli":"12.3.0","@react-native-community/cli-platform-android":"12.3.0","@react-native-community/cli-platform-ios":"12.3.0","@react-native/assets-registry":"^0.73.1","@react-native/community-cli-plugin":"0.73.11","@react-native/codegen":"^0.73.2","@react-native/gradle-plugin":"^0.73.4","@react-native/js-polyfills":"^0.73.1","@react-native/normalize-colors":"^0.73.2","@react-native/virtualized-lists":"^0.73.4","abort-controller":"^3.0.0",anser:"^1.4.9","ansi-regex":"^5.0.0","base64-js":"^1.5.1","deprecated-react-native-prop-types":"^5.0.0","event-target-shim":"^5.0.1","flow-enums-runtime":"^0.0.6",invariant:"^2.2.4","jest-environment-node":"^29.6.3","jsc-android":"^250231.0.0","memoize-one":"^5.0.0","metro-runtime":"^0.80.0","metro-source-map":"^0.80.0",mkdirp:"^0.5.1",nullthrows:"^1.1.1","pretty-format":"^26.5.2",promise:"^8.3.0","react-devtools-core":"^4.27.7","react-refresh":"^0.14.0","react-shallow-renderer":"^16.15.0","regenerator-runtime":"^0.13.2",scheduler:"0.24.0-canary-efb381bbf-20230505","stacktrace-parser":"^0.1.10","whatwg-fetch":"^3.0.0",ws:"^6.2.2",yargs:"^17.6.2"},codegenConfig:{libraries:[{name:"FBReactNativeSpec",type:"modules",ios:{},android:{},jsSrcsDir:"Libraries"},{name:"rncore",type:"components",ios:{},android:{},jsSrcsDir:"Libraries"}]}}}),438,[]); +__d((function(e,s,t,r,i,a,c){i.exports={name:"react-native",version:"0.73.2",description:"A framework for building native apps using React",license:"MIT",repository:{type:"git",url:"https://github.com/facebook/react-native.git",directory:"packages/react-native"},homepage:"https://reactnative.dev/",keywords:["react","react-native","android","ios","mobile","cross-platform","app-framework","mobile-development"],bugs:"https://github.com/facebook/react-native/issues",engines:{node:">=18"},bin:"./cli.js",types:"types","jest-junit":{outputDirectory:"reports/junit",outputName:"js-test-results.xml"},files:["android","build.gradle.kts","cli.js","flow","gradle.properties","gradle/libs.versions.toml","index.js","interface.js","jest-preset.js","jest","Libraries","LICENSE","local-cli","React-Core.podspec","react-native.config.js","React.podspec","React","ReactAndroid","ReactCommon","README.md","rn-get-polyfills.js","scripts/compose-source-maps.js","scripts/find-node-for-xcode.sh","scripts/generate-codegen-artifacts.js","scripts/generate-provider-cli.js","scripts/generate-specs-cli.js","scripts/codegen","!scripts/codegen/__tests__","!scripts/codegen/__test_fixtures__","scripts/hermes/hermes-utils.js","scripts/hermes/prepare-hermes-for-build.js","scripts/ios-configure-glog.sh","scripts/xcode/with-environment.sh","scripts/native_modules.rb","scripts/node-binary.sh","scripts/packager.sh","scripts/packager-reporter.js","scripts/react_native_pods_utils/script_phases.rb","scripts/react_native_pods_utils/script_phases.sh","scripts/react_native_pods.rb","scripts/cocoapods","!scripts/cocoapods/__tests__","scripts/react-native-xcode.sh","sdks/.hermesversion","sdks/hermes-engine","sdks/hermesc","settings.gradle.kts","template.config.js","template","!template/node_modules","!template/package-lock.json","!template/yarn.lock","third-party-podspecs","types"],scripts:{prepack:"cp ../../README.md ."},peerDependencies:{react:"18.2.0"},dependencies:{"@jest/create-cache-key-function":"^29.6.3","@react-native-community/cli":"12.3.0","@react-native-community/cli-platform-android":"12.3.0","@react-native-community/cli-platform-ios":"12.3.0","@react-native/assets-registry":"0.73.1","@react-native/community-cli-plugin":"0.73.12","@react-native/codegen":"0.73.2","@react-native/gradle-plugin":"0.73.4","@react-native/js-polyfills":"0.73.1","@react-native/normalize-colors":"0.73.2","@react-native/virtualized-lists":"0.73.4","abort-controller":"^3.0.0",anser:"^1.4.9","ansi-regex":"^5.0.0","base64-js":"^1.5.1","deprecated-react-native-prop-types":"^5.0.0","event-target-shim":"^5.0.1","flow-enums-runtime":"^0.0.6",invariant:"^2.2.4","jest-environment-node":"^29.6.3","jsc-android":"^250231.0.0","memoize-one":"^5.0.0","metro-runtime":"^0.80.3","metro-source-map":"^0.80.3",mkdirp:"^0.5.1",nullthrows:"^1.1.1","pretty-format":"^26.5.2",promise:"^8.3.0","react-devtools-core":"^4.27.7","react-refresh":"^0.14.0","react-shallow-renderer":"^16.15.0","regenerator-runtime":"^0.13.2",scheduler:"0.24.0-canary-efb381bbf-20230505","stacktrace-parser":"^0.1.10","whatwg-fetch":"^3.0.0",ws:"^6.2.2",yargs:"^17.6.2"},codegenConfig:{libraries:[{name:"FBReactNativeSpec",type:"modules",ios:{},android:{},jsSrcsDir:"Libraries"},{name:"rncore",type:"components",ios:{},android:{},jsSrcsDir:"Libraries"}]}}}),438,[]); __d((function(g,r,i,a,m,e,d){function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(t=function(t){return t?u:o})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var u=t(o);if(u&&u.has(n))return u.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,u&&u.set(n,f);return f})(r(d[0])).createContext(void 0);e.default=n}),439,[100]); __d((function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=n.useContext(o.default);if(void 0===t)throw new Error("Couldn't find values for transition progress. Are you inside a screen in Native Stack?");return t};var n=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=u(n);if(o&&o.has(t))return o.get(t);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=c?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=t[l]}f.default=t,o&&o.set(t,f);return f})(r(d[1])),o=t(r(d[2]));function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(u=function(t){return t?o:n})(t)}}),440,[5,100,439]); __d((function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.executeNativeBackPress=function(){return t.BackHandler.exitApp(),!0},e.isSearchBarAvailableForCurrentPlatform=e.isNewBackTitleImplementation=void 0;var t=r(d[0]),n=['ios','android'].includes("ios");e.isSearchBarAvailableForCurrentPlatform=n;e.isNewBackTitleImplementation=!0}),441,[1]); diff --git a/packages/expo-dev-menu/package.json b/packages/expo-dev-menu/package.json index f79c20d614c02..d13533b036a20 100644 --- a/packages/expo-dev-menu/package.json +++ b/packages/expo-dev-menu/package.json @@ -63,7 +63,7 @@ "graphql": "^15.3.0", "graphql-tag": "^2.10.1", "react": "18.2.0", - "react-native": "0.73.1", + "react-native": "0.73.2", "use-subscription": "^1.8.0", "url": "^0.11.0" }, diff --git a/packages/expo/CHANGELOG.md b/packages/expo/CHANGELOG.md index 4ea41636ef1bd..5b97b8eeb4ed0 100644 --- a/packages/expo/CHANGELOG.md +++ b/packages/expo/CHANGELOG.md @@ -10,6 +10,10 @@ ### 💡 Others +### 📚 3rd party library updates + +- Update react-native to 0.73.2. ([#26308](https://github.com/expo/expo/pull/26308) by [@gabrieldonadel](https://github.com/gabrieldonadel)) + ## 50.0.0-preview.8 — 2024-01-05 _This version does not introduce any user-facing changes._ diff --git a/packages/expo/bundledNativeModules.json b/packages/expo/bundledNativeModules.json index 06ba79508f0da..fd96f13d350af 100644 --- a/packages/expo/bundledNativeModules.json +++ b/packages/expo/bundledNativeModules.json @@ -83,7 +83,7 @@ "lottie-react-native": "6.4.1", "react": "18.2.0", "react-dom": "18.2.0", - "react-native": "0.73.1", + "react-native": "0.73.2", "react-native-web": "~0.19.6", "react-native-gesture-handler": "~2.14.0", "react-native-get-random-values": "~1.8.0", diff --git a/packages/expo/package.json b/packages/expo/package.json index 7dcb32e0e8be6..1c5fdfd5d1d25 100644 --- a/packages/expo/package.json +++ b/packages/expo/package.json @@ -81,6 +81,6 @@ "expo-module-scripts": "^3.4.0", "react": "18.2.0", "react-dom": "18.2.0", - "react-native": "0.73.1" + "react-native": "0.73.2" } } diff --git a/react-native-lab/react-native b/react-native-lab/react-native index 99a4c9fca2c40..99d69297589e8 160000 --- a/react-native-lab/react-native +++ b/react-native-lab/react-native @@ -1 +1 @@ -Subproject commit 99a4c9fca2c40d77dc20235cd5103a427116fa8b +Subproject commit 99d69297589e88224eee59bb7801121bcc1b2dab diff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json index ec2759d642381..fd1cd533880e5 100644 --- a/templates/expo-template-bare-minimum/package.json +++ b/templates/expo-template-bare-minimum/package.json @@ -13,7 +13,7 @@ "expo": "~50.0.0-preview.8", "expo-status-bar": "~1.11.1", "react": "18.2.0", - "react-native": "0.73.1" + "react-native": "0.73.2" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/templates/expo-template-blank-typescript/package.json b/templates/expo-template-blank-typescript/package.json index af28df5068409..dd6955badcd21 100644 --- a/templates/expo-template-blank-typescript/package.json +++ b/templates/expo-template-blank-typescript/package.json @@ -13,7 +13,7 @@ "expo": "~50.0.0-preview.8", "expo-status-bar": "~1.11.1", "react": "18.2.0", - "react-native": "0.73.1" + "react-native": "0.73.2" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/templates/expo-template-blank/package.json b/templates/expo-template-blank/package.json index e7dc09f4fe27e..dfd4a148f6f46 100644 --- a/templates/expo-template-blank/package.json +++ b/templates/expo-template-blank/package.json @@ -13,7 +13,7 @@ "expo": "~50.0.0-preview.8", "expo-status-bar": "~1.11.1", "react": "18.2.0", - "react-native": "0.73.1" + "react-native": "0.73.2" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/templates/expo-template-tabs/package.json b/templates/expo-template-tabs/package.json index ba577aa833c4b..991ff2b8a5d68 100644 --- a/templates/expo-template-tabs/package.json +++ b/templates/expo-template-tabs/package.json @@ -26,7 +26,7 @@ "expo-web-browser": "~12.8.1", "react": "18.2.0", "react-dom": "18.2.0", - "react-native": "0.73.1", + "react-native": "0.73.2", "react-native-safe-area-context": "4.7.4", "react-native-screens": "~3.27.0", "react-native-web": "~0.19.6" diff --git a/yarn.lock b/yarn.lock index 25572b48552b9..c3c83c5c8fa83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3304,22 +3304,22 @@ resolved "https://registry.yarnpkg.com/@react-native-segmented-control/segmented-control/-/segmented-control-2.4.1.tgz#ea612c8b12bfea7712c7ea456b7b98dfc6748485" integrity sha512-c8Q7TP14CD6vJ38VO5SWoIcxfwLPIz/4zRKJnJOJ0xKkMxkrUu089m86Y0dSvo+T3c1NQyvBFRtKWrPqbqG6tg== -"@react-native/assets-registry@^0.73.1", "@react-native/assets-registry@~0.73.1": +"@react-native/assets-registry@0.73.1", "@react-native/assets-registry@~0.73.1": version "0.73.1" resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.73.1.tgz#e2a6b73b16c183a270f338dc69c36039b3946e85" integrity sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg== -"@react-native/babel-plugin-codegen@*": - version "0.74.0" - resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.0.tgz#01ba90840e23c6d1fbf739f75cce1d0f5be97bfa" - integrity sha512-xAM/eVSb5LBkKue3bDZgt76bdsGGzKeF/iEzUNbDTwRQrB3Q5GoceGNM/zVlF+z1xGAkr3jhL+ZyITZGSoIlgw== +"@react-native/babel-plugin-codegen@0.73.2": + version "0.73.2" + resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.2.tgz#447656cde437b71dc3ef0af3f8a5b215653d5d07" + integrity sha512-PadyFZWVaWXIBP7Q5dgEL7eAd7tnsgsLjoHJB1hIRZZuVUg1Zqe3nULwC7RFAqOtr5Qx7KXChkFFcKQ3WnZzGw== dependencies: - "@react-native/codegen" "*" + "@react-native/codegen" "0.73.2" -"@react-native/babel-preset@*": - version "0.74.0" - resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.74.0.tgz#1d933f7737549a6c54f8c808c3ccb452be5f7cbb" - integrity sha512-k+1aaYQeLn+GBmGA5Qs3NKI8uzhLvRRMML+pB/+43ZL6DvCklbuJ5KO5oqRRpF3KZ2t/VKUqqSichpXfFrXGjg== +"@react-native/babel-preset@0.73.19", "@react-native/babel-preset@^0.73.18": + version "0.73.19" + resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.73.19.tgz#a6c0587651804f8f01d6f3b7729f1d4a2d469691" + integrity sha512-ujon01uMOREZecIltQxPDmJ6xlVqAUFGI/JCSpeVYdxyXBoBH5dBb0ihj7h6LKH1q1jsnO9z4MxfddtypKkIbg== dependencies: "@babel/core" "^7.20.0" "@babel/plugin-proposal-async-generator-functions" "^7.0.0" @@ -3360,69 +3360,11 @@ "@babel/plugin-transform-typescript" "^7.5.0" "@babel/plugin-transform-unicode-regex" "^7.0.0" "@babel/template" "^7.0.0" - "@react-native/babel-plugin-codegen" "*" + "@react-native/babel-plugin-codegen" "0.73.2" babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.14.0" -"@react-native/babel-preset@^0.73.18": - version "0.73.18" - resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.73.18.tgz#0ff24ba35102d9ac071de8ab10706ccaee5e3e6f" - integrity sha512-FzPasmazoX9WZnmwotk6SK9ydiExdqS4Xt5VaukPoY9u8u3AUUODzqjTsWSOxjFD9eRF3Knyg5H8JMDe6pj5wQ== - dependencies: - "@babel/core" "^7.20.0" - "@babel/plugin-proposal-async-generator-functions" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.18.0" - "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0" - "@babel/plugin-proposal-numeric-separator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.20.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-export-default-from" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.18.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-syntax-optional-chaining" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-async-to-generator" "^7.20.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.20.0" - "@babel/plugin-transform-flow-strip-types" "^7.20.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.11" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - "@babel/plugin-transform-runtime" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.5.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - "@babel/template" "^7.0.0" - "@react-native/babel-plugin-codegen" "*" - babel-plugin-transform-flow-enums "^0.0.2" - react-refresh "^0.14.0" - -"@react-native/codegen@*": - version "0.74.0" - resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.74.0.tgz#59ae487528f828481beec017b12abab5bd077fe4" - integrity sha512-Y01QK7Ae789su7qgjOZiRyrsfOaD+oiHEpbAqqnGB6UmuTiS77gMFH8hzU45Hu4bC2iTP7FG5/5YvlzbSmR82g== - dependencies: - "@babel/parser" "^7.20.0" - flow-parser "^0.206.0" - jscodeshift "^0.14.0" - nullthrows "^1.1.1" - -"@react-native/codegen@^0.73.2": +"@react-native/codegen@0.73.2": version "0.73.2" resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.73.2.tgz#58af4e4c3098f0e6338e88ec64412c014dd51519" integrity sha512-lfy8S7umhE3QLQG5ViC4wg5N1Z+E6RnaeIw8w1voroQsXXGPB72IBozh8dAHR3+ceTxIU0KX3A8OpJI8e1+HpQ== @@ -3435,35 +3377,35 @@ mkdirp "^0.5.1" nullthrows "^1.1.1" -"@react-native/community-cli-plugin@0.73.11": - version "0.73.11" - resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.11.tgz#8826cb81bb794408202e1ce7d87e45710eff1a9f" - integrity sha512-s0bprwljKS1Al8wOKathDDmRyF+70CcNE2G/aqZ7+L0NoOE0Uxxx/5P2BxlM2Mfht7O33B4SeMNiPdE/FqIubQ== +"@react-native/community-cli-plugin@0.73.12": + version "0.73.12" + resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.12.tgz#3a72a8cbae839a0382d1a194a7067d4ffa0da04c" + integrity sha512-xWU06OkC1cX++Duh/cD/Wv+oZ0oSY3yqbtxAqQA2H3Q+MQltNNJM6MqIHt1VOZSabRf/LVlR1JL6U9TXJirkaw== dependencies: "@react-native-community/cli-server-api" "12.3.0" "@react-native-community/cli-tools" "12.3.0" - "@react-native/dev-middleware" "^0.73.6" - "@react-native/metro-babel-transformer" "^0.73.12" + "@react-native/dev-middleware" "0.73.7" + "@react-native/metro-babel-transformer" "0.73.13" chalk "^4.0.0" execa "^5.1.1" - metro "^0.80.0" - metro-config "^0.80.0" - metro-core "^0.80.0" + metro "^0.80.3" + metro-config "^0.80.3" + metro-core "^0.80.3" node-fetch "^2.2.0" readline "^1.3.0" -"@react-native/debugger-frontend@^0.73.3": +"@react-native/debugger-frontend@0.73.3": version "0.73.3" resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.73.3.tgz#033757614d2ada994c68a1deae78c1dd2ad33c2b" integrity sha512-RgEKnWuoo54dh7gQhV7kvzKhXZEhpF9LlMdZolyhGxHsBqZ2gXdibfDlfcARFFifPIiaZ3lXuOVVa4ei+uPgTw== -"@react-native/dev-middleware@^0.73.6": - version "0.73.6" - resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.73.6.tgz#19ee210fddc3abb8eeb3da5f98711719ad032323" - integrity sha512-9SD7gIso+hO1Jy1Y/Glbd+JWQwyH7Xjnwebtkxdm5TMB51LQPjaGtMcwEigbIZyAtvoaDGmhWmudwbKpDlS+gA== +"@react-native/dev-middleware@0.73.7", "@react-native/dev-middleware@^0.73.6": + version "0.73.7" + resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.73.7.tgz#61d2bf08973d9a537fa3f2a42deeb13530d721ae" + integrity sha512-BZXpn+qKp/dNdr4+TkZxXDttfx8YobDh8MFHsMk9usouLm22pKgFIPkGBV0X8Do4LBkFNPGtrnsKkWk/yuUXKg== dependencies: "@isaacs/ttlcache" "^1.4.1" - "@react-native/debugger-frontend" "^0.73.3" + "@react-native/debugger-frontend" "0.73.3" chrome-launcher "^0.15.2" chromium-edge-launcher "^1.0.0" connect "^3.6.5" @@ -3473,24 +3415,23 @@ serve-static "^1.13.1" temp-dir "^2.0.0" -"@react-native/gradle-plugin@^0.73.4": +"@react-native/gradle-plugin@0.73.4": version "0.73.4" resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.73.4.tgz#aa55784a8c2b471aa89934db38c090d331baf23b" integrity sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg== -"@react-native/js-polyfills@^0.73.1": +"@react-native/js-polyfills@0.73.1": version "0.73.1" resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.73.1.tgz#730b0a7aaab947ae6f8e5aa9d995e788977191ed" integrity sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g== -"@react-native/metro-babel-transformer@^0.73.12": - version "0.73.12" - resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.12.tgz#6b9c391285a4e376ea4c7bc42667bed015fdeb7c" - integrity sha512-VmxN5aaoOprzDzUR+8c3XYhG0FoMOO6n0ToylCW6EeZCuf5RTY7HWVOhacabGoB1mHrWzJ0wWEsqX+eD4iFxoA== +"@react-native/metro-babel-transformer@0.73.13": + version "0.73.13" + resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.13.tgz#81cb6dd8d5140c57f5595183fd6857feb8b7f5d7" + integrity sha512-k9AQifogQfgUXPlqQSoMtX2KUhniw4XvJl+nZ4hphCH7qiMDAwuP8OmkJbz5E/N+Ro9OFuLE7ax4GlwxaTsAWg== dependencies: "@babel/core" "^7.20.0" - "@react-native/babel-preset" "*" - babel-preset-fbjs "^3.4.0" + "@react-native/babel-preset" "0.73.19" hermes-parser "0.15.0" nullthrows "^1.1.1" @@ -3499,12 +3440,12 @@ resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.1.0.tgz#939b87a9849e81687d3640c5efa2a486ac266f91" integrity sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA== -"@react-native/normalize-colors@^0.73.0", "@react-native/normalize-colors@^0.73.2": +"@react-native/normalize-colors@0.73.2", "@react-native/normalize-colors@^0.73.0": version "0.73.2" resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.73.2.tgz#cc8e48fbae2bbfff53e12f209369e8d2e4cf34ec" integrity sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w== -"@react-native/virtualized-lists@^0.73.4": +"@react-native/virtualized-lists@0.73.4": version "0.73.4" resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.73.4.tgz#640e594775806f63685435b5d9c3d05c378ccd8c" integrity sha512-HpmLg1FrEiDtrtAbXiwCgXFYyloK/dOIPIuWW3fsqukwJEWAiTzm1nXGJ7xPU5XTHiWZ4sKup5Ebaj8z7iyWog== @@ -11085,10 +11026,10 @@ hermes-estree@0.15.0: resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.15.0.tgz#e32f6210ab18c7b705bdcb375f7700f2db15d6ba" integrity sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ== -hermes-estree@0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.17.0.tgz#4b1b0d8131826178f0af79a317ceaca3723e9012" - integrity sha512-bW9+bMZqnro+0+l6dUqTJW0VaNUvs4HRHh/J7VotTGnMmhBFRIcJz6ZxrRE7xIXmK7S5bJE9qrEooSiig4N70g== +hermes-estree@0.18.2: + version "0.18.2" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.18.2.tgz#fd450fa1659cf074ceaa2ddeeb21674f3b2342f3" + integrity sha512-KoLsoWXJ5o81nit1wSyEZnWUGy9cBna9iYMZBR7skKh7okYAYKqQ9/OczwpMHn/cH0hKDyblulGsJ7FknlfVxQ== hermes-parser@0.15.0: version "0.15.0" @@ -11097,12 +11038,12 @@ hermes-parser@0.15.0: dependencies: hermes-estree "0.15.0" -hermes-parser@0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.17.0.tgz#722bb8079b9081a0de4902b770d5d45dbeb380bd" - integrity sha512-2fmppmZheY1UU071EMKAzXfuUCiDXF3fmzKLuN1XmE3+njIFs3CAeKP88+FtNBUpS6pEMJv6lPXCaJGqGsrURQ== +hermes-parser@0.18.2: + version "0.18.2" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.18.2.tgz#50f15e2fcd559a48c68cd7af259d4292298bd14d" + integrity sha512-1eQfvib+VPpgBZ2zYKQhpuOjw1tH+Emuib6QmjkJWJMhyjM8xnXMvA+76o9LhF0zOAJDZgPfQhg43cyXEyl5Ew== dependencies: - hermes-estree "0.17.0" + hermes-estree "0.18.2" hermes-profile-transformer@^0.0.6: version "0.0.6" @@ -13806,53 +13747,53 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -metro-babel-transformer@0.80.0: - version "0.80.0" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.80.0.tgz#e24942c618f26c4522848e44c78235035830bdae" - integrity sha512-eWi7FKL43tDZkTVbHiYXRiGP11UxKKKv/lwL0rGe/KbjqrmAGh/tYR2RUvBnB38rKw61mE6TjjXhqt3qTx6AaQ== +metro-babel-transformer@0.80.3: + version "0.80.3" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.80.3.tgz#f1431682a02473c004912ed6e44777b0c88e3d86" + integrity sha512-Si1GO9fhiLi3DfHseFDaZcU+Y6iYHx54rszILnBIx80aas3pRZpL3z/UsEZ7coTQZTFsblt2QDIE+Izxlq4mwQ== dependencies: "@babel/core" "^7.20.0" - hermes-parser "0.17.0" + hermes-parser "0.18.2" nullthrows "^1.1.1" -metro-cache-key@0.80.0: - version "0.80.0" - resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.80.0.tgz#e254c2485ad9056df2c03764edb7101fa39be9c4" - integrity sha512-krzVDWxrgoxYEOg2QBa3U2CSZjlRXSmr0XQExtjywkFkOIIlhsM8GxYBMA7NZQaxdB+vWgG6OwWFq/C43XqeaA== +metro-cache-key@0.80.3: + version "0.80.3" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.80.3.tgz#94a5ab0ccf4ebf5158ebe0c9c757526e02fa4e9b" + integrity sha512-WNrtDpbhtW2Yqjp1t0WxJhKNR/Zbo1LZ4WvHsdv/PraAs2mr+SaM5bbiptBSKOOGJkV/FIQveW5riZi53JnCbw== -metro-cache@0.80.0: - version "0.80.0" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.80.0.tgz#75c3e1835d01581f85f0be47233c16be79908d24" - integrity sha512-8KPox3DJfRCx1X56oHRxIoHzP5eOt72OoMpTFRSlerXq513iGQju2g6L/UBouDot5oWw9ERZvjmg4tq+DZp7vw== +metro-cache@0.80.3: + version "0.80.3" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.80.3.tgz#89e6358d9f8940acdc7d4b5a1eb00ed8c45bca17" + integrity sha512-7gHcOIXdAHCBzsovF4b+VgcfIZtCpCIFiT2zx9amU58xrmkx+PRIl1KZDIUfRBbGrO9HJtZxH7lr7/hoiLIUWA== dependencies: - metro-core "0.80.0" + metro-core "0.80.3" rimraf "^3.0.2" -metro-config@0.80.0, metro-config@^0.80.0: - version "0.80.0" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.80.0.tgz#ef4c3a33dce6c9def35efcc5a7bc9e4d13ebd8d5" - integrity sha512-7BUh8Sun6tMNu1yEJV7O4MgE11cPPjfK3oquDA3Je33GtMLMr7lx19bLkhCPfwvWIEBsVYqZvao9lKTJmLbeIQ== +metro-config@0.80.3, metro-config@^0.80.3: + version "0.80.3" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.80.3.tgz#30fbbbd443690c333668243c4f264dfe7537a380" + integrity sha512-cE7KPT1Usdrd2nLEVpzukKWmeBU1PufHPkuD9BjjtoABbzdj35gMLDnK+mhjSq9km2vF2QEPtE0M+WKvq9pXfQ== dependencies: connect "^3.6.5" cosmiconfig "^5.0.5" jest-validate "^29.6.3" - metro "0.80.0" - metro-cache "0.80.0" - metro-core "0.80.0" - metro-runtime "0.80.0" + metro "0.80.3" + metro-cache "0.80.3" + metro-core "0.80.3" + metro-runtime "0.80.3" -metro-core@0.80.0, metro-core@^0.80.0: - version "0.80.0" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.80.0.tgz#9ab9af682fb7789f0d4566ccd01b4c90da1aa90f" - integrity sha512-VADfL3+DN4fLwIESEBtYfITwBgxcm0b6sqL7YCKefrpDqVPTEERyUftu6WLCm1XfDBhBfEjMOzIt08sXbUwG5w== +metro-core@0.80.3, metro-core@^0.80.3: + version "0.80.3" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.80.3.tgz#066407be0cee413f5d1a52ebb64d123eaa0fb388" + integrity sha512-X2ZfAvR55TdD/Rv9i4gYVI68JpRPHcpKpkr6IVtidFPoNjf4Fodh1qH7gEAJUnO5FL3a1JyPffbW6eFaXPxkFw== dependencies: lodash.throttle "^4.1.1" - metro-resolver "0.80.0" + metro-resolver "0.80.3" -metro-file-map@0.80.0: - version "0.80.0" - resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.80.0.tgz#111d1382801ed8606baa94ee7a5000c0bb47ab44" - integrity sha512-GuGfqM2WMo1w1A+0xRvyfzuzAN8uLRIpbTebPzCWp/LFgolSkwTILZZddmeZ7ipS0qMU3NuZWLIy1GttI+BsAA== +metro-file-map@0.80.3: + version "0.80.3" + resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.80.3.tgz#d690b8f5ddacc268084ad12878636b2653e87711" + integrity sha512-4qu1ABPZRvboGGB8Q2RlQ26kZRWRCMDiktgCCrX/57V6cnWgdbdTrpnsgmU3i0Q7iiw+FevOGlfD4HqdauQ59g== dependencies: anymatch "^3.0.3" debug "^2.2.0" @@ -13867,55 +13808,55 @@ metro-file-map@0.80.0: optionalDependencies: fsevents "^2.3.2" -metro-minify-terser@0.80.0: - version "0.80.0" - resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.80.0.tgz#b05420bf444b6f536bb390f1fc64e82b4a48cbbf" - integrity sha512-QuOI4rnHsFBDzPrU/0MyFh7LG4afW0e45plxc3LIrYIxJK2R8oqjLOizKS0OJx3uNMx53S2zv/G19nGwBGc7jQ== +metro-minify-terser@0.80.3: + version "0.80.3" + resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.80.3.tgz#a9fd39b512cd85a43a7c125af7f6d7f3d6fdd8cd" + integrity sha512-gVFwoL86emFoYbI2DZKk1Ved2CklYv//huWriF0UpLJHmVEO9ii2ajTx3aIxgSeuxFLPJhdp8RgUB2EDCooaJw== dependencies: terser "^5.15.0" -metro-resolver@0.80.0: - version "0.80.0" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.80.0.tgz#5d9db1f58b54d9d66af2c98ddd1e6ba4bca5dbf0" - integrity sha512-w+8Npbc1G33jwtAg0vAtelhIAYr6nTh/podz2JDURgvyNzc2On8B0Oaav2kKWn4X9cTozZbY1vxMIWY7uXeYew== +metro-resolver@0.80.3: + version "0.80.3" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.80.3.tgz#f9676508583d81182c7afaabc908254dc928a345" + integrity sha512-zwa0i32rj/TI3NivcvMXHJwTG2gUgo2dXdcnAJlhEKKQvyN+7AfhNdQSlDdDqMQmU7FaLRdeWORnQJbYCrprQQ== -metro-runtime@0.80.0, metro-runtime@^0.80.0: - version "0.80.0" - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.80.0.tgz#60918bd04654926775f9cf1b7e96e35ba36cc0a1" - integrity sha512-VRWfDFOHeuHZmoMjUIDzzvTXksQ27QIbqls9W5DQhWKb9PnQ+tzPubqdtQFqfbjFAeH+t+t0zNQGoYPsNqex3g== +metro-runtime@0.80.3, metro-runtime@^0.80.3: + version "0.80.3" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.80.3.tgz#8bf371f2bcd5ae332855fa40089c3b6f2a4f0aa1" + integrity sha512-16RKcwpxriNnPdE5eKWJu7/KLgxE+AaDAdYthoS6zbzjaOu7RiY2zPM1Elz175Rw//74kOwtKXgxTW8ADHB8SQ== dependencies: "@babel/runtime" "^7.0.0" -metro-source-map@0.80.0, metro-source-map@^0.80.0: - version "0.80.0" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.80.0.tgz#a1627595b00c81247c7aab91ff391856b0c2a9e9" - integrity sha512-vFLAxsS0Gg0oCgJHbMZ+46HPCYfvbgAmvj3PufNpjTmbEYd+fxZN+lq8MM01oG5Q8t1/eXVtOP6gNETVstSrQg== +metro-source-map@0.80.3, metro-source-map@^0.80.3: + version "0.80.3" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.80.3.tgz#25d88b05cb3383e9802d7543e29a57deacca07d7" + integrity sha512-5DYcOLPjDLx84ZCZ1i0DuWSPU7AY5G/7tR+u/WN6CZNxLyYEe3TwUBdIUgQj4HgZJl/zZ/7bGYJQOHd7ubuO0w== dependencies: "@babel/traverse" "^7.20.0" "@babel/types" "^7.20.0" invariant "^2.2.4" - metro-symbolicate "0.80.0" + metro-symbolicate "0.80.3" nullthrows "^1.1.1" - ob1 "0.80.0" + ob1 "0.80.3" source-map "^0.5.6" vlq "^1.0.0" -metro-symbolicate@0.80.0: - version "0.80.0" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.80.0.tgz#4c8cb446ce044e1ce34f8d6e6825fa75bbbf8ad1" - integrity sha512-rtQN55nRR4mYpeF0ysN7Gtn5+yhQegH4fmJZKSYZuzHSlCzy5lOBIRKCuWZjAPJr2yeLQiWrkill6gch6ETsJw== +metro-symbolicate@0.80.3: + version "0.80.3" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.80.3.tgz#7c7dacad94db3ef6a8576eff7efd32510d24a022" + integrity sha512-baIt8Ss2vTGbxolRTa5yg+tKVAIAB1OpwMzJ0FSUjLs+HDAzaOtSpGbNd3DPc+pzX8Gj/rdbDOA0wPuOhVsHKQ== dependencies: invariant "^2.2.4" - metro-source-map "0.80.0" + metro-source-map "0.80.3" nullthrows "^1.1.1" source-map "^0.5.6" through2 "^2.0.1" vlq "^1.0.0" -metro-transform-plugins@0.80.0: - version "0.80.0" - resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.80.0.tgz#69b5deee268897a76cde65bef9b73ae23c17c33b" - integrity sha512-didB964HD0KVmEHJ6qt5jBdqVib53YDMfDN04YHFmZYd8WvqSzkmMb5wvyo/lClOWpPqjwBx3lheONgoRrerTQ== +metro-transform-plugins@0.80.3: + version "0.80.3" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.80.3.tgz#2e082db3ee96175351fd6eaa2ee686c948f349da" + integrity sha512-/2hGGRdJPrNfB9lz8unukaqQpGpDhYwNM0Odfh37OVFjygMB30Ffd8neQ4FNqnHnFxhl5j8VTcopUg6QhygMGQ== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" @@ -13923,27 +13864,27 @@ metro-transform-plugins@0.80.0: "@babel/traverse" "^7.20.0" nullthrows "^1.1.1" -metro-transform-worker@0.80.0: - version "0.80.0" - resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.80.0.tgz#5b24b91755720a4cbcd607f1694d234d9f3c2f8b" - integrity sha512-tXMvmhZZZwNw78TAPtwud1NgSzzVOx9BZ3QN3P9FpAHIsPNjnKmigVdZIk0THAb4qidUPgLOoSZXodqswvZnpg== +metro-transform-worker@0.80.3: + version "0.80.3" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.80.3.tgz#33325ca9da22d2f9dcf6e63c6da608b2fb2ca4cc" + integrity sha512-10ZwMDuSWyHwqNnZ50baNtHNuHhOnqThbTOgv03PsrmPHWmSv4/rrmm7711tEyLUxptY3A1hEgJ+LKYyOIQiUA== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" "@babel/parser" "^7.20.0" "@babel/types" "^7.20.0" - metro "0.80.0" - metro-babel-transformer "0.80.0" - metro-cache "0.80.0" - metro-cache-key "0.80.0" - metro-source-map "0.80.0" - metro-transform-plugins "0.80.0" + metro "0.80.3" + metro-babel-transformer "0.80.3" + metro-cache "0.80.3" + metro-cache-key "0.80.3" + metro-source-map "0.80.3" + metro-transform-plugins "0.80.3" nullthrows "^1.1.1" -metro@0.80.0, metro@^0.80.0: - version "0.80.0" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.80.0.tgz#422abcdb8f2883bdc4c0bb2f63da9656a98d6ffc" - integrity sha512-wTXHLGMzWVfU/pxJcyHhuOCFUCgB626XqltIXPoOta54ltHgvigRvWAjI5R+A53QVab6Imzgq3kz/VK1udflgw== +metro@0.80.3, metro@^0.80.3: + version "0.80.3" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.80.3.tgz#9f45fdeecb5f9cb017a44466a8a1fb6db6dc771c" + integrity sha512-7u6HjWVQR7wA/HbxzB0n6iQ0GI9s/fr49N++dZQ41BcrcFxrguIGaRe4W8VI5DtYifCVCjXDIFw6e9+MAccx/Q== dependencies: "@babel/code-frame" "^7.0.0" "@babel/core" "^7.20.0" @@ -13960,25 +13901,25 @@ metro@0.80.0, metro@^0.80.0: denodeify "^1.2.1" error-stack-parser "^2.0.6" graceful-fs "^4.2.4" - hermes-parser "0.17.0" + hermes-parser "0.18.2" image-size "^1.0.2" invariant "^2.2.4" jest-worker "^29.6.3" jsc-safe-url "^0.2.2" lodash.throttle "^4.1.1" - metro-babel-transformer "0.80.0" - metro-cache "0.80.0" - metro-cache-key "0.80.0" - metro-config "0.80.0" - metro-core "0.80.0" - metro-file-map "0.80.0" - metro-minify-terser "0.80.0" - metro-resolver "0.80.0" - metro-runtime "0.80.0" - metro-source-map "0.80.0" - metro-symbolicate "0.80.0" - metro-transform-plugins "0.80.0" - metro-transform-worker "0.80.0" + metro-babel-transformer "0.80.3" + metro-cache "0.80.3" + metro-cache-key "0.80.3" + metro-config "0.80.3" + metro-core "0.80.3" + metro-file-map "0.80.3" + metro-minify-terser "0.80.3" + metro-resolver "0.80.3" + metro-runtime "0.80.3" + metro-source-map "0.80.3" + metro-symbolicate "0.80.3" + metro-transform-plugins "0.80.3" + metro-transform-worker "0.80.3" mime-types "^2.1.27" node-fetch "^2.2.0" nullthrows "^1.1.1" @@ -14838,10 +14779,10 @@ nwsapi@^2.2.2: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== -ob1@0.80.0: - version "0.80.0" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.80.0.tgz#a412f40a012f28473cfc8234c005154ae228f87b" - integrity sha512-z9MQc90AhCWyTv64CeVrjNJC5MczhWNOO30gco6ct2ZtpGMlrz3eEgSrXaAI3WUsFk3nsjCB+OTAP1G2OoXgzA== +ob1@0.80.3: + version "0.80.3" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.80.3.tgz#dd867fdf1ffe7863a3b32dc36dc220335a6e55f9" + integrity sha512-lKJ/Wp6eSyYKYKYds1lgiDRtD2j9nNhrhx4hwegxYXTBkWz4dqermZV+Bq0iw0SszUIb+fC+btNSXwc4AG1lBQ== object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" @@ -16814,22 +16755,22 @@ react-native-webview@13.6.3: escape-string-regexp "2.0.0" invariant "2.2.4" -react-native@0.73.1: - version "0.73.1" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.1.tgz#5eafaa7e54feeab8b55e8b8e4efc4d21052a4fff" - integrity sha512-nLl9O2yKRh1nMXwsk4SUiD0ddd19RqlKgNU9AU8bTK/zD2xwnVOG56YK1/22SN67niWyoeG83vVg1eTk+S6ReA== +react-native@0.73.2: + version "0.73.2" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.2.tgz#74ee163c8189660d41d1da6560411da7ce41a608" + integrity sha512-7zj9tcUYpJUBdOdXY6cM8RcXYWkyql4kMyGZflW99E5EuFPoC7Ti+ZQSl7LP9ZPzGD0vMfslwyDW0I4tPWUCFw== dependencies: "@jest/create-cache-key-function" "^29.6.3" "@react-native-community/cli" "12.3.0" "@react-native-community/cli-platform-android" "12.3.0" "@react-native-community/cli-platform-ios" "12.3.0" - "@react-native/assets-registry" "^0.73.1" - "@react-native/codegen" "^0.73.2" - "@react-native/community-cli-plugin" "0.73.11" - "@react-native/gradle-plugin" "^0.73.4" - "@react-native/js-polyfills" "^0.73.1" - "@react-native/normalize-colors" "^0.73.2" - "@react-native/virtualized-lists" "^0.73.4" + "@react-native/assets-registry" "0.73.1" + "@react-native/codegen" "0.73.2" + "@react-native/community-cli-plugin" "0.73.12" + "@react-native/gradle-plugin" "0.73.4" + "@react-native/js-polyfills" "0.73.1" + "@react-native/normalize-colors" "0.73.2" + "@react-native/virtualized-lists" "0.73.4" abort-controller "^3.0.0" anser "^1.4.9" ansi-regex "^5.0.0" @@ -16841,8 +16782,8 @@ react-native@0.73.1: jest-environment-node "^29.6.3" jsc-android "^250231.0.0" memoize-one "^5.0.0" - metro-runtime "^0.80.0" - metro-source-map "^0.80.0" + metro-runtime "^0.80.3" + metro-source-map "^0.80.3" mkdirp "^0.5.1" nullthrows "^1.1.1" pretty-format "^26.5.2"