From 91ff35b2af291af1827b295129d7477dd45c7bd6 Mon Sep 17 00:00:00 2001 From: Gabriel Donadel Date: Thu, 7 Mar 2024 12:39:59 -0300 Subject: [PATCH 1/7] [react-native-lab] Update to 0.73.5 --- react-native-lab/react-native | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/react-native-lab/react-native b/react-native-lab/react-native index 0164c298f7eb4..fb8c9b6735228 160000 --- a/react-native-lab/react-native +++ b/react-native-lab/react-native @@ -1 +1 @@ -Subproject commit 0164c298f7eb46f88b8ccfff9f0c8eb491a3830d +Subproject commit fb8c9b6735228c6ff0de6901b87663b6e3b12318 From 884c64e3dad55f6bed0877d5d5da0406560b49f5 Mon Sep 17 00:00:00 2001 From: Gabriel Donadel Date: Thu, 7 Mar 2024 12:50:40 -0300 Subject: [PATCH 2/7] update react-native 0.73.5 in packages --- apps/bare-expo/ios/Podfile.lock | 488 ++++++------- apps/bare-expo/package.json | 2 +- apps/fabric-tester/ios/Podfile.lock | 528 +++++++------- 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 | 644 ++++++++++-------- apps/native-tests/package.json | 2 +- apps/router-e2e/package.json | 2 +- apps/sandbox/package.json | 2 +- apps/test-suite/package.json | 2 +- home/package.json | 2 +- ios/Podfile.lock | 490 +++++++------ package.json | 2 +- packages/expo-dev-launcher/package.json | 2 +- packages/expo-dev-menu/package.json | 2 +- packages/expo/bundledNativeModules.json | 2 +- packages/expo/package.json | 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 | 181 +++-- 23 files changed, 1203 insertions(+), 1164 deletions(-) diff --git a/apps/bare-expo/ios/Podfile.lock b/apps/bare-expo/ios/Podfile.lock index a5ee948d21929..34c5c86d9af59 100644 --- a/apps/bare-expo/ios/Podfile.lock +++ b/apps/bare-expo/ios/Podfile.lock @@ -43,7 +43,7 @@ PODS: - React-Core - EXNotifications (0.27.6): - ExpoModulesCore - - Expo (50.0.9): + - Expo (50.0.11): - ExpoModulesCore - expo-dev-client (3.3.9): - EXManifests @@ -154,7 +154,7 @@ PODS: - ExpoModulesCore - ExpoBrightness (11.8.0): - ExpoModulesCore - - ExpoCamera (14.0.5): + - ExpoCamera (14.0.6): - ExpoModulesCore - ZXingObjC/OneD - ZXingObjC/PDF417 @@ -171,9 +171,9 @@ PODS: - ExpoModulesCore - ExpoDocumentPicker (11.10.1): - ExpoModulesCore - - ExpoFileSystem (16.0.7): + - ExpoFileSystem (16.0.8): - ExpoModulesCore - - ExpoFileSystem/Tests (16.0.7): + - ExpoFileSystem/Tests (16.0.8): - ExpoModulesCore - ExpoModulesTestCore - ExpoGL (13.6.0): @@ -278,14 +278,14 @@ PODS: - ExpoModulesCore - UMAppLoader - EXUpdatesInterface (0.15.3) - - FBLazyVector (0.73.4) - - FBReactNativeSpec (0.73.4): + - FBLazyVector (0.73.5) + - FBReactNativeSpec (0.73.5): - RCT-Folly (= 2022.05.16.00) - - RCTRequired (= 0.73.4) - - RCTTypeSafety (= 0.73.4) - - React-Core (= 0.73.4) - - React-jsi (= 0.73.4) - - ReactCommon/turbomodule/core (= 0.73.4) + - RCTRequired (= 0.73.5) + - RCTTypeSafety (= 0.73.5) + - React-Core (= 0.73.5) + - React-jsi (= 0.73.5) + - ReactCommon/turbomodule/core (= 0.73.5) - 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.4): - - hermes-engine/Pre-built (= 0.73.4) - - hermes-engine/Pre-built (0.73.4) + - hermes-engine (0.73.5): + - hermes-engine/Pre-built (= 0.73.5) + - hermes-engine/Pre-built (0.73.5) - 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.4) - - RCTTypeSafety (0.73.4): - - FBLazyVector (= 0.73.4) - - RCTRequired (= 0.73.4) - - React-Core (= 0.73.4) - - React (0.73.4): - - React-Core (= 0.73.4) - - React-Core/DevSupport (= 0.73.4) - - React-Core/RCTWebSocket (= 0.73.4) - - React-RCTActionSheet (= 0.73.4) - - React-RCTAnimation (= 0.73.4) - - React-RCTBlob (= 0.73.4) - - React-RCTImage (= 0.73.4) - - React-RCTLinking (= 0.73.4) - - React-RCTNetwork (= 0.73.4) - - React-RCTSettings (= 0.73.4) - - React-RCTText (= 0.73.4) - - React-RCTVibration (= 0.73.4) - - React-callinvoker (0.73.4) - - React-Codegen (0.73.4): + - RCTRequired (0.73.5) + - RCTTypeSafety (0.73.5): + - FBLazyVector (= 0.73.5) + - RCTRequired (= 0.73.5) + - React-Core (= 0.73.5) + - React (0.73.5): + - React-Core (= 0.73.5) + - React-Core/DevSupport (= 0.73.5) + - React-Core/RCTWebSocket (= 0.73.5) + - React-RCTActionSheet (= 0.73.5) + - React-RCTAnimation (= 0.73.5) + - React-RCTBlob (= 0.73.5) + - React-RCTImage (= 0.73.5) + - React-RCTLinking (= 0.73.5) + - React-RCTNetwork (= 0.73.5) + - React-RCTSettings (= 0.73.5) + - React-RCTText (= 0.73.5) + - React-RCTVibration (= 0.73.5) + - React-callinvoker (0.73.5) + - React-Codegen (0.73.5): - DoubleConversion - FBReactNativeSpec - glog @@ -390,11 +390,11 @@ PODS: - React-rncore - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.73.4): + - React-Core (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) + - React-Core/Default (= 0.73.5) - React-cxxreact - React-hermes - React-jsi @@ -404,7 +404,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/CoreModulesHeaders (0.73.4): + - React-Core/CoreModulesHeaders (0.73.5): - 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.4): + - React-Core/Default (0.73.5): - 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.4): + - React-Core/DevSupport (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) - - React-Core/RCTWebSocket (= 0.73.4) + - React-Core/Default (= 0.73.5) + - React-Core/RCTWebSocket (= 0.73.5) - React-cxxreact - React-hermes - React-jsi - React-jsiexecutor - - React-jsinspector (= 0.73.4) + - React-jsinspector (= 0.73.5) - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.73.4): + - React-Core/RCTActionSheetHeaders (0.73.5): - 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.4): + - React-Core/RCTAnimationHeaders (0.73.5): - 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.4): + - React-Core/RCTBlobHeaders (0.73.5): - 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.4): + - React-Core/RCTImageHeaders (0.73.5): - 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.4): + - React-Core/RCTLinkingHeaders (0.73.5): - 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.4): + - React-Core/RCTNetworkHeaders (0.73.5): - 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.4): + - React-Core/RCTSettingsHeaders (0.73.5): - 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.4): + - React-Core/RCTTextHeaders (0.73.5): - 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.4): + - React-Core/RCTVibrationHeaders (0.73.5): - 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.4): + - React-Core/RCTWebSocket (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) + - React-Core/Default (= 0.73.5) - React-cxxreact - React-hermes - React-jsi @@ -587,33 +587,33 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-CoreModules (0.73.4): + - React-CoreModules (0.73.5): - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety (= 0.73.4) + - RCTTypeSafety (= 0.73.5) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.73.4) - - React-jsi (= 0.73.4) + - React-Core/CoreModulesHeaders (= 0.73.5) + - React-jsi (= 0.73.5) - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.73.4) + - React-RCTImage (= 0.73.5) - ReactCommon - SocketRocket (= 0.6.1) - - React-cxxreact (0.73.4): + - React-cxxreact (0.73.5): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-debug (= 0.73.4) - - React-jsi (= 0.73.4) - - React-jsinspector (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) - - React-runtimeexecutor (= 0.73.4) - - React-debug (0.73.4) - - React-Fabric (0.73.4): + - React-callinvoker (= 0.73.5) + - React-debug (= 0.73.5) + - React-jsi (= 0.73.5) + - React-jsinspector (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) + - React-runtimeexecutor (= 0.73.5) + - React-debug (0.73.5) + - React-Fabric (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -624,20 +624,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.73.4) - - React-Fabric/attributedstring (= 0.73.4) - - React-Fabric/componentregistry (= 0.73.4) - - React-Fabric/componentregistrynative (= 0.73.4) - - React-Fabric/components (= 0.73.4) - - React-Fabric/core (= 0.73.4) - - React-Fabric/imagemanager (= 0.73.4) - - React-Fabric/leakchecker (= 0.73.4) - - React-Fabric/mounting (= 0.73.4) - - React-Fabric/scheduler (= 0.73.4) - - React-Fabric/telemetry (= 0.73.4) - - React-Fabric/templateprocessor (= 0.73.4) - - React-Fabric/textlayoutmanager (= 0.73.4) - - React-Fabric/uimanager (= 0.73.4) + - React-Fabric/animations (= 0.73.5) + - React-Fabric/attributedstring (= 0.73.5) + - React-Fabric/componentregistry (= 0.73.5) + - React-Fabric/componentregistrynative (= 0.73.5) + - React-Fabric/components (= 0.73.5) + - React-Fabric/core (= 0.73.5) + - React-Fabric/imagemanager (= 0.73.5) + - React-Fabric/leakchecker (= 0.73.5) + - React-Fabric/mounting (= 0.73.5) + - React-Fabric/scheduler (= 0.73.5) + - React-Fabric/telemetry (= 0.73.5) + - React-Fabric/templateprocessor (= 0.73.5) + - React-Fabric/textlayoutmanager (= 0.73.5) + - React-Fabric/uimanager (= 0.73.5) - React-graphics - React-jsi - React-jsiexecutor @@ -646,7 +646,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.73.4): + - React-Fabric/animations (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -665,7 +665,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.73.4): + - React-Fabric/attributedstring (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -684,7 +684,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.73.4): + - React-Fabric/componentregistry (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -703,7 +703,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.73.4): + - React-Fabric/componentregistrynative (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -722,7 +722,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.73.4): + - React-Fabric/components (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -733,17 +733,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.73.4) - - React-Fabric/components/legacyviewmanagerinterop (= 0.73.4) - - React-Fabric/components/modal (= 0.73.4) - - React-Fabric/components/rncore (= 0.73.4) - - React-Fabric/components/root (= 0.73.4) - - React-Fabric/components/safeareaview (= 0.73.4) - - React-Fabric/components/scrollview (= 0.73.4) - - React-Fabric/components/text (= 0.73.4) - - React-Fabric/components/textinput (= 0.73.4) - - React-Fabric/components/unimplementedview (= 0.73.4) - - React-Fabric/components/view (= 0.73.4) + - React-Fabric/components/inputaccessory (= 0.73.5) + - React-Fabric/components/legacyviewmanagerinterop (= 0.73.5) + - React-Fabric/components/modal (= 0.73.5) + - React-Fabric/components/rncore (= 0.73.5) + - React-Fabric/components/root (= 0.73.5) + - React-Fabric/components/safeareaview (= 0.73.5) + - React-Fabric/components/scrollview (= 0.73.5) + - React-Fabric/components/text (= 0.73.5) + - React-Fabric/components/textinput (= 0.73.5) + - React-Fabric/components/unimplementedview (= 0.73.5) + - React-Fabric/components/view (= 0.73.5) - React-graphics - React-jsi - React-jsiexecutor @@ -752,7 +752,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.73.4): + - React-Fabric/components/inputaccessory (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -771,7 +771,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.73.4): + - React-Fabric/components/legacyviewmanagerinterop (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -790,7 +790,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.73.4): + - React-Fabric/components/modal (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -809,7 +809,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.73.4): + - React-Fabric/components/rncore (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -828,7 +828,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.73.4): + - React-Fabric/components/root (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -847,7 +847,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.73.4): + - React-Fabric/components/safeareaview (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -866,7 +866,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.73.4): + - React-Fabric/components/scrollview (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -885,7 +885,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.73.4): + - React-Fabric/components/text (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -904,7 +904,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.73.4): + - React-Fabric/components/textinput (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -923,7 +923,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.73.4): + - React-Fabric/components/unimplementedview (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -942,7 +942,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.73.4): + - React-Fabric/components/view (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -962,7 +962,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.73.4): + - React-Fabric/core (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -981,7 +981,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.73.4): + - React-Fabric/imagemanager (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1000,7 +1000,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.73.4): + - React-Fabric/leakchecker (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1019,7 +1019,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.73.4): + - React-Fabric/mounting (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1038,7 +1038,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.73.4): + - React-Fabric/scheduler (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1057,7 +1057,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.73.4): + - React-Fabric/telemetry (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1076,7 +1076,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.73.4): + - React-Fabric/templateprocessor (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1095,7 +1095,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.73.4): + - React-Fabric/textlayoutmanager (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1115,7 +1115,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.73.4): + - React-Fabric/uimanager (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1134,42 +1134,42 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.73.4): + - React-FabricImage (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired (= 0.73.4) - - RCTTypeSafety (= 0.73.4) + - RCTRequired (= 0.73.5) + - RCTTypeSafety (= 0.73.5) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.73.4) + - React-jsiexecutor (= 0.73.5) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-graphics (0.73.4): + - React-graphics (0.73.5): - glog - RCT-Folly/Fabric (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) + - React-Core/Default (= 0.73.5) - React-utils - - React-hermes (0.73.4): + - React-hermes (0.73.5): - 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.4) + - React-cxxreact (= 0.73.5) - React-jsi - - React-jsiexecutor (= 0.73.4) - - React-jsinspector (= 0.73.4) - - React-perflogger (= 0.73.4) - - React-ImageManager (0.73.4): + - React-jsiexecutor (= 0.73.5) + - React-jsinspector (= 0.73.5) + - React-perflogger (= 0.73.5) + - React-ImageManager (0.73.5): - glog - RCT-Folly/Fabric - React-Core/Default @@ -1178,31 +1178,31 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.73.4): + - React-jserrorhandler (0.73.5): - RCT-Folly/Fabric (= 2022.05.16.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.73.4): + - React-jsi (0.73.5): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-jsiexecutor (0.73.4): + - React-jsiexecutor (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-perflogger (= 0.73.4) - - React-jsinspector (0.73.4) - - React-logger (0.73.4): + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-perflogger (= 0.73.5) + - React-jsinspector (0.73.5) + - React-logger (0.73.5): - glog - - React-Mapbuffer (0.73.4): + - React-Mapbuffer (0.73.5): - glog - React-debug - react-native-netinfo (11.1.0): @@ -1223,8 +1223,8 @@ PODS: - glog - RCT-Folly (= 2022.05.16.00) - React-Core - - React-nativeconfig (0.73.4) - - React-NativeModulesApple (0.73.4): + - React-nativeconfig (0.73.5) + - React-NativeModulesApple (0.73.5): - glog - hermes-engine - React-callinvoker @@ -1234,10 +1234,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.73.4) - - React-RCTActionSheet (0.73.4): - - React-Core/RCTActionSheetHeaders (= 0.73.4) - - React-RCTAnimation (0.73.4): + - React-perflogger (0.73.5) + - React-RCTActionSheet (0.73.5): + - React-Core/RCTActionSheetHeaders (= 0.73.5) + - React-RCTAnimation (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1245,7 +1245,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.73.4): + - React-RCTAppDelegate (0.73.5): - RCT-Folly - RCTRequired - RCTTypeSafety @@ -1259,7 +1259,7 @@ PODS: - React-RCTNetwork - React-runtimescheduler - ReactCommon - - React-RCTBlob (0.73.4): + - React-RCTBlob (0.73.5): - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Codegen @@ -1269,7 +1269,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.73.4): + - React-RCTFabric (0.73.5): - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) @@ -1287,7 +1287,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.73.4): + - React-RCTImage (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1296,14 +1296,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.73.4): + - React-RCTLinking (0.73.5): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.73.4) - - React-jsi (= 0.73.4) + - React-Core/RCTLinkingHeaders (= 0.73.5) + - React-jsi (= 0.73.5) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.73.4) - - React-RCTNetwork (0.73.4): + - ReactCommon/turbomodule/core (= 0.73.5) + - React-RCTNetwork (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1311,7 +1311,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.73.4): + - React-RCTSettings (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1319,25 +1319,25 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTText (0.73.4): - - React-Core/RCTTextHeaders (= 0.73.4) + - React-RCTText (0.73.5): + - React-Core/RCTTextHeaders (= 0.73.5) - Yoga - - React-RCTVibration (0.73.4): + - React-RCTVibration (0.73.5): - RCT-Folly (= 2022.05.16.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.73.4): + - React-rendererdebug (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - RCT-Folly (= 2022.05.16.00) - React-debug - - React-rncore (0.73.4) - - React-runtimeexecutor (0.73.4): - - React-jsi (= 0.73.4) - - React-runtimescheduler (0.73.4): + - React-rncore (0.73.5) + - React-runtimeexecutor (0.73.5): + - React-jsi (= 0.73.5) + - React-runtimescheduler (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1348,48 +1348,48 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.73.4): + - React-utils (0.73.5): - glog - RCT-Folly (= 2022.05.16.00) - React-debug - - ReactCommon (0.73.4): - - React-logger (= 0.73.4) - - ReactCommon/turbomodule (= 0.73.4) - - ReactCommon/turbomodule (0.73.4): + - ReactCommon (0.73.5): + - React-logger (= 0.73.5) + - ReactCommon/turbomodule (= 0.73.5) + - ReactCommon/turbomodule (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) - - ReactCommon/turbomodule/bridging (= 0.73.4) - - ReactCommon/turbomodule/core (= 0.73.4) - - ReactCommon/turbomodule/bridging (0.73.4): + - React-callinvoker (= 0.73.5) + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) + - ReactCommon/turbomodule/bridging (= 0.73.5) + - ReactCommon/turbomodule/core (= 0.73.5) + - ReactCommon/turbomodule/bridging (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) - - ReactCommon/turbomodule/core (0.73.4): + - React-callinvoker (= 0.73.5) + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) + - ReactCommon/turbomodule/core (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) + - React-callinvoker (= 0.73.5) + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) - RNCAsyncStorage (1.18.2): - React-Core - RNCMaskedView (0.3.0): @@ -1815,7 +1815,7 @@ EXTERNAL SOURCES: :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" hermes-engine: :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-2023-11-17-RNv0.73.0-21043a3fc062be445e56a2c10ecd8be028dd9cc5 + :tag: hermes-2024-02-20-RNv0.73.5-18f99ace4213052c5e7cdbcd39ee9766cd5df7e4 RCT-Folly: :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" RCTRequired: @@ -1951,11 +1951,11 @@ SPEC CHECKSUMS: EXJSONUtils: 5c42959e87be238b045ef37cc5268b16a6c0ad4a EXLocation: a631bd8dc4e7db986fb27edb7fc9ea8174ebe249 EXManifests: 5e8c29f36c716af768a4ea47ec05e1b89ab93091 - EXMediaLibrary: 5a74f7d9cce776ca07cb3090b948cedd7d4841a1 + EXMediaLibrary: 59077ec70ec8b0460447fadebaa1ba7361a18efe EXNotifications: e11f0e9a5b657c064a481a5d522f3bc5a07bf7cd - Expo: be3d5d402b533252fdbb77cfa277df5e930aae17 + Expo: bbffa600c41f904151a925e5a214d1f4c5a79794 expo-dev-client: dbc8e8a81d17a9d92e083a2856d056ba9a58984d - expo-dev-launcher: 3f2a78d97842a3fdc2f0116f775d8dbc32396cbd + expo-dev-launcher: e83a9d87530cb79a6525a700c216791c2db018b0 expo-dev-menu: b964921baa1bda2a7ff42a407d1d7698ce215faf expo-dev-menu-interface: 7ba029c9d1a82ac22b9b584c00514860b060553e ExpoAppleAuthentication: 4fc9972356977f009911f2f3a5f56319c2a5b11b @@ -1963,13 +1963,13 @@ SPEC CHECKSUMS: ExpoBattery: 60bf880aea8f769fe39f709a920442542c1bfd62 ExpoBlur: e832d874bd94afc0645daddbd3162ec1ce172080 ExpoBrightness: 6d160de5877289d11674aea61aacdb37422774cf - ExpoCamera: 9eb966748a7897e84986567e3eef71836c219823 + ExpoCamera: a3d19935309c1d0150c5d792eeb82d906dd0979e ExpoCellular: e4e0788a9949726f0d068c4ae45414b4b7d4566d ExpoClipboard: b597982124f067ff9f5b89093eb3d97898d5d877 ExpoCrypto: b6428f48599c007676dc81a9b5f72c07e62fdccc ExpoDevice: d204395e17fffdcefa7470bdef33b07719ac41b1 ExpoDocumentPicker: 70254802886e29a45d4ad25486e64b6fc9c8f0cc - ExpoFileSystem: c7488590959bf85ebc114909eb8186cbd62e3a25 + ExpoFileSystem: eecaf6796aed0f4dd20042dc2ca2cac6c4bc1185 ExpoGL: 085542f97b13f2428ac2edb077c9a90f4566944d ExpoHaptics: 28a771b630353cd6e8dcf1b1e3e693e38ad7c3c3 ExpoImage: 8cf2d51de3d03b7e984e9b0ba8f19c0c22057001 @@ -1987,7 +1987,7 @@ SPEC CHECKSUMS: ExpoNetwork: 97d7774ab8f62e35f08db77fbef0388d5e1f2c76 ExpoPrint: 206723b8e7dd9b37a2b8e70d23485ace6d248bb4 ExpoRandom: f0cd58e154e463d913462f3b445870b12d1c2f12 - ExpoScreenOrientation: f6fec87148a0adc7ed95fdf5e041ca5abed13ed9 + ExpoScreenOrientation: 47c10dbd934cf76ba67c73652030432ea64b1151 ExpoSecureStore: c84ae37d1c36f38524d289c67c3a2e3fc56f1108 ExpoSensors: a88c7bed8178a38e5cd3c2759baf348781027f28 ExpoSharing: 752ad6ae2b693de9cd4e7fddb78297bdc658b815 @@ -2001,17 +2001,17 @@ SPEC CHECKSUMS: ExpoVideoThumbnails: 9b6c0dada0b3240dd3527e0dc688711e17842c88 ExpoWebBrowser: e31c97230ea93b51a2a74c6c2381b0d4fca5698c EXScreenCapture: 7a491c16de021638078f50281d411e3352bb28c2 - EXSplashScreen: 39244885abfb1b12765aae89edb90f8c88db6bbd + EXSplashScreen: 5538a51beec451bf1fcf5198e3062790e2534df3 EXStructuredHeaders: 5b0f47259db047dc1fdfa84752e292c2bfa68ecd EXTaskManager: 3e446dbf75cd662aa6e7d6828be5bc26265241c3 EXUpdatesInterface: 3e444e2093e25b7ca0999a7d8c16e8392dee70c3 - FBLazyVector: 84f6edbe225f38aebd9deaf1540a4160b1f087d7 - FBReactNativeSpec: f40d49b222e5ff964f98c8aa4f08baa6c1e15e2d + FBLazyVector: 56e0e498dbb513b96c40bac6284729ba4e62672d + FBReactNativeSpec: 38fe3f8129dc980837e569aece04891f65d6578d fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 GoogleMaps: a146f275ee429d14822178c7a841c03366ec92a1 GooglePlaces: 0609463845250bbadafa1739938181e54dece439 - hermes-engine: b2669ce35fc4ac14f523b307aff8896799829fe2 + hermes-engine: 1d1835b2cc54c381909d94d1b3c8e0a2f1a94a0e libaom: 144606b1da4b5915a1054383c3a4459ccdb3c661 libavif: 84bbb62fb232c3018d6f1bab79beea87e35de7b7 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 @@ -2021,61 +2021,61 @@ SPEC CHECKSUMS: OHHTTPStubs: 90eac6d8f2c18317baeca36698523dc67c513831 Quick: d32871931c05547cb4e0bc9009d66a18b50d8558 RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0 - RCTRequired: ab7f915c15569f04a49669e573e6e319a53f9faa - RCTTypeSafety: 63b97ced7b766865057e7154db0e81ce4ee6cf1e - React: 1c87497e50fa40ba9c54e5ea5e53483a0f8eecc0 - React-callinvoker: e3a52a9a93e3eb004d7282c26a4fb27003273fe6 - React-Codegen: 50c0f8f073e71b929b057b68bf31be604f1dccc8 - React-Core: d0ecde72894b792cb8922efaa0990199cbe85169 - React-CoreModules: 2ff1684dd517f0c441495d90a704d499f05e9d0a - React-cxxreact: d9be2fac926741052395da0a6d0bab8d71e2f297 - React-debug: 4678e73a37cb501d784e99ff0f219b4940362a3b - React-Fabric: 460ee9d4b8b9de3382504a711430bfead1d5be1e - React-FabricImage: d0a0631bc8ad9143f42bfccf9d3d533a144cc3d6 - React-graphics: f0d5040263a9649e2a70ebe27b3120c49411afef - React-hermes: b9ac2f7b0c1eeb206eb883583cab7a973d570a6e - React-ImageManager: 6c4bf9d5ed363ead7b5aaf820a3feab221b7063e - React-jserrorhandler: 6e7a7e187583e14dc7a0053a2bdd66c252ea3b21 - React-jsi: 380cd24dd81a705dd042c18989fb10b07182210c - React-jsiexecutor: 8ed7a18b9f119440efdcd424c8257dc7e18067e2 - React-jsinspector: 9ac353eccf6ab54d1e0a33862ba91221d1e88460 - React-logger: 0a57b68dd2aec7ff738195f081f0520724b35dab - React-Mapbuffer: 63913773ed7f96b814a2521e13e6d010282096ad + RCTRequired: 2544c0f1081a5fa12e108bb8cb40e5f4581ccd87 + RCTTypeSafety: 50efabe2b115c11ed03fbf3fd79e2f163ddb5d7c + React: 84221d5e0ce297bc57c4b6af539a62d812d89f10 + React-callinvoker: 5d17577ecc7f784535ebedf3aad4bcbf8f4b5117 + React-Codegen: 857e7984fc277aadde2a7a427288b6918ece7b2b + React-Core: 8e782e7e24c7843871a0d9c3c8d7c5b3ebb73832 + React-CoreModules: 7875ee247e3e6e0e683b52cd1cdda1b71618bd55 + React-cxxreact: 788cd771c6e94d44f8d472fdfae89b67226067ea + React-debug: 55c7f2b8463bfe85567c9f4ede904085601130c9 + React-Fabric: 8cb43853496bb8032420edf62e7281c53109e682 + React-FabricImage: fbdc0ef7ed58a87c77600017c19a751932de3e47 + React-graphics: dc8307b615f14e13f1081ac23ea66697808bcd29 + React-hermes: d9acaa4ebf2118d9bd8a541af8c620c467b356b6 + React-ImageManager: 2a97ddc9b1f459121697d629cfbe69712997d76f + React-jserrorhandler: b97b16674258ccaeff5a70047a097a140e76d12d + React-jsi: 1d59d0a148c76641ac577729e0268bafa494152c + React-jsiexecutor: 262b66928ad948491d03fd328bb5b822cce94647 + React-jsinspector: 32db5e364bcae8fca8cdf8891830636275add0c5 + React-logger: 0331362115f0f5b392bd7ed14636d1a3ea612479 + React-Mapbuffer: 7c35cd53a22d0be04d3f26f7881c7fb7dd230216 react-native-netinfo: 3aa5637c18834966e0c932de8ae1ae56fea20a97 - react-native-pager-view: d81ab2060b9caf57ca8c3a0d57467ff407cdb825 + react-native-pager-view: d5f3adb58a4e6e0d200055e9a4afdcda9b9022ce react-native-safe-area-context: 0ee144a6170530ccc37a0fd9388e28d06f516a89 react-native-segmented-control: 0e4b5d93911e2234f110057df2b41738b326ab3e react-native-slider: 33b8d190b59d4f67a541061bb91775d53d617d9d react-native-view-shot: 6b7ed61d77d88580fed10954d45fad0eb2d47688 - react-native-webview: f95eb7d4d6a7ca45d04d861d99f628241b2aff83 - React-nativeconfig: d7af5bae6da70fa15ce44f045621cf99ed24087c - React-NativeModulesApple: 0123905d5699853ac68519607555a9a4f5c7b3ac - React-perflogger: 8a1e1af5733004bdd91258dcefbde21e0d1faccd - React-RCTActionSheet: 64bbff3a3963664c2d0146f870fe8e0264aee4c4 - React-RCTAnimation: b698168a7269265a4694727196484342d695f0c1 - React-RCTAppDelegate: dcd8e955116eb1d1908dfaf08b4c970812e6a1e6 - React-RCTBlob: 47f8c3b2b4b7fa2c5f19c43f0b7f77f57fb9d953 - React-RCTFabric: 6067a32d683d0c2b84d444548bc15a263c64abed - React-RCTImage: ac0e77a44c290b20db783649b2b9cddc93e3eb99 - React-RCTLinking: e626fd2900913fe5d25922ea1be394b7aafa09c9 - React-RCTNetwork: d3114bce3977dafe8bd06421b29812f5a8527ba0 - React-RCTSettings: a53511f90d8df637a1a11ac729179a4d2f734481 - React-RCTText: f0176f5f5952f9a4a2c7354f5ae71f7c420aaf34 - React-RCTVibration: 8160223c6eda5b187079fec204f80eca8b8f3177 - React-rendererdebug: ed286b4da8648c27d6ed3ae1410d4b21ba890d5a - React-rncore: 77488f5276f3c4c28814d2b780c4808d08edffba - React-runtimeexecutor: e6ab6bb083dbdbdd489cff426ed0bce0652e6edf - React-runtimescheduler: ed48e5faac6751e66ee1261c4bd01643b436f112 - React-utils: 6e5ad394416482ae21831050928ae27348f83487 - ReactCommon: 840a955d37b7f3358554d819446bffcf624b2522 + react-native-webview: ff06d1fe175ff827882ec88b696a7efcafa7e98d + React-nativeconfig: 1166714a4f7ea57a0df5c2cb44fbc70f98d580f9 + React-NativeModulesApple: 726664e9829eb5eed8170241000e46ead269a05f + React-perflogger: 0dd9f1725d55f8264b81efadd373fe1d9cca7dc2 + React-RCTActionSheet: 05656d2102b0d0a2676d58bad4d80106af5367b2 + React-RCTAnimation: 6c66beae98730fb7615df28caf651e295f2401e5 + React-RCTAppDelegate: 891b80c596fffcb3f90431739495d606a9a0d610 + React-RCTBlob: 8ecee445ec5fa9ed8a8621a136183c1045165100 + React-RCTFabric: f291e06bc63fef26cdd105537bae5c6a8d3bdca8 + React-RCTImage: 585b16465146cb839da02f3179ce7cb19d332642 + React-RCTLinking: 09ba11f7df62946e7ddca1b51aa3bf47b230e008 + React-RCTNetwork: e070f8d2fca60f1e9571936ce54d165e77129e76 + React-RCTSettings: b08c7ff191f0a5421aab198ea1086c9a8d513bde + React-RCTText: f6cc5a3cf0f1a4f3d1256657dca1025e4cfe45e0 + React-RCTVibration: d9948962139f9924ef87f23ab240e045e496213b + React-rendererdebug: ee05480666415f7a76e6cf0a7a50363423f44809 + React-rncore: a162dc821b8f313ab82dd17f7113ce3b96029142 + React-runtimeexecutor: 56f562a608056fb0c1711d900a992e26f375d817 + React-runtimescheduler: 814b644a5f456c7df1fba7bcd9914707152527c6 + React-utils: 987a4526a2fc0acdfaf87888adfe0bf9d0452066 + ReactCommon: 2947b0bffd82ea0e58ca7928881152d4c6dae9af RNCAsyncStorage: ddc4ee162bfd41b0d2c68bf2d95acd81dd7f1f93 RNCMaskedView: f7c74478c83c4fdfc5cf4df51f80c0dd5cf125c6 RNCPicker: b18aaf30df596e9b1738e7c1f9ee55402a229dca RNDateTimePicker: 8fb39263b721223e095248acaf6f406d5b7f6713 RNFlashList: 4b4b6b093afc0df60ae08f9cbf6ccd4c836c667a - RNGestureHandler: 61bfdfc05db9b79dd61f894dcd29d3dcc6db3c02 - RNReanimated: 92958cd13e63c2c34c71bc50ee2c8d5561bc4e3f - RNScreens: b582cb834dc4133307562e930e8fa914b8c04ef2 + RNGestureHandler: a4c4561307e67f2942f5a4fe1526ff78cf3f5280 + RNReanimated: 276d1e147a5a860797c5b0a5b70f0ccffcf8c3b5 + RNScreens: 17e2f657f1b09a71ec3c821368a04acbb7ebcb46 RNSVG: ba3e7232f45e34b7b47e74472386cf4e1a676d0a SDWebImage: 750adf017a315a280c60fde706ab1e552a3ae4e9 SDWebImageAVIFCoder: 8348fef6d0ec69e129c66c9fe4d74fbfbf366112 @@ -2084,7 +2084,7 @@ SPEC CHECKSUMS: SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 sqlite3: f163dbbb7aa3339ad8fc622782c2d9d7b72f7e9c UMAppLoader: 5df85360d65cabaef544be5424ac64672e648482 - Yoga: 64cd2a583ead952b0315d5135bf39e053ae9be70 + Yoga: 9e6a04eacbd94f97d94577017e9f23b3ab41cf6c ZXingObjC: fdbb269f25dd2032da343e06f10224d62f537bdb PODFILE CHECKSUM: f25025f67ea11b94e7d9346c35ac31dfcd6677fc diff --git a/apps/bare-expo/package.json b/apps/bare-expo/package.json index 5df164842231f..99e8265ce7d34 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.4", + "react-native": "0.73.5", "react-native-gesture-handler": "~2.14.0", "react-native-pager-view": "6.2.3", "react-native-reanimated": "~3.6.0", diff --git a/apps/fabric-tester/ios/Podfile.lock b/apps/fabric-tester/ios/Podfile.lock index d4d7a5e65791e..0c95901f23bb6 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.4): + - EXAV (13.10.5): - ExpoModulesCore - ReactCommon/turbomodule/core - EXConstants (15.4.5): - ExpoModulesCore - - EXFont (11.10.2): + - EXFont (11.10.3): - ExpoModulesCore - EXJSONUtils (0.12.3) - EXManifests (0.13.2): - ExpoModulesCore - - Expo (50.0.4): + - Expo (50.0.11): - ExpoModulesCore - - expo-dev-client (3.3.7): + - expo-dev-client (3.3.9): - EXManifests - expo-dev-launcher - expo-dev-menu - expo-dev-menu-interface - EXUpdatesInterface - - expo-dev-launcher (3.6.5): + - expo-dev-launcher (3.6.7): - EXManifests - - expo-dev-launcher/Main (= 3.6.5) + - expo-dev-launcher/Main (= 3.6.7) - 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.5): + - expo-dev-launcher/Main (3.6.7): - 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.5): + - expo-dev-launcher/Unsafe (3.6.7): - 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.5): - - expo-dev-menu/Main (= 4.5.5) - - expo-dev-menu/ReactNativeCompatibles (= 4.5.5) + - expo-dev-menu (4.5.6): + - expo-dev-menu/Main (= 4.5.6) + - expo-dev-menu/ReactNativeCompatibles (= 4.5.6) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -118,7 +118,7 @@ PODS: - ReactCommon/turbomodule/core - Yoga - expo-dev-menu-interface (1.7.2) - - expo-dev-menu/Main (4.5.5): + - expo-dev-menu/Main (4.5.6): - 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.5): + - expo-dev-menu/ReactNativeCompatibles (4.5.6): - 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.5): + - expo-dev-menu/SafeAreaView (4.5.6): - ExpoModulesCore - glog - hermes-engine @@ -180,7 +180,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - expo-dev-menu/Vendored (4.5.5): + - expo-dev-menu/Vendored (4.5.6): - expo-dev-menu/SafeAreaView - glog - hermes-engine @@ -202,15 +202,15 @@ PODS: - Yoga - ExpoAppleAuthentication (6.3.0): - ExpoModulesCore - - ExpoBlur (12.9.1): + - ExpoBlur (12.9.2): - ExpoModulesCore - - ExpoCamera (14.0.3): + - ExpoCamera (14.0.6): - ExpoModulesCore - ZXingObjC/OneD - ZXingObjC/PDF417 - - ExpoFileSystem (16.0.5): + - ExpoFileSystem (16.0.8): - ExpoModulesCore - - ExpoImage (1.10.5): + - ExpoImage (1.10.6): - ExpoModulesCore - SDWebImage (~> 5.17.0) - SDWebImageAVIFCoder (~> 0.10.1) @@ -218,9 +218,9 @@ PODS: - SDWebImageWebPCoder (~> 0.13.0) - ExpoKeepAwake (12.8.2): - ExpoModulesCore - - ExpoLinearGradient (12.7.1): + - ExpoLinearGradient (12.7.2): - ExpoModulesCore - - ExpoModulesCore (1.11.8): + - ExpoModulesCore (1.11.10): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -261,12 +261,12 @@ PODS: - ReactCommon/turbomodule/core - Yoga - EXUpdatesInterface (0.15.3) - - FBLazyVector (0.73.4) + - FBLazyVector (0.73.5) - fmt (6.2.1) - glog (0.3.5) - - hermes-engine (0.73.4): - - hermes-engine/Pre-built (= 0.73.4) - - hermes-engine/Pre-built (0.73.4) + - hermes-engine (0.73.5): + - hermes-engine/Pre-built (= 0.73.5) + - hermes-engine/Pre-built (0.73.5) - 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.4) - - RCTTypeSafety (0.73.4): - - FBLazyVector (= 0.73.4) - - RCTRequired (= 0.73.4) - - React-Core (= 0.73.4) - - React (0.73.4): - - React-Core (= 0.73.4) - - React-Core/DevSupport (= 0.73.4) - - React-Core/RCTWebSocket (= 0.73.4) - - React-RCTActionSheet (= 0.73.4) - - React-RCTAnimation (= 0.73.4) - - React-RCTBlob (= 0.73.4) - - React-RCTImage (= 0.73.4) - - React-RCTLinking (= 0.73.4) - - React-RCTNetwork (= 0.73.4) - - React-RCTSettings (= 0.73.4) - - React-RCTText (= 0.73.4) - - React-RCTVibration (= 0.73.4) - - React-callinvoker (0.73.4) - - React-Codegen (0.73.4): + - RCTRequired (0.73.5) + - RCTTypeSafety (0.73.5): + - FBLazyVector (= 0.73.5) + - RCTRequired (= 0.73.5) + - React-Core (= 0.73.5) + - React (0.73.5): + - React-Core (= 0.73.5) + - React-Core/DevSupport (= 0.73.5) + - React-Core/RCTWebSocket (= 0.73.5) + - React-RCTActionSheet (= 0.73.5) + - React-RCTAnimation (= 0.73.5) + - React-RCTBlob (= 0.73.5) + - React-RCTImage (= 0.73.5) + - React-RCTLinking (= 0.73.5) + - React-RCTNetwork (= 0.73.5) + - React-RCTSettings (= 0.73.5) + - React-RCTText (= 0.73.5) + - React-RCTVibration (= 0.73.5) + - React-callinvoker (0.73.5) + - React-Codegen (0.73.5): - DoubleConversion - glog - hermes-engine @@ -349,11 +349,11 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.73.4): + - React-Core (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) + - React-Core/Default (= 0.73.5) - React-cxxreact - React-hermes - React-jsi @@ -363,7 +363,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/CoreModulesHeaders (0.73.4): + - React-Core/CoreModulesHeaders (0.73.5): - 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.4): + - React-Core/Default (0.73.5): - 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.4): + - React-Core/DevSupport (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) - - React-Core/RCTWebSocket (= 0.73.4) + - React-Core/Default (= 0.73.5) + - React-Core/RCTWebSocket (= 0.73.5) - React-cxxreact - React-hermes - React-jsi - React-jsiexecutor - - React-jsinspector (= 0.73.4) + - React-jsinspector (= 0.73.5) - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.73.4): + - React-Core/RCTActionSheetHeaders (0.73.5): - 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.4): + - React-Core/RCTAnimationHeaders (0.73.5): - 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.4): + - React-Core/RCTBlobHeaders (0.73.5): - 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.4): + - React-Core/RCTImageHeaders (0.73.5): - 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.4): + - React-Core/RCTLinkingHeaders (0.73.5): - 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.4): + - React-Core/RCTNetworkHeaders (0.73.5): - 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.4): + - React-Core/RCTSettingsHeaders (0.73.5): - 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.4): + - React-Core/RCTTextHeaders (0.73.5): - 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.4): + - React-Core/RCTVibrationHeaders (0.73.5): - 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.4): + - React-Core/RCTWebSocket (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) + - React-Core/Default (= 0.73.5) - React-cxxreact - React-hermes - React-jsi @@ -546,33 +546,33 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-CoreModules (0.73.4): + - React-CoreModules (0.73.5): - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety (= 0.73.4) + - RCTTypeSafety (= 0.73.5) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.73.4) - - React-jsi (= 0.73.4) + - React-Core/CoreModulesHeaders (= 0.73.5) + - React-jsi (= 0.73.5) - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.73.4) + - React-RCTImage (= 0.73.5) - ReactCommon - SocketRocket (= 0.6.1) - - React-cxxreact (0.73.4): + - React-cxxreact (0.73.5): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-debug (= 0.73.4) - - React-jsi (= 0.73.4) - - React-jsinspector (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) - - React-runtimeexecutor (= 0.73.4) - - React-debug (0.73.4) - - React-Fabric (0.73.4): + - React-callinvoker (= 0.73.5) + - React-debug (= 0.73.5) + - React-jsi (= 0.73.5) + - React-jsinspector (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) + - React-runtimeexecutor (= 0.73.5) + - React-debug (0.73.5) + - React-Fabric (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -583,20 +583,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.73.4) - - React-Fabric/attributedstring (= 0.73.4) - - React-Fabric/componentregistry (= 0.73.4) - - React-Fabric/componentregistrynative (= 0.73.4) - - React-Fabric/components (= 0.73.4) - - React-Fabric/core (= 0.73.4) - - React-Fabric/imagemanager (= 0.73.4) - - React-Fabric/leakchecker (= 0.73.4) - - React-Fabric/mounting (= 0.73.4) - - React-Fabric/scheduler (= 0.73.4) - - React-Fabric/telemetry (= 0.73.4) - - React-Fabric/templateprocessor (= 0.73.4) - - React-Fabric/textlayoutmanager (= 0.73.4) - - React-Fabric/uimanager (= 0.73.4) + - React-Fabric/animations (= 0.73.5) + - React-Fabric/attributedstring (= 0.73.5) + - React-Fabric/componentregistry (= 0.73.5) + - React-Fabric/componentregistrynative (= 0.73.5) + - React-Fabric/components (= 0.73.5) + - React-Fabric/core (= 0.73.5) + - React-Fabric/imagemanager (= 0.73.5) + - React-Fabric/leakchecker (= 0.73.5) + - React-Fabric/mounting (= 0.73.5) + - React-Fabric/scheduler (= 0.73.5) + - React-Fabric/telemetry (= 0.73.5) + - React-Fabric/templateprocessor (= 0.73.5) + - React-Fabric/textlayoutmanager (= 0.73.5) + - React-Fabric/uimanager (= 0.73.5) - React-graphics - React-jsi - React-jsiexecutor @@ -605,7 +605,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.73.4): + - React-Fabric/animations (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -624,7 +624,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.73.4): + - React-Fabric/attributedstring (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -643,7 +643,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.73.4): + - React-Fabric/componentregistry (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -662,7 +662,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.73.4): + - React-Fabric/componentregistrynative (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -681,7 +681,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.73.4): + - React-Fabric/components (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -692,17 +692,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.73.4) - - React-Fabric/components/legacyviewmanagerinterop (= 0.73.4) - - React-Fabric/components/modal (= 0.73.4) - - React-Fabric/components/rncore (= 0.73.4) - - React-Fabric/components/root (= 0.73.4) - - React-Fabric/components/safeareaview (= 0.73.4) - - React-Fabric/components/scrollview (= 0.73.4) - - React-Fabric/components/text (= 0.73.4) - - React-Fabric/components/textinput (= 0.73.4) - - React-Fabric/components/unimplementedview (= 0.73.4) - - React-Fabric/components/view (= 0.73.4) + - React-Fabric/components/inputaccessory (= 0.73.5) + - React-Fabric/components/legacyviewmanagerinterop (= 0.73.5) + - React-Fabric/components/modal (= 0.73.5) + - React-Fabric/components/rncore (= 0.73.5) + - React-Fabric/components/root (= 0.73.5) + - React-Fabric/components/safeareaview (= 0.73.5) + - React-Fabric/components/scrollview (= 0.73.5) + - React-Fabric/components/text (= 0.73.5) + - React-Fabric/components/textinput (= 0.73.5) + - React-Fabric/components/unimplementedview (= 0.73.5) + - React-Fabric/components/view (= 0.73.5) - React-graphics - React-jsi - React-jsiexecutor @@ -711,7 +711,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.73.4): + - React-Fabric/components/inputaccessory (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -730,7 +730,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.73.4): + - React-Fabric/components/legacyviewmanagerinterop (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -749,7 +749,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.73.4): + - React-Fabric/components/modal (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -768,7 +768,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.73.4): + - React-Fabric/components/rncore (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -787,7 +787,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.73.4): + - React-Fabric/components/root (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -806,7 +806,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.73.4): + - React-Fabric/components/safeareaview (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -825,7 +825,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.73.4): + - React-Fabric/components/scrollview (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -844,7 +844,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.73.4): + - React-Fabric/components/text (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -863,7 +863,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.73.4): + - React-Fabric/components/textinput (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -882,7 +882,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.73.4): + - React-Fabric/components/unimplementedview (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -901,7 +901,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.73.4): + - React-Fabric/components/view (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -921,7 +921,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.73.4): + - React-Fabric/core (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -940,7 +940,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.73.4): + - React-Fabric/imagemanager (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -959,7 +959,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.73.4): + - React-Fabric/leakchecker (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -978,7 +978,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.73.4): + - React-Fabric/mounting (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -997,7 +997,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.73.4): + - React-Fabric/scheduler (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1016,7 +1016,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.73.4): + - React-Fabric/telemetry (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1035,7 +1035,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.73.4): + - React-Fabric/templateprocessor (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1054,7 +1054,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.73.4): + - React-Fabric/textlayoutmanager (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1074,7 +1074,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.73.4): + - React-Fabric/uimanager (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1093,42 +1093,42 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.73.4): + - React-FabricImage (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired (= 0.73.4) - - RCTTypeSafety (= 0.73.4) + - RCTRequired (= 0.73.5) + - RCTTypeSafety (= 0.73.5) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.73.4) + - React-jsiexecutor (= 0.73.5) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-graphics (0.73.4): + - React-graphics (0.73.5): - glog - RCT-Folly/Fabric (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) + - React-Core/Default (= 0.73.5) - React-utils - - React-hermes (0.73.4): + - React-hermes (0.73.5): - 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.4) + - React-cxxreact (= 0.73.5) - React-jsi - - React-jsiexecutor (= 0.73.4) - - React-jsinspector (= 0.73.4) - - React-perflogger (= 0.73.4) - - React-ImageManager (0.73.4): + - React-jsiexecutor (= 0.73.5) + - React-jsinspector (= 0.73.5) + - React-perflogger (= 0.73.5) + - React-ImageManager (0.73.5): - glog - RCT-Folly/Fabric - React-Core/Default @@ -1137,37 +1137,37 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.73.4): + - React-jserrorhandler (0.73.5): - RCT-Folly/Fabric (= 2022.05.16.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.73.4): + - React-jsi (0.73.5): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-jsiexecutor (0.73.4): + - React-jsiexecutor (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-perflogger (= 0.73.4) - - React-jsinspector (0.73.4) - - React-jsitracing (0.73.4): + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-perflogger (= 0.73.5) + - React-jsinspector (0.73.5) + - React-jsitracing (0.73.5): - React-jsi - - React-logger (0.73.4): + - React-logger (0.73.5): - glog - - React-Mapbuffer (0.73.4): + - React-Mapbuffer (0.73.5): - glog - React-debug - - React-nativeconfig (0.73.4) - - React-NativeModulesApple (0.73.4): + - React-nativeconfig (0.73.5) + - React-NativeModulesApple (0.73.5): - glog - hermes-engine - React-callinvoker @@ -1177,10 +1177,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.73.4) - - React-RCTActionSheet (0.73.4): - - React-Core/RCTActionSheetHeaders (= 0.73.4) - - React-RCTAnimation (0.73.4): + - React-perflogger (0.73.5) + - React-RCTActionSheet (0.73.5): + - React-Core/RCTActionSheetHeaders (= 0.73.5) + - React-RCTAnimation (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1188,7 +1188,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.73.4): + - React-RCTAppDelegate (0.73.5): - RCT-Folly - RCTRequired - RCTTypeSafety @@ -1210,7 +1210,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.73.4): + - React-RCTBlob (0.73.5): - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Codegen @@ -1220,7 +1220,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.73.4): + - React-RCTFabric (0.73.5): - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) @@ -1238,7 +1238,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.73.4): + - React-RCTImage (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1247,14 +1247,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.73.4): + - React-RCTLinking (0.73.5): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.73.4) - - React-jsi (= 0.73.4) + - React-Core/RCTLinkingHeaders (= 0.73.5) + - React-jsi (= 0.73.5) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.73.4) - - React-RCTNetwork (0.73.4): + - ReactCommon/turbomodule/core (= 0.73.5) + - React-RCTNetwork (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1262,7 +1262,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.73.4): + - React-RCTSettings (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1270,23 +1270,23 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTText (0.73.4): - - React-Core/RCTTextHeaders (= 0.73.4) + - React-RCTText (0.73.5): + - React-Core/RCTTextHeaders (= 0.73.5) - Yoga - - React-RCTVibration (0.73.4): + - React-RCTVibration (0.73.5): - RCT-Folly (= 2022.05.16.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.73.4): + - React-rendererdebug (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - RCT-Folly (= 2022.05.16.00) - React-debug - - React-rncore (0.73.4) - - React-RuntimeApple (0.73.4): + - React-rncore (0.73.5) + - React-RuntimeApple (0.73.5): - 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.4): + - React-RuntimeCore (0.73.5): - 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.4): - - React-jsi (= 0.73.4) - - React-RuntimeHermes (0.73.4): + - React-runtimeexecutor (0.73.5): + - React-jsi (= 0.73.5) + - React-RuntimeHermes (0.73.5): - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - React-jsi - React-jsitracing - React-nativeconfig - React-utils - - React-runtimescheduler (0.73.4): + - React-runtimescheduler (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1333,48 +1333,48 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.73.4): + - React-utils (0.73.5): - glog - RCT-Folly (= 2022.05.16.00) - React-debug - - ReactCommon (0.73.4): - - React-logger (= 0.73.4) - - ReactCommon/turbomodule (= 0.73.4) - - ReactCommon/turbomodule (0.73.4): + - ReactCommon (0.73.5): + - React-logger (= 0.73.5) + - ReactCommon/turbomodule (= 0.73.5) + - ReactCommon/turbomodule (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) - - ReactCommon/turbomodule/bridging (= 0.73.4) - - ReactCommon/turbomodule/core (= 0.73.4) - - ReactCommon/turbomodule/bridging (0.73.4): + - React-callinvoker (= 0.73.5) + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) + - ReactCommon/turbomodule/bridging (= 0.73.5) + - ReactCommon/turbomodule/core (= 0.73.5) + - ReactCommon/turbomodule/bridging (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) - - ReactCommon/turbomodule/core (0.73.4): + - React-callinvoker (= 0.73.5) + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) + - ReactCommon/turbomodule/core (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) + - React-callinvoker (= 0.73.5) + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) - SDWebImage (5.17.0): - SDWebImage/Core (= 5.17.0) - SDWebImage/Core (5.17.0) @@ -1536,7 +1536,7 @@ EXTERNAL SOURCES: :podspec: "../../../node_modules/react-native/third-party-podspecs/glog.podspec" hermes-engine: :podspec: "../../../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-2023-11-17-RNv0.73.0-21043a3fc062be445e56a2c10ecd8be028dd9cc5 + :tag: hermes-2024-02-20-RNv0.73.5-18f99ace4213052c5e7cdbcd39ee9766cd5df7e4 RCT-Folly: :podspec: "../../../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" RCTRequired: @@ -1631,88 +1631,88 @@ EXTERNAL SOURCES: :path: "../../../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - boost: 26fad476bfa736552bbfa698a06cc530475c1505 + boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953 - EXAV: 09a4d87fa6b113fbb0ada3aade6799f78271cb44 + EXAV: 07e50f934907fa8274dd06fbcd20ee4b9478c619 EXConstants: 988aa430ca0f76b43cd46b66e7fae3287f9cc2fc - EXFont: 21b9c760abd593ce8f0d5386b558ced76018506f + EXFont: f20669cb266ef48b004f1eb1f2b20db96cd1df9f EXJSONUtils: 5c42959e87be238b045ef37cc5268b16a6c0ad4a EXManifests: 5e8c29f36c716af768a4ea47ec05e1b89ab93091 - Expo: 1e3bcf9dd99de57a636127057f6b488f0609681a - expo-dev-client: 80a81d82fd401673ab11702ce9e54115a8852f3b - expo-dev-launcher: e1818e7d2d7e12e37b187937c6985b041a5a00db - expo-dev-menu: e73c9a9637c9935dcefa206e1a2ea3eae3bb7ecd + Expo: bbffa600c41f904151a925e5a214d1f4c5a79794 + expo-dev-client: dbc8e8a81d17a9d92e083a2856d056ba9a58984d + expo-dev-launcher: c71f380e56e3d4ecd9cdf81779f04b3ca59aa406 + expo-dev-menu: 22990e65d4174c59a7e0686ea3345b4319cca3d9 expo-dev-menu-interface: 7ba029c9d1a82ac22b9b584c00514860b060553e ExpoAppleAuthentication: 4fc9972356977f009911f2f3a5f56319c2a5b11b - ExpoBlur: 2eb7f7ac50c0818ee7d596996e4c0112b3d225f6 - ExpoCamera: c50a4c67431540e86406e953dc189b850263e522 - ExpoFileSystem: 04795dd4d47e76eaf12e38c92091f77d794f9e7f - ExpoImage: 2b71f20472f293c1fbbf2400795b03d5bf8dd598 + ExpoBlur: e832d874bd94afc0645daddbd3162ec1ce172080 + ExpoCamera: a3d19935309c1d0150c5d792eeb82d906dd0979e + ExpoFileSystem: eecaf6796aed0f4dd20042dc2ca2cac6c4bc1185 + ExpoImage: 8cf2d51de3d03b7e984e9b0ba8f19c0c22057001 ExpoKeepAwake: 0f5cad99603a3268e50af9a6eb8b76d0d9ac956c - ExpoLinearGradient: d10226652f849e675528883aa45afd2358c2f92f - ExpoModulesCore: 83dfc98358de225bd0953401ce5b0c14fa8eabd0 - EXSplashScreen: 91f8723e444480409e74155bfe08e20e23b3662c + ExpoLinearGradient: 4ad1449a2408e0435ac959076562b3921f2e32a1 + ExpoModulesCore: 55a54d98a059b8acae3ae54eeaa7cef2c3c2ec00 + EXSplashScreen: b9973a1dffda33b646d58283125af5332d3fa84a EXUpdatesInterface: 3e444e2093e25b7ca0999a7d8c16e8392dee70c3 - FBLazyVector: 84f6edbe225f38aebd9deaf1540a4160b1f087d7 + FBLazyVector: 56e0e498dbb513b96c40bac6284729ba4e62672d fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: b2669ce35fc4ac14f523b307aff8896799829fe2 + hermes-engine: 1d1835b2cc54c381909d94d1b3c8e0a2f1a94a0e libaom: 144606b1da4b5915a1054383c3a4459ccdb3c661 libavif: 84bbb62fb232c3018d6f1bab79beea87e35de7b7 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 libvmaf: 27f523f1e63c694d14d534cd0fddd2fab0ae8711 libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009 RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0 - RCTRequired: ab7f915c15569f04a49669e573e6e319a53f9faa - RCTTypeSafety: 63b97ced7b766865057e7154db0e81ce4ee6cf1e - React: 1c87497e50fa40ba9c54e5ea5e53483a0f8eecc0 - React-callinvoker: e3a52a9a93e3eb004d7282c26a4fb27003273fe6 - React-Codegen: ce263e06931bc61af31cdc8895f7222991701d0b - React-Core: d0ecde72894b792cb8922efaa0990199cbe85169 - React-CoreModules: 2ff1684dd517f0c441495d90a704d499f05e9d0a - React-cxxreact: d9be2fac926741052395da0a6d0bab8d71e2f297 - React-debug: 4678e73a37cb501d784e99ff0f219b4940362a3b - React-Fabric: 460ee9d4b8b9de3382504a711430bfead1d5be1e - React-FabricImage: d0a0631bc8ad9143f42bfccf9d3d533a144cc3d6 - React-graphics: f0d5040263a9649e2a70ebe27b3120c49411afef - React-hermes: b9ac2f7b0c1eeb206eb883583cab7a973d570a6e - React-ImageManager: 6c4bf9d5ed363ead7b5aaf820a3feab221b7063e - React-jserrorhandler: 6e7a7e187583e14dc7a0053a2bdd66c252ea3b21 - React-jsi: 380cd24dd81a705dd042c18989fb10b07182210c - React-jsiexecutor: 8ed7a18b9f119440efdcd424c8257dc7e18067e2 - React-jsinspector: 9ac353eccf6ab54d1e0a33862ba91221d1e88460 - React-jsitracing: e8a2dafb9878dbcad02b6b2b88e66267fb427b74 - React-logger: 0a57b68dd2aec7ff738195f081f0520724b35dab - React-Mapbuffer: 63913773ed7f96b814a2521e13e6d010282096ad - React-nativeconfig: d7af5bae6da70fa15ce44f045621cf99ed24087c - React-NativeModulesApple: 0123905d5699853ac68519607555a9a4f5c7b3ac - React-perflogger: 8a1e1af5733004bdd91258dcefbde21e0d1faccd - React-RCTActionSheet: 64bbff3a3963664c2d0146f870fe8e0264aee4c4 - React-RCTAnimation: b698168a7269265a4694727196484342d695f0c1 - React-RCTAppDelegate: a84b4bf99b871d87b41d7a768e7860d207fb4e31 - React-RCTBlob: 47f8c3b2b4b7fa2c5f19c43f0b7f77f57fb9d953 - React-RCTFabric: 6067a32d683d0c2b84d444548bc15a263c64abed - React-RCTImage: ac0e77a44c290b20db783649b2b9cddc93e3eb99 - React-RCTLinking: e626fd2900913fe5d25922ea1be394b7aafa09c9 - React-RCTNetwork: d3114bce3977dafe8bd06421b29812f5a8527ba0 - React-RCTSettings: a53511f90d8df637a1a11ac729179a4d2f734481 - React-RCTText: f0176f5f5952f9a4a2c7354f5ae71f7c420aaf34 - React-RCTVibration: 8160223c6eda5b187079fec204f80eca8b8f3177 - React-rendererdebug: ed286b4da8648c27d6ed3ae1410d4b21ba890d5a - React-rncore: 75cbcc46868e809bb7e738d4565ba85f3dbd5cdc - React-RuntimeApple: f4848a388e4c782d3b8d4ca9c48179163418fe56 - React-RuntimeCore: 272998adc56066404df36b1a3a2be9a56c6ee086 - React-runtimeexecutor: e6ab6bb083dbdbdd489cff426ed0bce0652e6edf - React-RuntimeHermes: d2c368065ef82d4f8e6daa662352de5a195bdb57 - React-runtimescheduler: ed48e5faac6751e66ee1261c4bd01643b436f112 - React-utils: 6e5ad394416482ae21831050928ae27348f83487 - ReactCommon: 840a955d37b7f3358554d819446bffcf624b2522 + RCTRequired: 2544c0f1081a5fa12e108bb8cb40e5f4581ccd87 + RCTTypeSafety: 50efabe2b115c11ed03fbf3fd79e2f163ddb5d7c + React: 84221d5e0ce297bc57c4b6af539a62d812d89f10 + React-callinvoker: 5d17577ecc7f784535ebedf3aad4bcbf8f4b5117 + React-Codegen: ebf759090abb7e69ed6853244d4793b00f1660e0 + React-Core: 8e782e7e24c7843871a0d9c3c8d7c5b3ebb73832 + React-CoreModules: 7875ee247e3e6e0e683b52cd1cdda1b71618bd55 + React-cxxreact: 788cd771c6e94d44f8d472fdfae89b67226067ea + React-debug: 55c7f2b8463bfe85567c9f4ede904085601130c9 + React-Fabric: 8cb43853496bb8032420edf62e7281c53109e682 + React-FabricImage: fbdc0ef7ed58a87c77600017c19a751932de3e47 + React-graphics: dc8307b615f14e13f1081ac23ea66697808bcd29 + React-hermes: d9acaa4ebf2118d9bd8a541af8c620c467b356b6 + React-ImageManager: 2a97ddc9b1f459121697d629cfbe69712997d76f + React-jserrorhandler: b97b16674258ccaeff5a70047a097a140e76d12d + React-jsi: 1d59d0a148c76641ac577729e0268bafa494152c + React-jsiexecutor: 262b66928ad948491d03fd328bb5b822cce94647 + React-jsinspector: 32db5e364bcae8fca8cdf8891830636275add0c5 + React-jsitracing: 42912570ecc01b07e29894a1a05a54f270e683ce + React-logger: 0331362115f0f5b392bd7ed14636d1a3ea612479 + React-Mapbuffer: 7c35cd53a22d0be04d3f26f7881c7fb7dd230216 + React-nativeconfig: 1166714a4f7ea57a0df5c2cb44fbc70f98d580f9 + React-NativeModulesApple: 726664e9829eb5eed8170241000e46ead269a05f + React-perflogger: 0dd9f1725d55f8264b81efadd373fe1d9cca7dc2 + React-RCTActionSheet: 05656d2102b0d0a2676d58bad4d80106af5367b2 + React-RCTAnimation: 6c66beae98730fb7615df28caf651e295f2401e5 + React-RCTAppDelegate: d78fa6bcb3c823201b77bb86a967a0efd2dd4eed + React-RCTBlob: 8ecee445ec5fa9ed8a8621a136183c1045165100 + React-RCTFabric: 43929bf7439754d75bd9a88f97c990bfb98c90fd + React-RCTImage: 585b16465146cb839da02f3179ce7cb19d332642 + React-RCTLinking: 09ba11f7df62946e7ddca1b51aa3bf47b230e008 + React-RCTNetwork: e070f8d2fca60f1e9571936ce54d165e77129e76 + React-RCTSettings: b08c7ff191f0a5421aab198ea1086c9a8d513bde + React-RCTText: f6cc5a3cf0f1a4f3d1256657dca1025e4cfe45e0 + React-RCTVibration: d9948962139f9924ef87f23ab240e045e496213b + React-rendererdebug: ee05480666415f7a76e6cf0a7a50363423f44809 + React-rncore: a93b592afe8ff28029a3c4009e52da14a0516c90 + React-RuntimeApple: 95172dcfb260834a2bf1c8302b27ef0bc276e079 + React-RuntimeCore: 404f636cf4144ead99c1bf46fad1cbecede27876 + React-runtimeexecutor: 56f562a608056fb0c1711d900a992e26f375d817 + React-RuntimeHermes: 4a505ba2d60c4c8523d28f1d69dd5d115d81a6d3 + React-runtimescheduler: 814b644a5f456c7df1fba7bcd9914707152527c6 + React-utils: 987a4526a2fc0acdfaf87888adfe0bf9d0452066 + ReactCommon: 2947b0bffd82ea0e58ca7928881152d4c6dae9af SDWebImage: 750adf017a315a280c60fde706ab1e552a3ae4e9 SDWebImageAVIFCoder: 8348fef6d0ec69e129c66c9fe4d74fbfbf366112 SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c SDWebImageWebPCoder: af09429398d99d524cae2fe00f6f0f6e491ed102 SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 - Yoga: 64cd2a583ead952b0315d5135bf39e053ae9be70 + Yoga: 9e6a04eacbd94f97d94577017e9f23b3ab41cf6c ZXingObjC: 8898711ab495761b2dbbdec76d90164a6d7e14c5 PODFILE CHECKSUM: 71426e037432f85589759f1a9cee661a7b991aff diff --git a/apps/fabric-tester/package.json b/apps/fabric-tester/package.json index 3a8dbcaa4f470..f4219407ff427 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.4", + "react-native": "0.73.5", "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 5d0767fde6703..d91ce998cff7b 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.4" + "react-native": "0.73.5" } } diff --git a/apps/native-component-list/package.json b/apps/native-component-list/package.json index e71293ac4475e..0e26bc594591a 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.4", + "react-native": "0.73.5", "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 338f2a50bedc6..eec72dfdc6833 100644 --- a/apps/native-tests/ios/Podfile.lock +++ b/apps/native-tests/ios/Podfile.lock @@ -13,9 +13,9 @@ PODS: - EXManifests/Tests (0.13.2): - ExpoModulesCore - ExpoModulesTestCore - - expo-dev-launcher (3.6.6): + - expo-dev-launcher (3.6.7): - EXManifests - - expo-dev-launcher/Main (= 3.6.6) + - expo-dev-launcher/Main (= 3.6.7) - expo-dev-menu - expo-dev-menu-interface - ExpoModulesCore @@ -24,7 +24,7 @@ PODS: - RCT-Folly (= 2022.05.16.00) - React-Core - React-RCTAppDelegate - - expo-dev-launcher/Main (3.6.6): + - expo-dev-launcher/Main (3.6.7): - EXManifests - expo-dev-launcher/Unsafe - expo-dev-menu @@ -35,7 +35,7 @@ PODS: - RCT-Folly (= 2022.05.16.00) - React-Core - React-RCTAppDelegate - - expo-dev-launcher/Tests (3.6.6): + - expo-dev-launcher/Tests (3.6.7): - EXManifests - expo-dev-menu - expo-dev-menu-interface @@ -50,7 +50,7 @@ PODS: - React-Core - React-CoreModules - React-RCTAppDelegate - - expo-dev-launcher/Unsafe (3.6.6): + - expo-dev-launcher/Unsafe (3.6.7): - EXManifests - expo-dev-menu - expo-dev-menu-interface @@ -60,9 +60,9 @@ PODS: - RCT-Folly (= 2022.05.16.00) - React-Core - React-RCTAppDelegate - - expo-dev-menu (4.5.5): - - expo-dev-menu/Main (= 4.5.5) - - expo-dev-menu/ReactNativeCompatibles (= 4.5.5) + - expo-dev-menu (4.5.6): + - expo-dev-menu/Main (= 4.5.6) + - expo-dev-menu/ReactNativeCompatibles (= 4.5.6) - glog - RCT-Folly (= 2022.05.16.00) - React-Core @@ -70,7 +70,7 @@ PODS: - expo-dev-menu-interface/Tests (1.7.2): - Nimble - Quick - - expo-dev-menu/Main (4.5.5): + - expo-dev-menu/Main (4.5.6): - EXManifests - expo-dev-menu-interface - expo-dev-menu/Vendored @@ -78,16 +78,16 @@ PODS: - glog - RCT-Folly (= 2022.05.16.00) - React-Core - - expo-dev-menu/ReactNativeCompatibles (4.5.5): + - expo-dev-menu/ReactNativeCompatibles (4.5.6): - glog - RCT-Folly (= 2022.05.16.00) - React-Core - - expo-dev-menu/SafeAreaView (4.5.5): + - expo-dev-menu/SafeAreaView (4.5.6): - ExpoModulesCore - glog - RCT-Folly (= 2022.05.16.00) - React-Core - - expo-dev-menu/Tests (4.5.5): + - expo-dev-menu/Tests (4.5.6): - ExpoModulesTestCore - glog - Nimble @@ -95,13 +95,13 @@ PODS: - RCT-Folly (= 2022.05.16.00) - React-Core - React-CoreModules - - expo-dev-menu/UITests (4.5.5): + - expo-dev-menu/UITests (4.5.6): - glog - RCT-Folly (= 2022.05.16.00) - React - React-Core - React-CoreModules - - expo-dev-menu/Vendored (4.5.5): + - expo-dev-menu/Vendored (4.5.6): - expo-dev-menu/SafeAreaView - glog - RCT-Folly (= 2022.05.16.00) @@ -111,19 +111,19 @@ PODS: - ExpoClipboard/Tests (5.0.1): - ExpoModulesCore - ExpoModulesTestCore - - ExpoFileSystem (16.0.6): + - ExpoFileSystem (16.0.8): - ExpoModulesCore - - ExpoFileSystem/Tests (16.0.6): + - ExpoFileSystem/Tests (16.0.8): - ExpoModulesCore - ExpoModulesTestCore - - ExpoModulesCore (1.11.8): + - ExpoModulesCore (1.11.10): - glog - RCT-Folly (= 2022.05.16.00) - React-Core - React-NativeModulesApple - React-RCTAppDelegate - ReactCommon/turbomodule/core - - ExpoModulesCore/Tests (1.11.8): + - ExpoModulesCore/Tests (1.11.10): - ExpoModulesTestCore - glog - RCT-Folly (= 2022.05.16.00) @@ -135,10 +135,10 @@ PODS: - ExpoModulesCore - Nimble (~> 13.0.0) - Quick (~> 7.3.0) - - React-jsc + - React-hermes - EXStructuredHeaders (3.7.2) - EXStructuredHeaders/Tests (3.7.2) - - EXUpdates (0.24.10): + - EXUpdates (0.24.11): - EASClient - EXManifests - ExpoModulesCore @@ -149,7 +149,7 @@ PODS: - ReachabilitySwift - React-Core - sqlite3 (~> 3.42.0) - - EXUpdates/Tests (0.24.10): + - EXUpdates/Tests (0.24.11): - EASClient - EXManifests - ExpoModulesCore @@ -162,16 +162,20 @@ PODS: - React-Core - sqlite3 (~> 3.42.0) - EXUpdatesInterface (0.15.3) - - FBLazyVector (0.73.4) - - FBReactNativeSpec (0.73.4): + - FBLazyVector (0.73.5) + - FBReactNativeSpec (0.73.5): - RCT-Folly (= 2022.05.16.00) - - RCTRequired (= 0.73.4) - - RCTTypeSafety (= 0.73.4) - - React-Core (= 0.73.4) - - React-jsi (= 0.73.4) - - ReactCommon/turbomodule/core (= 0.73.4) + - RCTRequired (= 0.73.5) + - RCTTypeSafety (= 0.73.5) + - React-Core (= 0.73.5) + - React-jsi (= 0.73.5) + - ReactCommon/turbomodule/core (= 0.73.5) - fmt (6.2.1) - glog (0.3.5) + - hermes-engine (0.73.5): + - hermes-engine/Pre-built (= 0.73.5) + - hermes-engine/Pre-built (0.73.5) + - libevent (2.1.12) - Nimble (13.0.0) - OHHTTPStubs (9.1.0): - OHHTTPStubs/Default (= 9.1.0) @@ -203,47 +207,54 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - RCTRequired (0.73.4) - - RCTTypeSafety (0.73.4): - - FBLazyVector (= 0.73.4) - - RCTRequired (= 0.73.4) - - React-Core (= 0.73.4) + - RCT-Folly/Futures (2022.05.16.00): + - boost + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - libevent + - RCTRequired (0.73.5) + - RCTTypeSafety (0.73.5): + - FBLazyVector (= 0.73.5) + - RCTRequired (= 0.73.5) + - React-Core (= 0.73.5) - ReachabilitySwift (5.0.0) - - React (0.73.4): - - React-Core (= 0.73.4) - - React-Core/DevSupport (= 0.73.4) - - React-Core/RCTWebSocket (= 0.73.4) - - React-RCTActionSheet (= 0.73.4) - - React-RCTAnimation (= 0.73.4) - - React-RCTBlob (= 0.73.4) - - React-RCTImage (= 0.73.4) - - React-RCTLinking (= 0.73.4) - - React-RCTNetwork (= 0.73.4) - - React-RCTSettings (= 0.73.4) - - React-RCTText (= 0.73.4) - - React-RCTVibration (= 0.73.4) - - React-callinvoker (0.73.4) - - React-Codegen (0.73.4): + - React (0.73.5): + - React-Core (= 0.73.5) + - React-Core/DevSupport (= 0.73.5) + - React-Core/RCTWebSocket (= 0.73.5) + - React-RCTActionSheet (= 0.73.5) + - React-RCTAnimation (= 0.73.5) + - React-RCTBlob (= 0.73.5) + - React-RCTImage (= 0.73.5) + - React-RCTLinking (= 0.73.5) + - React-RCTNetwork (= 0.73.5) + - React-RCTSettings (= 0.73.5) + - React-RCTText (= 0.73.5) + - React-RCTVibration (= 0.73.5) + - React-callinvoker (0.73.5) + - React-Codegen (0.73.5): - DoubleConversion - FBReactNativeSpec - glog + - hermes-engine - RCT-Folly - RCTRequired - RCTTypeSafety - React-Core - - React-jsc - React-jsi - React-jsiexecutor - React-NativeModulesApple - React-rncore - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.73.4): + - React-Core (0.73.5): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) + - React-Core/Default (= 0.73.5) - React-cxxreact - - React-jsc + - React-hermes - React-jsi - React-jsiexecutor - React-perflogger @@ -251,12 +262,13 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/CoreModulesHeaders (0.73.4): + - React-Core/CoreModulesHeaders (0.73.5): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-jsc + - React-hermes - React-jsi - React-jsiexecutor - React-perflogger @@ -264,11 +276,12 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/Default (0.73.4): + - React-Core/Default (0.73.5): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-cxxreact - - React-jsc + - React-hermes - React-jsi - React-jsiexecutor - React-perflogger @@ -276,27 +289,29 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/DevSupport (0.73.4): + - React-Core/DevSupport (0.73.5): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) - - React-Core/RCTWebSocket (= 0.73.4) + - React-Core/Default (= 0.73.5) + - React-Core/RCTWebSocket (= 0.73.5) - React-cxxreact - - React-jsc + - React-hermes - React-jsi - React-jsiexecutor - - React-jsinspector (= 0.73.4) + - React-jsinspector (= 0.73.5) - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.73.4): + - React-Core/RCTActionSheetHeaders (0.73.5): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-jsc + - React-hermes - React-jsi - React-jsiexecutor - React-perflogger @@ -304,12 +319,13 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTAnimationHeaders (0.73.4): + - React-Core/RCTAnimationHeaders (0.73.5): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-jsc + - React-hermes - React-jsi - React-jsiexecutor - React-perflogger @@ -317,12 +333,13 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTBlobHeaders (0.73.4): + - React-Core/RCTBlobHeaders (0.73.5): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-jsc + - React-hermes - React-jsi - React-jsiexecutor - React-perflogger @@ -330,12 +347,13 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTImageHeaders (0.73.4): + - React-Core/RCTImageHeaders (0.73.5): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-jsc + - React-hermes - React-jsi - React-jsiexecutor - React-perflogger @@ -343,12 +361,13 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTLinkingHeaders (0.73.4): + - React-Core/RCTLinkingHeaders (0.73.5): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-jsc + - React-hermes - React-jsi - React-jsiexecutor - React-perflogger @@ -356,12 +375,13 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTNetworkHeaders (0.73.4): + - React-Core/RCTNetworkHeaders (0.73.5): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-jsc + - React-hermes - React-jsi - React-jsiexecutor - React-perflogger @@ -369,12 +389,13 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTSettingsHeaders (0.73.4): + - React-Core/RCTSettingsHeaders (0.73.5): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-jsc + - React-hermes - React-jsi - React-jsiexecutor - React-perflogger @@ -382,12 +403,13 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTTextHeaders (0.73.4): + - React-Core/RCTTextHeaders (0.73.5): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-jsc + - React-hermes - React-jsi - React-jsiexecutor - React-perflogger @@ -395,12 +417,13 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTVibrationHeaders (0.73.4): + - React-Core/RCTVibrationHeaders (0.73.5): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-jsc + - React-hermes - React-jsi - React-jsiexecutor - React-perflogger @@ -408,12 +431,13 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTWebSocket (0.73.4): + - React-Core/RCTWebSocket (0.73.5): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) + - React-Core/Default (= 0.73.5) - React-cxxreact - - React-jsc + - React-hermes - React-jsi - React-jsiexecutor - React-perflogger @@ -421,57 +445,58 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-CoreModules (0.73.4): + - React-CoreModules (0.73.5): - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety (= 0.73.4) + - RCTTypeSafety (= 0.73.5) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.73.4) - - React-jsi (= 0.73.4) + - React-Core/CoreModulesHeaders (= 0.73.5) + - React-jsi (= 0.73.5) - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.73.4) + - React-RCTImage (= 0.73.5) - ReactCommon - SocketRocket (= 0.6.1) - - React-cxxreact (0.73.4): + - React-cxxreact (0.73.5): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-debug (= 0.73.4) - - React-jsi (= 0.73.4) - - React-jsinspector (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) - - React-runtimeexecutor (= 0.73.4) - - React-debug (0.73.4) - - React-Fabric (0.73.4): + - React-callinvoker (= 0.73.5) + - React-debug (= 0.73.5) + - React-jsi (= 0.73.5) + - React-jsinspector (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) + - React-runtimeexecutor (= 0.73.5) + - React-debug (0.73.5) + - React-Fabric (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.73.4) - - React-Fabric/attributedstring (= 0.73.4) - - React-Fabric/componentregistry (= 0.73.4) - - React-Fabric/componentregistrynative (= 0.73.4) - - React-Fabric/components (= 0.73.4) - - React-Fabric/core (= 0.73.4) - - React-Fabric/imagemanager (= 0.73.4) - - React-Fabric/leakchecker (= 0.73.4) - - React-Fabric/mounting (= 0.73.4) - - React-Fabric/scheduler (= 0.73.4) - - React-Fabric/telemetry (= 0.73.4) - - React-Fabric/templateprocessor (= 0.73.4) - - React-Fabric/textlayoutmanager (= 0.73.4) - - React-Fabric/uimanager (= 0.73.4) + - React-Fabric/animations (= 0.73.5) + - React-Fabric/attributedstring (= 0.73.5) + - React-Fabric/componentregistry (= 0.73.5) + - React-Fabric/componentregistrynative (= 0.73.5) + - React-Fabric/components (= 0.73.5) + - React-Fabric/core (= 0.73.5) + - React-Fabric/imagemanager (= 0.73.5) + - React-Fabric/leakchecker (= 0.73.5) + - React-Fabric/mounting (= 0.73.5) + - React-Fabric/scheduler (= 0.73.5) + - React-Fabric/telemetry (= 0.73.5) + - React-Fabric/templateprocessor (= 0.73.5) + - React-Fabric/textlayoutmanager (= 0.73.5) + - React-Fabric/uimanager (= 0.73.5) - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -479,10 +504,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.73.4): + - React-Fabric/animations (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -490,7 +516,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -498,10 +523,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.73.4): + - React-Fabric/attributedstring (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -509,7 +535,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -517,10 +542,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.73.4): + - React-Fabric/componentregistry (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -528,7 +554,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -536,10 +561,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.73.4): + - React-Fabric/componentregistrynative (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -547,7 +573,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -555,29 +580,29 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.73.4): + - React-Fabric/components (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.73.4) - - React-Fabric/components/legacyviewmanagerinterop (= 0.73.4) - - React-Fabric/components/modal (= 0.73.4) - - React-Fabric/components/rncore (= 0.73.4) - - React-Fabric/components/root (= 0.73.4) - - React-Fabric/components/safeareaview (= 0.73.4) - - React-Fabric/components/scrollview (= 0.73.4) - - React-Fabric/components/text (= 0.73.4) - - React-Fabric/components/textinput (= 0.73.4) - - React-Fabric/components/unimplementedview (= 0.73.4) - - React-Fabric/components/view (= 0.73.4) + - React-Fabric/components/inputaccessory (= 0.73.5) + - React-Fabric/components/legacyviewmanagerinterop (= 0.73.5) + - React-Fabric/components/modal (= 0.73.5) + - React-Fabric/components/rncore (= 0.73.5) + - React-Fabric/components/root (= 0.73.5) + - React-Fabric/components/safeareaview (= 0.73.5) + - React-Fabric/components/scrollview (= 0.73.5) + - React-Fabric/components/text (= 0.73.5) + - React-Fabric/components/textinput (= 0.73.5) + - React-Fabric/components/unimplementedview (= 0.73.5) + - React-Fabric/components/view (= 0.73.5) - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -585,10 +610,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.73.4): + - React-Fabric/components/inputaccessory (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -596,7 +622,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -604,10 +629,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.73.4): + - React-Fabric/components/legacyviewmanagerinterop (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -615,7 +641,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -623,10 +648,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.73.4): + - React-Fabric/components/modal (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -634,7 +660,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -642,10 +667,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.73.4): + - React-Fabric/components/rncore (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -653,7 +679,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -661,10 +686,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.73.4): + - React-Fabric/components/root (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -672,7 +698,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -680,10 +705,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.73.4): + - React-Fabric/components/safeareaview (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -691,7 +717,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -699,10 +724,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.73.4): + - React-Fabric/components/scrollview (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -710,7 +736,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -718,10 +743,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.73.4): + - React-Fabric/components/text (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -729,7 +755,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -737,10 +762,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.73.4): + - React-Fabric/components/textinput (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -748,7 +774,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -756,10 +781,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.73.4): + - React-Fabric/components/unimplementedview (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -767,7 +793,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -775,10 +800,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.73.4): + - React-Fabric/components/view (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -786,7 +812,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -795,10 +820,11 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.73.4): + - React-Fabric/core (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -806,7 +832,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -814,10 +839,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.73.4): + - React-Fabric/imagemanager (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -825,7 +851,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -833,10 +858,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.73.4): + - React-Fabric/leakchecker (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -844,7 +870,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -852,10 +877,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.73.4): + - React-Fabric/mounting (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -863,7 +889,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -871,10 +896,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.73.4): + - React-Fabric/scheduler (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -882,7 +908,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -890,10 +915,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.73.4): + - React-Fabric/telemetry (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -901,7 +927,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -909,10 +934,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.73.4): + - React-Fabric/templateprocessor (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -920,7 +946,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -928,10 +953,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.73.4): + - React-Fabric/textlayoutmanager (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -940,7 +966,6 @@ PODS: - React-debug - React-Fabric/uimanager - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -948,10 +973,11 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.73.4): + - React-Fabric/uimanager (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -959,7 +985,6 @@ PODS: - React-cxxreact - React-debug - React-graphics - - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -967,30 +992,42 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.73.4): + - React-FabricImage (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired (= 0.73.4) - - RCTTypeSafety (= 0.73.4) + - RCTRequired (= 0.73.5) + - RCTTypeSafety (= 0.73.5) - React-Fabric - React-graphics - React-ImageManager - - React-jsc - React-jsi - - React-jsiexecutor (= 0.73.4) + - React-jsiexecutor (= 0.73.5) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-graphics (0.73.4): + - React-graphics (0.73.5): - glog - RCT-Folly/Fabric (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) + - React-Core/Default (= 0.73.5) - React-utils - - React-ImageManager (0.73.4): + - React-hermes (0.73.5): + - 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.5) + - React-jsi + - React-jsiexecutor (= 0.73.5) + - React-jsinspector (= 0.73.5) + - React-perflogger (= 0.73.5) + - React-ImageManager (0.73.5): - glog - RCT-Folly/Fabric - React-Core/Default @@ -999,51 +1036,48 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jsc (0.73.4): - - React-jsc/Fabric (= 0.73.4) - - React-jsi (= 0.73.4) - - React-jsc/Fabric (0.73.4): - - React-jsi (= 0.73.4) - - React-jserrorhandler (0.73.4): + - React-jserrorhandler (0.73.5): - RCT-Folly/Fabric (= 2022.05.16.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.73.4): + - React-jsi (0.73.5): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-jsiexecutor (0.73.4): + - React-jsiexecutor (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-perflogger (= 0.73.4) - - React-jsinspector (0.73.4) - - React-logger (0.73.4): + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-perflogger (= 0.73.5) + - React-jsinspector (0.73.5) + - React-logger (0.73.5): - glog - - React-Mapbuffer (0.73.4): + - React-Mapbuffer (0.73.5): - glog - React-debug - - React-nativeconfig (0.73.4) - - React-NativeModulesApple (0.73.4): + - React-nativeconfig (0.73.5) + - React-NativeModulesApple (0.73.5): - glog + - hermes-engine - React-callinvoker - React-Core - React-cxxreact - - React-jsc - React-jsi - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.73.4) - - React-RCTActionSheet (0.73.4): - - React-Core/RCTActionSheetHeaders (= 0.73.4) - - React-RCTAnimation (0.73.4): + - React-perflogger (0.73.5) + - React-RCTActionSheet (0.73.5): + - React-Core/RCTActionSheetHeaders (= 0.73.5) + - React-RCTAnimation (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1051,13 +1085,13 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.73.4): + - React-RCTAppDelegate (0.73.5): - RCT-Folly - RCTRequired - RCTTypeSafety - React-Core - React-CoreModules - - React-jsc + - React-hermes - React-nativeconfig - React-NativeModulesApple - React-RCTFabric @@ -1065,7 +1099,8 @@ PODS: - React-RCTNetwork - React-runtimescheduler - ReactCommon - - React-RCTBlob (0.73.4): + - React-RCTBlob (0.73.5): + - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Codegen - React-Core/RCTBlobHeaders @@ -1074,8 +1109,9 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.73.4): + - React-RCTFabric (0.73.5): - glog + - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - React-Core - React-debug @@ -1083,7 +1119,6 @@ PODS: - React-FabricImage - React-graphics - React-ImageManager - - React-jsc - React-jsi - React-nativeconfig - React-RCTImage @@ -1092,7 +1127,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.73.4): + - React-RCTImage (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1101,14 +1136,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.73.4): + - React-RCTLinking (0.73.5): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.73.4) - - React-jsi (= 0.73.4) + - React-Core/RCTLinkingHeaders (= 0.73.5) + - React-jsi (= 0.73.5) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.73.4) - - React-RCTNetwork (0.73.4): + - ReactCommon/turbomodule/core (= 0.73.5) + - React-RCTNetwork (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1116,7 +1151,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.73.4): + - React-RCTSettings (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -1124,74 +1159,77 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTText (0.73.4): - - React-Core/RCTTextHeaders (= 0.73.4) + - React-RCTText (0.73.5): + - React-Core/RCTTextHeaders (= 0.73.5) - Yoga - - React-RCTVibration (0.73.4): + - React-RCTVibration (0.73.5): - RCT-Folly (= 2022.05.16.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.73.4): + - React-rendererdebug (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - RCT-Folly (= 2022.05.16.00) - React-debug - - React-rncore (0.73.4) - - React-runtimeexecutor (0.73.4): - - React-jsi (= 0.73.4) - - React-runtimescheduler (0.73.4): + - React-rncore (0.73.5) + - React-runtimeexecutor (0.73.5): + - React-jsi (= 0.73.5) + - React-runtimescheduler (0.73.5): - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-callinvoker - React-cxxreact - React-debug - - React-jsc - React-jsi - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.73.4): + - React-utils (0.73.5): - glog - RCT-Folly (= 2022.05.16.00) - React-debug - - ReactCommon (0.73.4): - - React-logger (= 0.73.4) - - ReactCommon/turbomodule (= 0.73.4) - - ReactCommon/turbomodule (0.73.4): + - ReactCommon (0.73.5): + - React-logger (= 0.73.5) + - ReactCommon/turbomodule (= 0.73.5) + - ReactCommon/turbomodule (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) - - ReactCommon/turbomodule/bridging (= 0.73.4) - - ReactCommon/turbomodule/core (= 0.73.4) - - ReactCommon/turbomodule/bridging (0.73.4): + - React-callinvoker (= 0.73.5) + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) + - ReactCommon/turbomodule/bridging (= 0.73.5) + - ReactCommon/turbomodule/core (= 0.73.5) + - ReactCommon/turbomodule/bridging (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) - - ReactCommon/turbomodule/core (0.73.4): + - React-callinvoker (= 0.73.5) + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) + - ReactCommon/turbomodule/core (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog + - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) + - React-callinvoker (= 0.73.5) + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) - SocketRocket (0.6.1) - sqlite3 (3.42.0): - sqlite3/common (= 3.42.0) @@ -1229,6 +1267,8 @@ DEPENDENCIES: - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) + - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) + - libevent (~> 2.1.12) - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) @@ -1244,8 +1284,8 @@ DEPENDENCIES: - React-Fabric (from `../node_modules/react-native/ReactCommon`) - React-FabricImage (from `../node_modules/react-native/ReactCommon`) - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) + - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) - - React-jsc (from `../node_modules/react-native/ReactCommon/jsc`) - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) @@ -1277,6 +1317,7 @@ DEPENDENCIES: SPEC REPOS: trunk: - fmt + - libevent - Nimble - OHHTTPStubs - Quick @@ -1332,6 +1373,9 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/React/FBReactNativeSpec" glog: :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" + hermes-engine: + :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" + :tag: hermes-2024-02-20-RNv0.73.5-18f99ace4213052c5e7cdbcd39ee9766cd5df7e4 RCT-Folly: :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" RCTRequired: @@ -1358,10 +1402,10 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon" React-graphics: :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" + React-hermes: + :path: "../node_modules/react-native/ReactCommon/hermes" React-ImageManager: :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" - React-jsc: - :path: "../node_modules/react-native/ReactCommon/jsc" React-jserrorhandler: :path: "../node_modules/react-native/ReactCommon/jserrorhandler" React-jsi: @@ -1423,68 +1467,70 @@ SPEC CHECKSUMS: EASClient: a42ee8bf36c93b3128352faf2ae49405ab4f80bd EXJSONUtils: 5c42959e87be238b045ef37cc5268b16a6c0ad4a EXManifests: 5e8c29f36c716af768a4ea47ec05e1b89ab93091 - expo-dev-launcher: 3cddfcd8e54748d0046af07dc8e4f58dbb045e93 - expo-dev-menu: 8088833c320b616a312ffe438fbea5df276c010e + expo-dev-launcher: e83a9d87530cb79a6525a700c216791c2db018b0 + expo-dev-menu: b964921baa1bda2a7ff42a407d1d7698ce215faf expo-dev-menu-interface: 7ba029c9d1a82ac22b9b584c00514860b060553e ExpoClipboard: b597982124f067ff9f5b89093eb3d97898d5d877 - ExpoFileSystem: a9273932e69a9a1e1a8d01b6ba895bb8294bbea2 - ExpoModulesCore: 96d1751929ad10622773bb729ab28a8423f0dd0c - ExpoModulesTestCore: 592d0ab3cf1336406137c54b4681877cb220e64d + ExpoFileSystem: eecaf6796aed0f4dd20042dc2ca2cac6c4bc1185 + ExpoModulesCore: b2ae7a3fc6193556273c5db90065fbe7e11c7a60 + ExpoModulesTestCore: b7729fdcea4e82dbef9722dc1e84e29ed0d281b0 EXStructuredHeaders: 5b0f47259db047dc1fdfa84752e292c2bfa68ecd - EXUpdates: f23be6de81d1c0ca07ef03995c253efe46abaa52 + EXUpdates: b99cb55ba2681f75f5d3a2dcab0afcfa70873f11 EXUpdatesInterface: 3e444e2093e25b7ca0999a7d8c16e8392dee70c3 - FBLazyVector: 84f6edbe225f38aebd9deaf1540a4160b1f087d7 - FBReactNativeSpec: c604c4a0926c5890b62c976b34943eab46d18b5e + FBLazyVector: 56e0e498dbb513b96c40bac6284729ba4e62672d + FBReactNativeSpec: e3be705fc629a4d9f6e9acd073adc01ddbc8aab6 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 + hermes-engine: 1d1835b2cc54c381909d94d1b3c8e0a2f1a94a0e + libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 Nimble: 97d90931cca412a23224ff29e258809f75c258f7 OHHTTPStubs: 90eac6d8f2c18317baeca36698523dc67c513831 Quick: d32871931c05547cb4e0bc9009d66a18b50d8558 RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0 - RCTRequired: ab7f915c15569f04a49669e573e6e319a53f9faa - RCTTypeSafety: 63b97ced7b766865057e7154db0e81ce4ee6cf1e + RCTRequired: 2544c0f1081a5fa12e108bb8cb40e5f4581ccd87 + RCTTypeSafety: 50efabe2b115c11ed03fbf3fd79e2f163ddb5d7c ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825 - React: 1c87497e50fa40ba9c54e5ea5e53483a0f8eecc0 - React-callinvoker: e3a52a9a93e3eb004d7282c26a4fb27003273fe6 - React-Codegen: f97ac7804e2468e514eea6cc44e68d2677d0de69 - React-Core: 91326ebf4dafb4bd76f04171719c907aebb9fc01 - React-CoreModules: 2ff1684dd517f0c441495d90a704d499f05e9d0a - React-cxxreact: 2d53721f4eb9a9741a55ad09cb006474b85752b2 - React-debug: 4678e73a37cb501d784e99ff0f219b4940362a3b - React-Fabric: ca937a8fa091aab4ae5b91bc352a00cab4e66895 - React-FabricImage: 87a62069d5735e442091a61a5a89bf1ecc3a0abf - React-graphics: f0d5040263a9649e2a70ebe27b3120c49411afef - React-ImageManager: 6c4bf9d5ed363ead7b5aaf820a3feab221b7063e - React-jsc: 6bec8ccbfbd1c824051ddbbf6f1ae013d47328e7 - React-jserrorhandler: 6e7a7e187583e14dc7a0053a2bdd66c252ea3b21 - React-jsi: cc036770a4d5e3e409fe618d8c888f2ccc0fdd14 - React-jsiexecutor: e1fe14c65f21e25e82713cbf8227d29edcb36f3e - React-jsinspector: 9ac353eccf6ab54d1e0a33862ba91221d1e88460 - React-logger: 0a57b68dd2aec7ff738195f081f0520724b35dab - React-Mapbuffer: 63913773ed7f96b814a2521e13e6d010282096ad - React-nativeconfig: d7af5bae6da70fa15ce44f045621cf99ed24087c - React-NativeModulesApple: d5a1abf3d7ef808cdf1d27e795c741f0c5e14ea0 - React-perflogger: 8a1e1af5733004bdd91258dcefbde21e0d1faccd - React-RCTActionSheet: 64bbff3a3963664c2d0146f870fe8e0264aee4c4 - React-RCTAnimation: b698168a7269265a4694727196484342d695f0c1 - React-RCTAppDelegate: e84f7341c398a23b652ac7d86205cc66c97111c2 - React-RCTBlob: 012d6ce039e89e485cf323788dcf6f8b350464f5 - React-RCTFabric: 7f9692671806bcf1be2867533f2b73f7c0ca3c5f - React-RCTImage: ac0e77a44c290b20db783649b2b9cddc93e3eb99 - React-RCTLinking: e626fd2900913fe5d25922ea1be394b7aafa09c9 - React-RCTNetwork: d3114bce3977dafe8bd06421b29812f5a8527ba0 - React-RCTSettings: a53511f90d8df637a1a11ac729179a4d2f734481 - React-RCTText: f0176f5f5952f9a4a2c7354f5ae71f7c420aaf34 - React-RCTVibration: 8160223c6eda5b187079fec204f80eca8b8f3177 - React-rendererdebug: ed286b4da8648c27d6ed3ae1410d4b21ba890d5a - React-rncore: 71896d90379f60bf316aea2ff4135d98f6652250 - React-runtimeexecutor: e6ab6bb083dbdbdd489cff426ed0bce0652e6edf - React-runtimescheduler: 96c8bfa2ea02443b79cd9359afb91dfd1bf3b958 - React-utils: 6e5ad394416482ae21831050928ae27348f83487 - ReactCommon: 5fd44dbef85dfbafc87facae700c66d2da71b2cb + React: 84221d5e0ce297bc57c4b6af539a62d812d89f10 + React-callinvoker: 5d17577ecc7f784535ebedf3aad4bcbf8f4b5117 + React-Codegen: 857e7984fc277aadde2a7a427288b6918ece7b2b + React-Core: 8e782e7e24c7843871a0d9c3c8d7c5b3ebb73832 + React-CoreModules: 7875ee247e3e6e0e683b52cd1cdda1b71618bd55 + React-cxxreact: 788cd771c6e94d44f8d472fdfae89b67226067ea + React-debug: 55c7f2b8463bfe85567c9f4ede904085601130c9 + React-Fabric: 8cb43853496bb8032420edf62e7281c53109e682 + React-FabricImage: fbdc0ef7ed58a87c77600017c19a751932de3e47 + React-graphics: dc8307b615f14e13f1081ac23ea66697808bcd29 + React-hermes: d9acaa4ebf2118d9bd8a541af8c620c467b356b6 + React-ImageManager: 2a97ddc9b1f459121697d629cfbe69712997d76f + React-jserrorhandler: b97b16674258ccaeff5a70047a097a140e76d12d + React-jsi: 1d59d0a148c76641ac577729e0268bafa494152c + React-jsiexecutor: 262b66928ad948491d03fd328bb5b822cce94647 + React-jsinspector: 32db5e364bcae8fca8cdf8891830636275add0c5 + React-logger: 0331362115f0f5b392bd7ed14636d1a3ea612479 + React-Mapbuffer: 7c35cd53a22d0be04d3f26f7881c7fb7dd230216 + React-nativeconfig: 1166714a4f7ea57a0df5c2cb44fbc70f98d580f9 + React-NativeModulesApple: 726664e9829eb5eed8170241000e46ead269a05f + React-perflogger: 0dd9f1725d55f8264b81efadd373fe1d9cca7dc2 + React-RCTActionSheet: 05656d2102b0d0a2676d58bad4d80106af5367b2 + React-RCTAnimation: 6c66beae98730fb7615df28caf651e295f2401e5 + React-RCTAppDelegate: 891b80c596fffcb3f90431739495d606a9a0d610 + React-RCTBlob: 8ecee445ec5fa9ed8a8621a136183c1045165100 + React-RCTFabric: f291e06bc63fef26cdd105537bae5c6a8d3bdca8 + React-RCTImage: 585b16465146cb839da02f3179ce7cb19d332642 + React-RCTLinking: 09ba11f7df62946e7ddca1b51aa3bf47b230e008 + React-RCTNetwork: e070f8d2fca60f1e9571936ce54d165e77129e76 + React-RCTSettings: b08c7ff191f0a5421aab198ea1086c9a8d513bde + React-RCTText: f6cc5a3cf0f1a4f3d1256657dca1025e4cfe45e0 + React-RCTVibration: d9948962139f9924ef87f23ab240e045e496213b + React-rendererdebug: ee05480666415f7a76e6cf0a7a50363423f44809 + React-rncore: f0ff055509577e8eb18d0b9352fc9ab2720aa601 + React-runtimeexecutor: 56f562a608056fb0c1711d900a992e26f375d817 + React-runtimescheduler: 814b644a5f456c7df1fba7bcd9914707152527c6 + React-utils: 987a4526a2fc0acdfaf87888adfe0bf9d0452066 + ReactCommon: 2947b0bffd82ea0e58ca7928881152d4c6dae9af SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 sqlite3: f163dbbb7aa3339ad8fc622782c2d9d7b72f7e9c - Yoga: 64cd2a583ead952b0315d5135bf39e053ae9be70 + Yoga: 9e6a04eacbd94f97d94577017e9f23b3ab41cf6c PODFILE CHECKSUM: 32b16f07653241ea742140d21bd83f8950e87c9a diff --git a/apps/native-tests/package.json b/apps/native-tests/package.json index 8e913d359e9b9..c167a2c506b95 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.4" + "react-native": "0.73.5" }, "devDependencies": { "@babel/core": "^7.12.9" diff --git a/apps/router-e2e/package.json b/apps/router-e2e/package.json index e20d3c1e25988..fb2319ad2ebd5 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.4" + "react-native": "0.73.5" }, "devDependencies": { "autoprefixer": "^10.4.16", diff --git a/apps/sandbox/package.json b/apps/sandbox/package.json index 20264322353a7..d65f46f0f9982 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.4" + "react-native": "0.73.5" }, "devDependencies": { "babel-preset-expo": "~10.0.0", diff --git a/apps/test-suite/package.json b/apps/test-suite/package.json index 0dd3d37ba40c0..09e7a223d639c 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.4", + "react-native": "0.73.5", "react-native-gesture-handler": "~2.14.0", "sinon": "^7.1.1" }, diff --git a/home/package.json b/home/package.json index 1f3089f81fd65..32446c043200d 100644 --- a/home/package.json +++ b/home/package.json @@ -58,7 +58,7 @@ "prop-types": "^15.7.2", "querystring": "^0.2.0", "react": "18.2.0", - "react-native": "0.73.4", + "react-native": "0.73.5", "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 42a282a52b5fc..8c4b36057415f 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -837,7 +837,7 @@ PODS: - React-Core - EXNotifications (0.27.6): - ExpoModulesCore - - Expo (50.0.9): + - Expo (50.0.11): - ExpoModulesCore - ExpoAppleAuthentication (6.3.0): - ExpoModulesCore @@ -849,7 +849,7 @@ PODS: - ExpoModulesCore - ExpoBrightness (11.8.0): - ExpoModulesCore - - ExpoCamera (14.0.5): + - ExpoCamera (14.0.6): - ExpoModulesCore - ZXingObjC/OneD - ZXingObjC/PDF417 @@ -866,9 +866,9 @@ PODS: - ExpoModulesCore - ExpoDocumentPicker (11.10.1): - ExpoModulesCore - - ExpoFileSystem (16.0.7): + - ExpoFileSystem (16.0.8): - ExpoModulesCore - - ExpoFileSystem/Tests (16.0.7): + - ExpoFileSystem/Tests (16.0.8): - ExpoModulesCore - ExpoModulesTestCore - ExpoGL (13.6.0): @@ -988,14 +988,14 @@ PODS: - FBAEMKit (16.2.1): - FBSDKCoreKit_Basics (= 16.2.1) - FBAudienceNetwork (6.14.0) - - FBLazyVector (0.73.4) - - FBReactNativeSpec (0.73.4): - - RCT-Folly (= 2022.05.16.00) - - RCTRequired (= 0.73.4) - - RCTTypeSafety (= 0.73.4) - - React-Core (= 0.73.4) - - React-jsi (= 0.73.4) - - ReactCommon/turbomodule/core (= 0.73.4) + - FBLazyVector (0.73.5) + - FBReactNativeSpec (0.73.5): + - RCT-Folly (= 2022.05.16.00) + - RCTRequired (= 0.73.5) + - RCTTypeSafety (= 0.73.5) + - React-Core (= 0.73.5) + - React-jsi (= 0.73.5) + - ReactCommon/turbomodule/core (= 0.73.5) - FBSDKCoreKit (16.2.1): - FBAEMKit (= 16.2.1) - FBSDKCoreKit_Basics (= 16.2.1) @@ -1108,15 +1108,9 @@ PODS: - AppAuth/Core (~> 1.6) - GTMSessionFetcher/Core (< 4.0, >= 1.5) - GTMSessionFetcher/Core (3.1.1) - - hermes-engine (0.73.4): - - hermes-engine/Hermes (= 0.73.4) - - hermes-engine/inspector (= 0.73.4) - - hermes-engine/inspector_chrome (= 0.73.4) - - hermes-engine/Public (= 0.73.4) - - hermes-engine/Hermes (0.73.4) - - hermes-engine/inspector (0.73.4) - - hermes-engine/inspector_chrome (0.73.4) - - hermes-engine/Public (0.73.4) + - hermes-engine (0.73.5): + - hermes-engine/Pre-built (= 0.73.5) + - hermes-engine/Pre-built (0.73.5) - JKBigInteger (0.0.6) - libaom (3.0.0): - libvmaf (>= 2.2.0) @@ -1177,27 +1171,27 @@ PODS: - fmt (~> 6.2.1) - glog - libevent - - RCTRequired (0.73.4) - - RCTTypeSafety (0.73.4): - - FBLazyVector (= 0.73.4) - - RCTRequired (= 0.73.4) - - React-Core (= 0.73.4) + - RCTRequired (0.73.5) + - RCTTypeSafety (0.73.5): + - FBLazyVector (= 0.73.5) + - RCTRequired (= 0.73.5) + - React-Core (= 0.73.5) - ReachabilitySwift (5.0.0) - - React (0.73.4): - - React-Core (= 0.73.4) - - React-Core/DevSupport (= 0.73.4) - - React-Core/RCTWebSocket (= 0.73.4) - - React-RCTActionSheet (= 0.73.4) - - React-RCTAnimation (= 0.73.4) - - React-RCTBlob (= 0.73.4) - - React-RCTImage (= 0.73.4) - - React-RCTLinking (= 0.73.4) - - React-RCTNetwork (= 0.73.4) - - React-RCTSettings (= 0.73.4) - - React-RCTText (= 0.73.4) - - React-RCTVibration (= 0.73.4) - - React-callinvoker (0.73.4) - - React-Codegen (0.73.4): + - React (0.73.5): + - React-Core (= 0.73.5) + - React-Core/DevSupport (= 0.73.5) + - React-Core/RCTWebSocket (= 0.73.5) + - React-RCTActionSheet (= 0.73.5) + - React-RCTAnimation (= 0.73.5) + - React-RCTBlob (= 0.73.5) + - React-RCTImage (= 0.73.5) + - React-RCTLinking (= 0.73.5) + - React-RCTNetwork (= 0.73.5) + - React-RCTSettings (= 0.73.5) + - React-RCTText (= 0.73.5) + - React-RCTVibration (= 0.73.5) + - React-callinvoker (0.73.5) + - React-Codegen (0.73.5): - DoubleConversion - FBReactNativeSpec - glog @@ -1212,11 +1206,11 @@ PODS: - React-rncore - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.73.4): + - React-Core (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) + - React-Core/Default (= 0.73.5) - React-cxxreact - React-hermes - React-jsi @@ -1226,7 +1220,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/CoreModulesHeaders (0.73.4): + - React-Core/CoreModulesHeaders (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1240,7 +1234,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/Default (0.73.4): + - React-Core/Default (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1253,23 +1247,23 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/DevSupport (0.73.4): + - React-Core/DevSupport (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) - - React-Core/RCTWebSocket (= 0.73.4) + - React-Core/Default (= 0.73.5) + - React-Core/RCTWebSocket (= 0.73.5) - React-cxxreact - React-hermes - React-jsi - React-jsiexecutor - - React-jsinspector (= 0.73.4) + - React-jsinspector (= 0.73.5) - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.73.4): + - React-Core/RCTActionSheetHeaders (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1283,7 +1277,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTAnimationHeaders (0.73.4): + - React-Core/RCTAnimationHeaders (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1297,7 +1291,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTBlobHeaders (0.73.4): + - React-Core/RCTBlobHeaders (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1311,7 +1305,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTImageHeaders (0.73.4): + - React-Core/RCTImageHeaders (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1325,7 +1319,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTLinkingHeaders (0.73.4): + - React-Core/RCTLinkingHeaders (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1339,7 +1333,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTNetworkHeaders (0.73.4): + - React-Core/RCTNetworkHeaders (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1353,7 +1347,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTSettingsHeaders (0.73.4): + - React-Core/RCTSettingsHeaders (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1367,7 +1361,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTTextHeaders (0.73.4): + - React-Core/RCTTextHeaders (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1381,7 +1375,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTVibrationHeaders (0.73.4): + - React-Core/RCTVibrationHeaders (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1395,11 +1389,11 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTWebSocket (0.73.4): + - React-Core/RCTWebSocket (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) + - React-Core/Default (= 0.73.5) - React-cxxreact - React-hermes - React-jsi @@ -1409,33 +1403,33 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-CoreModules (0.73.4): + - React-CoreModules (0.73.5): - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety (= 0.73.4) + - RCTTypeSafety (= 0.73.5) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.73.4) - - React-jsi (= 0.73.4) + - React-Core/CoreModulesHeaders (= 0.73.5) + - React-jsi (= 0.73.5) - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.73.4) + - React-RCTImage (= 0.73.5) - ReactCommon - SocketRocket (= 0.6.1) - - React-cxxreact (0.73.4): + - React-cxxreact (0.73.5): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-debug (= 0.73.4) - - React-jsi (= 0.73.4) - - React-jsinspector (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) - - React-runtimeexecutor (= 0.73.4) - - React-debug (0.73.4) - - React-Fabric (0.73.4): + - React-callinvoker (= 0.73.5) + - React-debug (= 0.73.5) + - React-jsi (= 0.73.5) + - React-jsinspector (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) + - React-runtimeexecutor (= 0.73.5) + - React-debug (0.73.5) + - React-Fabric (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1446,20 +1440,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.73.4) - - React-Fabric/attributedstring (= 0.73.4) - - React-Fabric/componentregistry (= 0.73.4) - - React-Fabric/componentregistrynative (= 0.73.4) - - React-Fabric/components (= 0.73.4) - - React-Fabric/core (= 0.73.4) - - React-Fabric/imagemanager (= 0.73.4) - - React-Fabric/leakchecker (= 0.73.4) - - React-Fabric/mounting (= 0.73.4) - - React-Fabric/scheduler (= 0.73.4) - - React-Fabric/telemetry (= 0.73.4) - - React-Fabric/templateprocessor (= 0.73.4) - - React-Fabric/textlayoutmanager (= 0.73.4) - - React-Fabric/uimanager (= 0.73.4) + - React-Fabric/animations (= 0.73.5) + - React-Fabric/attributedstring (= 0.73.5) + - React-Fabric/componentregistry (= 0.73.5) + - React-Fabric/componentregistrynative (= 0.73.5) + - React-Fabric/components (= 0.73.5) + - React-Fabric/core (= 0.73.5) + - React-Fabric/imagemanager (= 0.73.5) + - React-Fabric/leakchecker (= 0.73.5) + - React-Fabric/mounting (= 0.73.5) + - React-Fabric/scheduler (= 0.73.5) + - React-Fabric/telemetry (= 0.73.5) + - React-Fabric/templateprocessor (= 0.73.5) + - React-Fabric/textlayoutmanager (= 0.73.5) + - React-Fabric/uimanager (= 0.73.5) - React-graphics - React-jsi - React-jsiexecutor @@ -1468,7 +1462,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.73.4): + - React-Fabric/animations (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1487,7 +1481,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.73.4): + - React-Fabric/attributedstring (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1506,7 +1500,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.73.4): + - React-Fabric/componentregistry (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1525,7 +1519,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.73.4): + - React-Fabric/componentregistrynative (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1544,7 +1538,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.73.4): + - React-Fabric/components (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1555,17 +1549,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.73.4) - - React-Fabric/components/legacyviewmanagerinterop (= 0.73.4) - - React-Fabric/components/modal (= 0.73.4) - - React-Fabric/components/rncore (= 0.73.4) - - React-Fabric/components/root (= 0.73.4) - - React-Fabric/components/safeareaview (= 0.73.4) - - React-Fabric/components/scrollview (= 0.73.4) - - React-Fabric/components/text (= 0.73.4) - - React-Fabric/components/textinput (= 0.73.4) - - React-Fabric/components/unimplementedview (= 0.73.4) - - React-Fabric/components/view (= 0.73.4) + - React-Fabric/components/inputaccessory (= 0.73.5) + - React-Fabric/components/legacyviewmanagerinterop (= 0.73.5) + - React-Fabric/components/modal (= 0.73.5) + - React-Fabric/components/rncore (= 0.73.5) + - React-Fabric/components/root (= 0.73.5) + - React-Fabric/components/safeareaview (= 0.73.5) + - React-Fabric/components/scrollview (= 0.73.5) + - React-Fabric/components/text (= 0.73.5) + - React-Fabric/components/textinput (= 0.73.5) + - React-Fabric/components/unimplementedview (= 0.73.5) + - React-Fabric/components/view (= 0.73.5) - React-graphics - React-jsi - React-jsiexecutor @@ -1574,7 +1568,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.73.4): + - React-Fabric/components/inputaccessory (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1593,7 +1587,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.73.4): + - React-Fabric/components/legacyviewmanagerinterop (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1612,7 +1606,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.73.4): + - React-Fabric/components/modal (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1631,7 +1625,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.73.4): + - React-Fabric/components/rncore (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1650,7 +1644,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.73.4): + - React-Fabric/components/root (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1669,7 +1663,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.73.4): + - React-Fabric/components/safeareaview (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1688,7 +1682,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.73.4): + - React-Fabric/components/scrollview (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1707,7 +1701,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.73.4): + - React-Fabric/components/text (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1726,7 +1720,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.73.4): + - React-Fabric/components/textinput (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1745,7 +1739,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.73.4): + - React-Fabric/components/unimplementedview (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1764,7 +1758,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.73.4): + - React-Fabric/components/view (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1784,7 +1778,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.73.4): + - React-Fabric/core (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1803,7 +1797,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.73.4): + - React-Fabric/imagemanager (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1822,7 +1816,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.73.4): + - React-Fabric/leakchecker (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1841,7 +1835,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.73.4): + - React-Fabric/mounting (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1860,7 +1854,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.73.4): + - React-Fabric/scheduler (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1879,7 +1873,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.73.4): + - React-Fabric/telemetry (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1898,7 +1892,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.73.4): + - React-Fabric/templateprocessor (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1917,7 +1911,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.73.4): + - React-Fabric/textlayoutmanager (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1937,7 +1931,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.73.4): + - React-Fabric/uimanager (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog @@ -1956,42 +1950,42 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.73.4): + - React-FabricImage (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired (= 0.73.4) - - RCTTypeSafety (= 0.73.4) + - RCTRequired (= 0.73.5) + - RCTTypeSafety (= 0.73.5) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.73.4) + - React-jsiexecutor (= 0.73.5) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-graphics (0.73.4): + - React-graphics (0.73.5): - glog - RCT-Folly/Fabric (= 2022.05.16.00) - - React-Core/Default (= 0.73.4) + - React-Core/Default (= 0.73.5) - React-utils - - React-hermes (0.73.4): + - React-hermes (0.73.5): - 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.4) + - React-cxxreact (= 0.73.5) - React-jsi - - React-jsiexecutor (= 0.73.4) - - React-jsinspector (= 0.73.4) - - React-perflogger (= 0.73.4) - - React-ImageManager (0.73.4): + - React-jsiexecutor (= 0.73.5) + - React-jsinspector (= 0.73.5) + - React-perflogger (= 0.73.5) + - React-ImageManager (0.73.5): - glog - RCT-Folly/Fabric - React-Core/Default @@ -2000,36 +1994,36 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jsc (0.73.4): - - React-jsc/Fabric (= 0.73.4) - - React-jsi (= 0.73.4) - - React-jsc/Fabric (0.73.4): - - React-jsi (= 0.73.4) - - React-jserrorhandler (0.73.4): + - React-jsc (0.73.5): + - React-jsc/Fabric (= 0.73.5) + - React-jsi (= 0.73.5) + - React-jsc/Fabric (0.73.5): + - React-jsi (= 0.73.5) + - React-jserrorhandler (0.73.5): - RCT-Folly/Fabric (= 2022.05.16.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.73.4): + - React-jsi (0.73.5): - boost (= 1.83.0) - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-jsiexecutor (0.73.4): + - React-jsiexecutor (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-perflogger (= 0.73.4) - - React-jsinspector (0.73.4) - - React-logger (0.73.4): + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-perflogger (= 0.73.5) + - React-jsinspector (0.73.5) + - React-logger (0.73.5): - glog - - React-Mapbuffer (0.73.4): + - React-Mapbuffer (0.73.5): - glog - React-debug - react-native-netinfo (11.1.0): @@ -2048,8 +2042,8 @@ PODS: - React-Core - react-native-webview (13.6.4): - React-Core - - React-nativeconfig (0.73.4) - - React-NativeModulesApple (0.73.4): + - React-nativeconfig (0.73.5) + - React-NativeModulesApple (0.73.5): - glog - hermes-engine - React-callinvoker @@ -2059,10 +2053,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.73.4) - - React-RCTActionSheet (0.73.4): - - React-Core/RCTActionSheetHeaders (= 0.73.4) - - React-RCTAnimation (0.73.4): + - React-perflogger (0.73.5) + - React-RCTActionSheet (0.73.5): + - React-Core/RCTActionSheetHeaders (= 0.73.5) + - React-RCTAnimation (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -2070,7 +2064,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.73.4): + - React-RCTAppDelegate (0.73.5): - RCT-Folly - RCTRequired - RCTTypeSafety @@ -2084,7 +2078,7 @@ PODS: - React-RCTNetwork - React-runtimescheduler - ReactCommon - - React-RCTBlob (0.73.4): + - React-RCTBlob (0.73.5): - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Codegen @@ -2094,7 +2088,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.73.4): + - React-RCTFabric (0.73.5): - glog - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) @@ -2112,7 +2106,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.73.4): + - React-RCTImage (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -2121,14 +2115,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.73.4): + - React-RCTLinking (0.73.5): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.73.4) - - React-jsi (= 0.73.4) + - React-Core/RCTLinkingHeaders (= 0.73.5) + - React-jsi (= 0.73.5) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.73.4) - - React-RCTNetwork (0.73.4): + - ReactCommon/turbomodule/core (= 0.73.5) + - React-RCTNetwork (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -2136,7 +2130,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.73.4): + - React-RCTSettings (0.73.5): - RCT-Folly (= 2022.05.16.00) - RCTTypeSafety - React-Codegen @@ -2144,25 +2138,25 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTText (0.73.4): - - React-Core/RCTTextHeaders (= 0.73.4) + - React-RCTText (0.73.5): + - React-Core/RCTTextHeaders (= 0.73.5) - Yoga - - React-RCTVibration (0.73.4): + - React-RCTVibration (0.73.5): - RCT-Folly (= 2022.05.16.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.73.4): + - React-rendererdebug (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - RCT-Folly (= 2022.05.16.00) - React-debug - - React-rncore (0.73.4) - - React-runtimeexecutor (0.73.4): - - React-jsi (= 0.73.4) - - React-runtimescheduler (0.73.4): + - React-rncore (0.73.5) + - React-runtimeexecutor (0.73.5): + - React-jsi (= 0.73.5) + - React-runtimescheduler (0.73.5): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -2173,48 +2167,48 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.73.4): + - React-utils (0.73.5): - glog - RCT-Folly (= 2022.05.16.00) - React-debug - - ReactCommon (0.73.4): - - React-logger (= 0.73.4) - - ReactCommon/turbomodule (= 0.73.4) - - ReactCommon/turbomodule (0.73.4): + - ReactCommon (0.73.5): + - React-logger (= 0.73.5) + - ReactCommon/turbomodule (= 0.73.5) + - ReactCommon/turbomodule (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) - - ReactCommon/turbomodule/bridging (= 0.73.4) - - ReactCommon/turbomodule/core (= 0.73.4) - - ReactCommon/turbomodule/bridging (0.73.4): + - React-callinvoker (= 0.73.5) + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) + - ReactCommon/turbomodule/bridging (= 0.73.5) + - ReactCommon/turbomodule/core (= 0.73.5) + - ReactCommon/turbomodule/bridging (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) - - ReactCommon/turbomodule/core (0.73.4): + - React-callinvoker (= 0.73.5) + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) + - ReactCommon/turbomodule/core (0.73.5): - DoubleConversion - fmt (~> 6.2.1) - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.4) - - React-cxxreact (= 0.73.4) - - React-jsi (= 0.73.4) - - React-logger (= 0.73.4) - - React-perflogger (= 0.73.4) + - React-callinvoker (= 0.73.5) + - React-cxxreact (= 0.73.5) + - React-jsi (= 0.73.5) + - React-logger (= 0.73.5) + - React-perflogger (= 0.73.5) - RNCAsyncStorage (1.18.2): - React-Core - RNCPicker (2.6.1): @@ -3008,7 +3002,7 @@ EXTERNAL SOURCES: :git: https://github.com/googlemaps/google-maps-ios-utils.git hermes-engine: :podspec: "../react-native-lab/react-native/packages/react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-2023-11-17-RNv0.73.0-21043a3fc062be445e56a2c10ecd8be028dd9cc5 + :tag: hermes-2024-02-20-RNv0.73.5-18f99ace4213052c5e7cdbcd39ee9766cd5df7e4 JKBigInteger: :podspec: vendored/common/JKBigInteger.podspec.json lottie-react-native: @@ -3275,19 +3269,19 @@ SPEC CHECKSUMS: EXManifests: 5e8c29f36c716af768a4ea47ec05e1b89ab93091 EXMediaLibrary: 179f3ffc668ca2eb7b14e8ed7b404321624f9093 EXNotifications: e11f0e9a5b657c064a481a5d522f3bc5a07bf7cd - Expo: be3d5d402b533252fdbb77cfa277df5e930aae17 + Expo: bbffa600c41f904151a925e5a214d1f4c5a79794 ExpoAppleAuthentication: 4fc9972356977f009911f2f3a5f56319c2a5b11b ExpoBackgroundFetch: 80d41ec15c6cce0bafb5d2326b8e85f42152eba7 ExpoBattery: 60bf880aea8f769fe39f709a920442542c1bfd62 ExpoBlur: e832d874bd94afc0645daddbd3162ec1ce172080 ExpoBrightness: 6d160de5877289d11674aea61aacdb37422774cf - ExpoCamera: 9eb966748a7897e84986567e3eef71836c219823 + ExpoCamera: a3d19935309c1d0150c5d792eeb82d906dd0979e ExpoCellular: e4e0788a9949726f0d068c4ae45414b4b7d4566d ExpoClipboard: b597982124f067ff9f5b89093eb3d97898d5d877 ExpoCrypto: b6428f48599c007676dc81a9b5f72c07e62fdccc ExpoDevice: d204395e17fffdcefa7470bdef33b07719ac41b1 ExpoDocumentPicker: 70254802886e29a45d4ad25486e64b6fc9c8f0cc - ExpoFileSystem: c7488590959bf85ebc114909eb8186cbd62e3a25 + ExpoFileSystem: eecaf6796aed0f4dd20042dc2ca2cac6c4bc1185 ExpoGL: 085542f97b13f2428ac2edb077c9a90f4566944d ExpoHaptics: 28a771b630353cd6e8dcf1b1e3e693e38ad7c3c3 ExpoHead: 8224345e80abcf4c97b31c99805dd5a3c8d3404d @@ -3325,8 +3319,8 @@ SPEC CHECKSUMS: EXUpdatesInterface: 3e444e2093e25b7ca0999a7d8c16e8392dee70c3 FBAEMKit: 4763aa27b8f69eb9d2c274189e91388de1dbd88a FBAudienceNetwork: 03e273f66b70756be7d060927111af97b7641b06 - FBLazyVector: b44f42b7dcd9365a7a41650c91df88a8518aad8e - FBReactNativeSpec: ba35a467b069e63dc3abd03c56bfc1a2b6ee8e6e + FBLazyVector: 424ac6e979f06592ed6fe3db63b3d5e99c8a81e3 + FBReactNativeSpec: ef80b40c3d14ebbc4232d4311b7e7a51d3cd1fae FBSDKCoreKit: 40ae989ca1da1bbeba56acd4671dde64ad415506 FBSDKCoreKit_Basics: 1257d71d2d692661290bf2af4bea5f9a101387af FirebaseCore: 25c0400b670fd1e2f2104349cd3b5dcce8d9418f @@ -3345,7 +3339,7 @@ SPEC CHECKSUMS: GoogleUtilities: 13e2c67ede716b8741c7989e26893d151b2b2084 GTMAppAuth: 99fb010047ba3973b7026e45393f51f27ab965ae GTMSessionFetcher: e8647203b65cee28c5f73d0f473d096653945e72 - hermes-engine: b9b4b6552c38689dc488bf9119b42310e4b8892e + hermes-engine: 1d1835b2cc54c381909d94d1b3c8e0a2f1a94a0e JKBigInteger: 5c72131974815e969c0782c41e3452f1bbe5619f libaom: 144606b1da4b5915a1054383c3a4459ccdb3c661 libavif: 84bbb62fb232c3018d6f1bab79beea87e35de7b7 @@ -3360,28 +3354,28 @@ SPEC CHECKSUMS: PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4 Quick: d32871931c05547cb4e0bc9009d66a18b50d8558 RCT-Folly: 083a526bd53c2f793ebe3ff554c3b5eb12a93505 - RCTRequired: f1d966848ececc516d45aa000caefb394b0486ed - RCTTypeSafety: c89167c51cbe9ab9c559c78181c68fc7455ab956 + RCTRequired: 43bc946a82eb721b31f177b38ab1a9ba137c3f98 + RCTTypeSafety: b9936104646307539b74aea8452cc2e3520f8e3e ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825 - React: c39c104f1f6414ef7c442e4d437e8479748c1d57 - React-callinvoker: 89433d495478da4d9d1b0818d7bd1f8c12b81ee8 - React-Codegen: 50c0f8f073e71b929b057b68bf31be604f1dccc8 - React-Core: a85086f387ca7eb3ce38b4bb4c32aee736b0e4aa - React-CoreModules: c2b46a988bc95a802c2110467a325e79fcc93c5c - React-cxxreact: b55ddc7e3dd4efde0c31ca9d14a57e1476226e53 - React-debug: 5d263be7d66ed7b756bf06b2054ef54b8b256610 - React-Fabric: 6d64e2bf3f0d5d7fb6dbef015515c0fbd5a14284 - React-FabricImage: aac104cf08296f48e4712b2a625aca5b40b421ad - React-graphics: 6119b86c4afd49ea5f778bc5a800bbd3cc0aad02 - React-hermes: b76158def72512c30170fa5036427803da06ab3e - React-ImageManager: 02eaafed351001f9063b5e2b72bc321c64e1e13c - React-jsc: 041ca7e8eca232e02f7c525a6f9d0fffc4bffb69 - React-jserrorhandler: ba921ddfe70fe31de4769affceb27b02e8701e6f - React-jsi: 39269485ad22199662f6905666dc1caa32bf7a6e - React-jsiexecutor: 6c7382392e57b7f75ecd8bcec54112974142c1a9 - React-jsinspector: 063436a1c1466897bed81a8154eeb365a0c05a9a - React-logger: fdeda94833af60406ef3aed66d16081799dd6ecf - React-Mapbuffer: 00587d40164b57fe7fcf90a51c9ba08c075f00b1 + React: 007a17b91a000f00f0966e748e0907413380154f + React-callinvoker: 4864940e2498c63584917652ae75dc286113c293 + React-Codegen: 857e7984fc277aadde2a7a427288b6918ece7b2b + React-Core: 21939c5acfc10cddb48d145ea28d6974fa8fb2d3 + React-CoreModules: da1651c8fc628f868c93e2c6d26231f6e754cbf3 + React-cxxreact: 39a4cc2a92e8cc500b3d7509da5a09c904a4d66d + React-debug: e2f9013efe8041ddc3cc0633aa48153fe82e9041 + React-Fabric: 947d6193aa6fbbfbd2d4d9c7e80f313ff5e9e7e7 + React-FabricImage: 7888c34a188542310148074580a85b9f99fe0029 + React-graphics: c90243f24fbf7b2e65056628237c1bc523b97a35 + React-hermes: e7473c22ec8ebe44910209eafa95c801c8a65a2c + React-ImageManager: 52ab70e3b7cd83351a1c2bb8f948bc3e59a5394b + React-jsc: 2d01b564886f6a7c505035b7d20ceedeb7e35a60 + React-jserrorhandler: 079215c7228a5368603edf833da6255b3fa54109 + React-jsi: db79852edceb94340a69107872faaef508e13d65 + React-jsiexecutor: b49ac635cb9c540eb210f3173ca3bb3140951cf0 + React-jsinspector: 4556fa97ec3e9e1e06e642ef5d99cfce80a173ff + React-logger: d11e2cd278c61ea3baca6913c8d2cd347c1073e8 + React-Mapbuffer: 292bbe1cd0ab3bd59ebad371b8174ad74b2c42d1 react-native-netinfo: 3aa5637c18834966e0c932de8ae1ae56fea20a97 react-native-pager-view: c29d484f19c49ff19525a94105e4ab2c4d4ae273 react-native-safe-area-context: 0ee144a6170530ccc37a0fd9388e28d06f516a89 @@ -3389,26 +3383,26 @@ SPEC CHECKSUMS: react-native-skia: 1a2fbce7fc198eb229b13f15bce48a06b5c92d69 react-native-slider: 33b8d190b59d4f67a541061bb91775d53d617d9d react-native-webview: 4499e4e44aaf38c79f07da3c421a3b5c9055cb4f - React-nativeconfig: e4acb7cad795939e9304b917d49ee0d148d293ed - React-NativeModulesApple: d67fb7f005c2dd9d121bc70b1264d93da91095cb - React-perflogger: 1cf9a64136e59aa80790272ebe2396ace411df63 - React-RCTActionSheet: a59784a9fdfa26c38140a48c5c4bc8dd00c7e5c8 - React-RCTAnimation: 1da5e1a1bcf259afa0acb67cc28127adbfc13d7d - React-RCTAppDelegate: c8c7955ee27153a6519367b345058d775e290a6b - React-RCTBlob: 781be6481afec1e6a61bdcf7fcb8c839d5e7e373 - React-RCTFabric: e8e040746acc7a78c2d64c1acfc201655d123dc1 - React-RCTImage: 79e659c85bf791ae9740996f6404acad98e5a6e8 - React-RCTLinking: 70dc2923eba3dbe3ac6483be675c99b481188a36 - React-RCTNetwork: 4a8c1b4df2471d296ab5f3518a46368cae2e157b - React-RCTSettings: 3a58cf588a3a2779c5fe2f486c83722ddf0343c3 - React-RCTText: b8a77510750def2926e9e7ff36b1ac392264b0d6 - React-RCTVibration: 9cc18df7d6ea9094295993f3b331ca01b26e1449 - React-rendererdebug: ef4973e9803576ddfeead803a456dfbc936fed51 - React-rncore: 3791dc57afbe3e682c3208da79aaca40efe4cd08 - React-runtimeexecutor: cad33b08c46f77fbf006746b2f4398b62cbc0486 - React-runtimescheduler: b24bd99a079690ad08893539c0995249af47e18e - React-utils: 9256016f8792ee34f0bec50fe46cda5132adc315 - ReactCommon: 3a0ef76c496a80271b75b3522e040eb748fe42dd + React-nativeconfig: 6e62f01861d09c74755f8d6994f68ecbafcf133a + React-NativeModulesApple: 7ca204e5b4efbc0a1127865abc828960b3a86d04 + React-perflogger: 96a7cdb8ea94a01c46d7891b4a5e08e90d5baa9e + React-RCTActionSheet: bc4c3d267996354e57b91dcd97b826ef85f5b1ff + React-RCTAnimation: 33537034f563458ca09dd564596243119fd68d38 + React-RCTAppDelegate: fe3080f9d3c5831a5a07deba36d211e01531e5db + React-RCTBlob: b279e0cc804351197c3a5ae29b146cad1a651319 + React-RCTFabric: 4a1e3b245983d487a6a30adc79cb8cd5d3632fd4 + React-RCTImage: 8c9766f6bf7392dca5520da9a1be5d39d4986cf7 + React-RCTLinking: 0da585228e36b6c8a4166987f2c683d7b325673a + React-RCTNetwork: a643175dbdb4acff35b03b9f390160a96a9f329e + React-RCTSettings: 05ab6eb99455619711729b22cb709b1049a687ec + React-RCTText: ad5bc5a5de7c677c40278f5ca61bc0448839dd8b + React-RCTVibration: 1eb5367fbd15f4ca959793f529407ceaabcc3ec7 + React-rendererdebug: cd339429f372be06ad30ecaf457e233c5fac1170 + React-rncore: 93730bd137859c38e55f0a111a2e29816fb7ef65 + React-runtimeexecutor: 1ad52a308ead4b29a6be9761d936ab76a1b153eb + React-runtimescheduler: ce2bb6de20252ae7ed3e03c2f9d5f7299f22a40e + React-utils: a408837e0cf91118e407b85ab8c7b0aa23989058 + ReactCommon: 332ef6587565956d09946ad3766cf5e3b64bad63 RNCAsyncStorage: ddc4ee162bfd41b0d2c68bf2d95acd81dd7f1f93 RNCPicker: b18aaf30df596e9b1738e7c1f9ee55402a229dca RNFlashList: 4b4b6b093afc0df60ae08f9cbf6ccd4c836c667a @@ -3432,7 +3426,7 @@ SPEC CHECKSUMS: StripePaymentsUI: 595f6581a9a039fa2f23f9a77235af44c15171fc StripeUICore: 5099399e52853370736aca81b27fc0e86b1822c8 UMAppLoader: 5df85360d65cabaef544be5424ac64672e648482 - Yoga: 6c13932eedb6c4bf67a3a5a179d8de6c1166900d + Yoga: 83aa4d334949ba88652da76676a357987dee4b6b ZXingObjC: 8898711ab495761b2dbbdec76d90164a6d7e14c5 PODFILE CHECKSUM: e3334ae2012bcf8c6d1a4761191b3e2da57d7b52 diff --git a/package.json b/package.json index 669d13b94fe78..30f6ade73ada0 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ ] }, "resolutions": { - "react-native": "0.73.4", + "react-native": "0.73.5", "react-refresh": "^0.14.0", "@react-navigation/native": "^6.1.6", "@react-navigation/core": "^6.4.9", diff --git a/packages/expo-dev-launcher/package.json b/packages/expo-dev-launcher/package.json index 66a302f110617..cc1815562232a 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.4", + "react-native": "0.73.5", "react-query": "^3.34.16", "url": "^0.11.0" }, diff --git a/packages/expo-dev-menu/package.json b/packages/expo-dev-menu/package.json index 775e09c7512f7..3cb2877a7f436 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.4", + "react-native": "0.73.5", "use-subscription": "^1.8.0", "url": "^0.11.0" }, diff --git a/packages/expo/bundledNativeModules.json b/packages/expo/bundledNativeModules.json index ac5bb76f2f994..2a3d2d5e95c7e 100644 --- a/packages/expo/bundledNativeModules.json +++ b/packages/expo/bundledNativeModules.json @@ -84,7 +84,7 @@ "lottie-react-native": "6.5.1", "react": "18.2.0", "react-dom": "18.2.0", - "react-native": "0.73.4", + "react-native": "0.73.5", "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 6b387f765a111..19ad0b28817c1 100644 --- a/packages/expo/package.json +++ b/packages/expo/package.json @@ -81,6 +81,6 @@ "expo-module-scripts": "^3.4.1", "react": "18.2.0", "react-dom": "18.2.0", - "react-native": "0.73.4" + "react-native": "0.73.5" } } diff --git a/templates/expo-template-bare-minimum/package.json b/templates/expo-template-bare-minimum/package.json index 598ca7a814f1f..ded06d0082590 100644 --- a/templates/expo-template-bare-minimum/package.json +++ b/templates/expo-template-bare-minimum/package.json @@ -13,7 +13,7 @@ "expo": "~50.0.11", "expo-status-bar": "~1.11.1", "react": "18.2.0", - "react-native": "0.73.4" + "react-native": "0.73.5" }, "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 b53477952b7b3..4d6c8f6dc8f33 100644 --- a/templates/expo-template-blank-typescript/package.json +++ b/templates/expo-template-blank-typescript/package.json @@ -13,7 +13,7 @@ "expo": "~50.0.11", "expo-status-bar": "~1.11.1", "react": "18.2.0", - "react-native": "0.73.4" + "react-native": "0.73.5" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/templates/expo-template-blank/package.json b/templates/expo-template-blank/package.json index ad8f69dd2af5e..5668dd9dac9f6 100644 --- a/templates/expo-template-blank/package.json +++ b/templates/expo-template-blank/package.json @@ -13,7 +13,7 @@ "expo": "~50.0.11", "expo-status-bar": "~1.11.1", "react": "18.2.0", - "react-native": "0.73.4" + "react-native": "0.73.5" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/templates/expo-template-tabs/package.json b/templates/expo-template-tabs/package.json index b98e72c60f5b7..a2ea7bf6051db 100644 --- a/templates/expo-template-tabs/package.json +++ b/templates/expo-template-tabs/package.json @@ -26,7 +26,7 @@ "expo-web-browser": "~12.8.2", "react": "18.2.0", "react-dom": "18.2.0", - "react-native": "0.73.4", + "react-native": "0.73.5", "react-native-safe-area-context": "4.8.2", "react-native-screens": "~3.29.0", "react-native-web": "~0.19.6" diff --git a/yarn.lock b/yarn.lock index 76836a8a534e2..de0d3ff72cd2b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3119,50 +3119,49 @@ dependencies: merge-options "^3.0.4" -"@react-native-community/cli-clean@12.3.2": - version "12.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-12.3.2.tgz#d4f1730c3d22d816b4d513d330d5f3896a3f5921" - integrity sha512-90k2hCX0ddSFPT7EN7h5SZj0XZPXP0+y/++v262hssoey3nhurwF57NGWN0XAR0o9BSW7+mBfeInfabzDraO6A== +"@react-native-community/cli-clean@12.3.6": + version "12.3.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-12.3.6.tgz#e8a7910bebc97266fd5068649013a03958021fc4" + integrity sha512-gUU29ep8xM0BbnZjwz9MyID74KKwutq9x5iv4BCr2im6nly4UMf1B1D+V225wR7VcDGzbgWjaezsJShLLhC5ig== dependencies: - "@react-native-community/cli-tools" "12.3.2" + "@react-native-community/cli-tools" "12.3.6" chalk "^4.1.2" execa "^5.0.0" -"@react-native-community/cli-config@12.3.2": - version "12.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-12.3.2.tgz#1a5de302de4d597ff2fc9932a032134b6ec4325f" - integrity sha512-UUCzDjQgvAVL/57rL7eOuFUhd+d+6qfM7V8uOegQFeFEmSmvUUDLYoXpBa5vAK9JgQtSqMBJ1Shmwao+/oElxQ== +"@react-native-community/cli-config@12.3.6": + version "12.3.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-12.3.6.tgz#5f0be68270217908a739c32e3155a0e354773251" + integrity sha512-JGWSYQ9EAK6m2v0abXwFLEfsqJ1zkhzZ4CV261QZF9MoUNB6h57a274h1MLQR9mG6Tsh38wBUuNfEPUvS1vYew== dependencies: - "@react-native-community/cli-tools" "12.3.2" + "@react-native-community/cli-tools" "12.3.6" chalk "^4.1.2" cosmiconfig "^5.1.0" deepmerge "^4.3.0" glob "^7.1.3" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@12.3.2": - version "12.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.2.tgz#b2743876b03e560fbf5ef516e95387fcb6d91630" - integrity sha512-nSWQUL+51J682DlfcC1bjkUbQbGvHCC25jpqTwHIjmmVjYCX1uHuhPSqQKgPNdvtfOkrkACxczd7kVMmetxY2Q== +"@react-native-community/cli-debugger-ui@12.3.6": + version "12.3.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.6.tgz#418027a1ae76850079684d309a732eb378c7f690" + integrity sha512-SjUKKsx5FmcK9G6Pb6UBFT0s9JexVStK5WInmANw75Hm7YokVvHEgtprQDz2Uvy5znX5g2ujzrkIU//T15KQzA== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@12.3.2": - version "12.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-12.3.2.tgz#9e82b49f04ee03872b2975f26c8799cecac021ce" - integrity sha512-GrAabdY4qtBX49knHFvEAdLtCjkmndjTeqhYO6BhsbAeKOtspcLT/0WRgdLIaKODRa61ADNB3K5Zm4dU0QrZOg== +"@react-native-community/cli-doctor@12.3.6": + version "12.3.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-12.3.6.tgz#f68b51bbc6554ff4837269d98e9e405044e6f1b9" + integrity sha512-fvBDv2lTthfw4WOQKkdTop2PlE9GtfrlNnpjB818MhcdEnPjfQw5YaTUcnNEGsvGomdCs1MVRMgYXXwPSN6OvQ== dependencies: - "@react-native-community/cli-config" "12.3.2" - "@react-native-community/cli-platform-android" "12.3.2" - "@react-native-community/cli-platform-ios" "12.3.2" - "@react-native-community/cli-tools" "12.3.2" + "@react-native-community/cli-config" "12.3.6" + "@react-native-community/cli-platform-android" "12.3.6" + "@react-native-community/cli-platform-ios" "12.3.6" + "@react-native-community/cli-tools" "12.3.6" chalk "^4.1.2" command-exists "^1.2.8" deepmerge "^4.3.0" envinfo "^7.10.0" execa "^5.0.0" hermes-profile-transformer "^0.0.6" - ip "^1.1.5" node-stream-zip "^1.9.1" ora "^5.4.1" semver "^7.5.2" @@ -3170,53 +3169,52 @@ wcwidth "^1.0.1" yaml "^2.2.1" -"@react-native-community/cli-hermes@12.3.2": - version "12.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-12.3.2.tgz#5f266985fe32a37e9020e881460e9017870be2e5" - integrity sha512-SL6F9O8ghp4ESBFH2YAPLtIN39jdnvGBKnK4FGKpDCjtB3DnUmDsGFlH46S+GGt5M6VzfG2eeKEOKf3pZ6jUzA== +"@react-native-community/cli-hermes@12.3.6": + version "12.3.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-12.3.6.tgz#5ac2c9ee26c69e1ce6b5047ba0f399984a6dea16" + integrity sha512-sNGwfOCl8OAIjWCkwuLpP8NZbuO0dhDI/2W7NeOGDzIBsf4/c4MptTrULWtGIH9okVPLSPX0NnRyGQ+mSwWyuQ== dependencies: - "@react-native-community/cli-platform-android" "12.3.2" - "@react-native-community/cli-tools" "12.3.2" + "@react-native-community/cli-platform-android" "12.3.6" + "@react-native-community/cli-tools" "12.3.6" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" - ip "^1.1.5" -"@react-native-community/cli-platform-android@12.3.2": - version "12.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.2.tgz#de54d89712f8ea95046d798ec274fd6caea70c34" - integrity sha512-MZ5nO8yi/N+Fj2i9BJcJ9C/ez+9/Ir7lQt49DWRo9YDmzye66mYLr/P2l/qxsixllbbDi7BXrlLpxaEhMrDopg== +"@react-native-community/cli-platform-android@12.3.6": + version "12.3.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.6.tgz#e1103692c659ff0b72ee6f00b7c72578db7376ec" + integrity sha512-DeDDAB8lHpuGIAPXeeD9Qu2+/wDTFPo99c8uSW49L0hkmZJixzvvvffbGQAYk32H0TmaI7rzvzH+qzu7z3891g== dependencies: - "@react-native-community/cli-tools" "12.3.2" + "@react-native-community/cli-tools" "12.3.6" chalk "^4.1.2" execa "^5.0.0" fast-xml-parser "^4.2.4" glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-ios@12.3.2": - version "12.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.2.tgz#07e298f69761424da85909790a43ec60ebfe6097" - integrity sha512-OcWEAbkev1IL6SUiQnM6DQdsvfsKZhRZtoBNSj9MfdmwotVZSOEZJ+IjZ1FR9ChvMWayO9ns/o8LgoQxr1ZXeg== +"@react-native-community/cli-platform-ios@12.3.6": + version "12.3.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.6.tgz#e7decb5ee764f5fdc7a6ad1ba5e15de8929d54a5" + integrity sha512-3eZ0jMCkKUO58wzPWlvAPRqezVKm9EPZyaPyHbRPWU8qw7JqkvnRlWIaYDGpjCJgVW4k2hKsEursLtYKb188tg== dependencies: - "@react-native-community/cli-tools" "12.3.2" + "@react-native-community/cli-tools" "12.3.6" chalk "^4.1.2" execa "^5.0.0" fast-xml-parser "^4.0.12" glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-plugin-metro@12.3.2": - version "12.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.2.tgz#7db7dc8939b821b9aeebdd5ee3293f3a0201a2ea" - integrity sha512-FpFBwu+d2E7KRhYPTkKvQsWb2/JKsJv+t1tcqgQkn+oByhp+qGyXBobFB8/R3yYvRRDCSDhS+atWTJzk9TjM8g== +"@react-native-community/cli-plugin-metro@12.3.6": + version "12.3.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.6.tgz#ae62de18e998478db60a3fe10dc746162c272dbd" + integrity sha512-3jxSBQt4fkS+KtHCPSyB5auIT+KKIrPCv9Dk14FbvOaEh9erUWEm/5PZWmtboW1z7CYeNbFMeXm9fM2xwtVOpg== -"@react-native-community/cli-server-api@12.3.2": - version "12.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-12.3.2.tgz#11df4e20ed72d59cf22adf77bd30aff3d6e70dc9" - integrity sha512-iwa7EO9XFA/OjI5pPLLpI/6mFVqv8L73kNck3CNOJIUCCveGXBKK0VMyOkXaf/BYnihgQrXh+x5cxbDbggr7+Q== +"@react-native-community/cli-server-api@12.3.6": + version "12.3.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-12.3.6.tgz#cd78122954a02d22c7821c365938635b51ddd1bd" + integrity sha512-80NIMzo8b2W+PL0Jd7NjiJW9mgaT8Y8wsIT/lh6mAvYH7mK0ecDJUYUTAAv79Tbo1iCGPAr3T295DlVtS8s4yQ== dependencies: - "@react-native-community/cli-debugger-ui" "12.3.2" - "@react-native-community/cli-tools" "12.3.2" + "@react-native-community/cli-debugger-ui" "12.3.6" + "@react-native-community/cli-tools" "12.3.6" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.1" @@ -3225,10 +3223,10 @@ serve-static "^1.13.1" ws "^7.5.1" -"@react-native-community/cli-tools@12.3.2": - version "12.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-12.3.2.tgz#d3362b04fba3f73ec82c5a493696b575acfb420c" - integrity sha512-nDH7vuEicHI2TI0jac/DjT3fr977iWXRdgVAqPZFFczlbs7A8GQvEdGnZ1G8dqRUmg+kptw0e4hwczAOG89JzQ== +"@react-native-community/cli-tools@12.3.6": + version "12.3.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-12.3.6.tgz#c39965982347635dfaf1daa7b3c0133b3bd45e64" + integrity sha512-FPEvZn19UTMMXUp/piwKZSh8cMEfO8G3KDtOwo53O347GTcwNrKjgZGtLSPELBX2gr+YlzEft3CoRv2Qmo83fQ== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" @@ -3241,27 +3239,27 @@ shell-quote "^1.7.3" sudo-prompt "^9.0.0" -"@react-native-community/cli-types@12.3.2": - version "12.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-12.3.2.tgz#0551c553c87701faae580097d7786dfff8ec2ef4" - integrity sha512-9D0UEFqLW8JmS16mjHJxUJWX8E+zJddrHILSH8AJHZ0NNHv4u2DXKdb0wFLMobFxGNxPT+VSOjc60fGvXzWHog== +"@react-native-community/cli-types@12.3.6": + version "12.3.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-12.3.6.tgz#239de348800fe1ffba3eb1fe0edbeb9306981e57" + integrity sha512-xPqTgcUtZowQ8WKOkI9TLGBwH2bGggOC4d2FFaIRST3gTcjrEeGRNeR5aXCzJFIgItIft8sd7p2oKEdy90+01Q== dependencies: joi "^17.2.1" -"@react-native-community/cli@12.3.2": - version "12.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-12.3.2.tgz#002ae3683b9fe6b0a83a837f41d9db541ea7667f" - integrity sha512-WgoUWwLDcf/G1Su2COUUVs3RzAwnV/vUTdISSpAUGgSc57mPabaAoUctKTnfYEhCnE3j02k3VtaVPwCAFRO3TQ== - dependencies: - "@react-native-community/cli-clean" "12.3.2" - "@react-native-community/cli-config" "12.3.2" - "@react-native-community/cli-debugger-ui" "12.3.2" - "@react-native-community/cli-doctor" "12.3.2" - "@react-native-community/cli-hermes" "12.3.2" - "@react-native-community/cli-plugin-metro" "12.3.2" - "@react-native-community/cli-server-api" "12.3.2" - "@react-native-community/cli-tools" "12.3.2" - "@react-native-community/cli-types" "12.3.2" +"@react-native-community/cli@12.3.6": + version "12.3.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-12.3.6.tgz#7a323b78725b959bb8a31cca1145918263ff3c8d" + integrity sha512-647OSi6xBb8FbwFqX9zsJxOzu685AWtrOUWHfOkbKD+5LOpGORw+GQo0F9rWZnB68rLQyfKUZWJeaD00pGv5fw== + dependencies: + "@react-native-community/cli-clean" "12.3.6" + "@react-native-community/cli-config" "12.3.6" + "@react-native-community/cli-debugger-ui" "12.3.6" + "@react-native-community/cli-doctor" "12.3.6" + "@react-native-community/cli-hermes" "12.3.6" + "@react-native-community/cli-plugin-metro" "12.3.6" + "@react-native-community/cli-server-api" "12.3.6" + "@react-native-community/cli-tools" "12.3.6" + "@react-native-community/cli-types" "12.3.6" chalk "^4.1.2" commander "^9.4.1" deepmerge "^4.3.0" @@ -3377,14 +3375,14 @@ mkdirp "^0.5.1" nullthrows "^1.1.1" -"@react-native/community-cli-plugin@0.73.16": - version "0.73.16" - resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.16.tgz#29dca91aa3e24c8cd534dbf3db5766509da92ea3" - integrity sha512-eNH3v3qJJF6f0n/Dck90qfC9gVOR4coAXMTdYECO33GfgjTi+73vf/SBqlXw9HICH/RNZYGPM3wca4FRF7TYeQ== +"@react-native/community-cli-plugin@0.73.17": + version "0.73.17" + resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.17.tgz#37b381a8b503a3296eaa6727e0c52ea8835add28" + integrity sha512-F3PXZkcHg+1ARIr6FRQCQiB7ZAA+MQXGmq051metRscoLvgYJwj7dgC8pvgy0kexzUkHu5BNKrZeySzUft3xuQ== dependencies: - "@react-native-community/cli-server-api" "12.3.2" - "@react-native-community/cli-tools" "12.3.2" - "@react-native/dev-middleware" "0.73.7" + "@react-native-community/cli-server-api" "12.3.6" + "@react-native-community/cli-tools" "12.3.6" + "@react-native/dev-middleware" "0.73.8" "@react-native/metro-babel-transformer" "0.73.15" chalk "^4.0.0" execa "^5.1.1" @@ -3399,10 +3397,10 @@ 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.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== +"@react-native/dev-middleware@0.73.8", "@react-native/dev-middleware@^0.73.6": + version "0.73.8" + resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.73.8.tgz#2e43722a00c7b8db753f747f40267cbad6caba4d" + integrity sha512-oph4NamCIxkMfUL/fYtSsE+JbGOnrlawfQ0kKtDQ5xbOjPKotKoXqrs1eGwozNKv7FfQ393stk1by9a6DyASSg== dependencies: "@isaacs/ttlcache" "^1.4.1" "@react-native/debugger-frontend" "0.73.3" @@ -3414,6 +3412,7 @@ open "^7.0.3" serve-static "^1.13.1" temp-dir "^2.0.0" + ws "^6.2.2" "@react-native/gradle-plugin@0.73.4": version "0.73.4" @@ -16765,18 +16764,18 @@ react-native-webview@13.6.4: escape-string-regexp "2.0.0" invariant "2.2.4" -react-native@0.73.4: - version "0.73.4" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.4.tgz#81e07d4e7b6308c4649d5fa24038c0e87b17f2e1" - integrity sha512-VtS+Yr6OOTIuJGDECIYWzNU8QpJjASQYvMtfa/Hvm/2/h5GdB6W9H9TOmh13x07Lj4AOhNMx3XSsz6TdrO4jIg== +react-native@0.73.5: + version "0.73.5" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.5.tgz#724fd1ae8ec8fee1dcf619c82bdd1695d3cff463" + integrity sha512-iHgDArmF4CrhL0qTj+Rn+CBN5pZWUL9lUGl8ub+V9Hwu/vnzQQh8rTMVSwVd2sV6N76KjpE5a4TfIAHkpIHhKg== dependencies: "@jest/create-cache-key-function" "^29.6.3" - "@react-native-community/cli" "12.3.2" - "@react-native-community/cli-platform-android" "12.3.2" - "@react-native-community/cli-platform-ios" "12.3.2" + "@react-native-community/cli" "12.3.6" + "@react-native-community/cli-platform-android" "12.3.6" + "@react-native-community/cli-platform-ios" "12.3.6" "@react-native/assets-registry" "0.73.1" "@react-native/codegen" "0.73.3" - "@react-native/community-cli-plugin" "0.73.16" + "@react-native/community-cli-plugin" "0.73.17" "@react-native/gradle-plugin" "0.73.4" "@react-native/js-polyfills" "0.73.1" "@react-native/normalize-colors" "0.73.2" From 5a207831d85c80b40b4cadf4b1eff59dfb01a028 Mon Sep 17 00:00:00 2001 From: Gabriel Donadel Date: Thu, 7 Mar 2024 12:52:45 -0300 Subject: [PATCH 3/7] [go] Update eas.json cache key --- apps/eas-expo-go/eas.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/eas-expo-go/eas.json b/apps/eas-expo-go/eas.json index 1883c8e767f64..a23c28354d880 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.4", + "key": "sdk50-0.73.5", "customPaths": ["../../ios/Pods"] }, "image": "macos-ventura-13.6-xcode-15.2", From 9bc6d48af2045a2fe482f495609f6159e12141fb Mon Sep 17 00:00:00 2001 From: Gabriel Donadel Date: Thu, 7 Mar 2024 12:55:02 -0300 Subject: [PATCH 4/7] [dev-launcher] Update bundle --- .../android/src/debug/assets/expo_dev_launcher_android.bundle | 2 +- packages/expo-dev-launcher/ios/main.jsbundle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 c7c50de5ca754..4a50d38d042fa 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])),f=(function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=O(t);if(n&&n.has(e))return n.get(e);var i={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var l=o?Object.getOwnPropertyDescriptor(e,c):null;l&&(l.get||l.set)?Object.defineProperty(i,c,l):i[c]=e[c]}i.default=e,n&&n.set(e,i);return i})(r(d[9])),v=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"],j=["active","activityState","style","onComponentRef"],x=["enabled","hasTwoStates"];function O(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(O=function(e){return e?n:t})(e)}function B(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 P(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 A(e){for(var t=1;t1,children:e})}));return(0,w.jsx)(L.NativeScreenStack,A(A({},n),{},{children:o}))},InnerScreen:J,SearchBar:Q,FullWindowOverlay:function(e){return console.warn('Importing FullWindowOverlay is only valid on iOS devices.'),(0,w.jsx)(v.View,A({},e))},get NativeScreen(){return L.NativeScreen},get NativeScreenContainer(){return L.NativeScreenContainer},get NativeScreenNavigationContainer(){return L.NativeScreenNavigationContainer},get ScreenStackHeaderConfig(){return L.NativeScreenStackHeaderConfig},get ScreenStackHeaderSubview(){return L.NativeScreenStackHeaderSubview},get SearchBarCommands(){return L.NativeSearchBarCommands},ScreenStackHeaderBackButtonImage:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,{type:"back",style:K.headerSubview,children:(0,w.jsx)(v.Image,A({resizeMode:"center",fadeDuration:0},e))})},ScreenStackHeaderRightView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"right",style:K.headerSubview}))},ScreenStackHeaderLeftView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"left",style:K.headerSubview}))},ScreenStackHeaderCenterView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"center",style:K.headerSubview}))},ScreenStackHeaderSearchBarView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"searchBar",style:K.headerSubview}))},enableScreens:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];(H=e)&&!v.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.'),M=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.4",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.2","@react-native-community/cli-platform-android":"12.3.2","@react-native-community/cli-platform-ios":"12.3.2","@react-native/assets-registry":"0.73.1","@react-native/community-cli-plugin":"0.73.16","@react-native/codegen":"0.73.3","@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",chalk:"^4.0.0","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(e,s,t,r,i,a,c){i.exports={name:"react-native",version:"0.73.5",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.6","@react-native-community/cli-platform-android":"12.3.6","@react-native-community/cli-platform-ios":"12.3.6","@react-native/assets-registry":"0.73.1","@react-native/community-cli-plugin":"0.73.17","@react-native/codegen":"0.73.3","@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",chalk:"^4.0.0","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 165dcc8a769f0..a490764714a5f 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])),f=(function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=B(t);if(n&&n.has(e))return n.get(e);var i={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var l=o?Object.getOwnPropertyDescriptor(e,c):null;l&&(l.get||l.set)?Object.defineProperty(i,c,l):i[c]=e[c]}i.default=e,n&&n.set(e,i);return i})(r(d[9])),v=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"],j=["active","activityState","style","onComponentRef"],x=["enabled","hasTwoStates"];function B(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(B=function(e){return e?n:t})(e)}function O(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 P(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 A(e){for(var t=1;t1,children:e})}));return(0,w.jsx)(L.NativeScreenStack,A(A({},n),{},{children:o}))},InnerScreen:J,SearchBar:Q,FullWindowOverlay:function(e){return(0,w.jsx)(L.NativeFullWindowOverlay,{style:{position:'absolute',width:'100%',height:'100%'},children:e.children})},get NativeScreen(){return L.NativeScreen},get NativeScreenContainer(){return L.NativeScreenContainer},get NativeScreenNavigationContainer(){return L.NativeScreenNavigationContainer},get ScreenStackHeaderConfig(){return L.NativeScreenStackHeaderConfig},get ScreenStackHeaderSubview(){return L.NativeScreenStackHeaderSubview},get SearchBarCommands(){return L.NativeSearchBarCommands},ScreenStackHeaderBackButtonImage:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,{type:"back",style:K.headerSubview,children:(0,w.jsx)(v.Image,A({resizeMode:"center",fadeDuration:0},e))})},ScreenStackHeaderRightView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"right",style:K.headerSubview}))},ScreenStackHeaderLeftView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"left",style:K.headerSubview}))},ScreenStackHeaderCenterView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"center",style:K.headerSubview}))},ScreenStackHeaderSearchBarView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"searchBar",style:K.headerSubview}))},enableScreens:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];(H=e)&&!v.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.'),M=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.4",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.2","@react-native-community/cli-platform-android":"12.3.2","@react-native-community/cli-platform-ios":"12.3.2","@react-native/assets-registry":"0.73.1","@react-native/community-cli-plugin":"0.73.16","@react-native/codegen":"0.73.3","@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",chalk:"^4.0.0","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(e,s,t,r,i,a,c){i.exports={name:"react-native",version:"0.73.5",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.6","@react-native-community/cli-platform-android":"12.3.6","@react-native-community/cli-platform-ios":"12.3.6","@react-native/assets-registry":"0.73.1","@react-native/community-cli-plugin":"0.73.17","@react-native/codegen":"0.73.3","@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",chalk:"^4.0.0","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]); From d5651346adb08d1c950efa0cdbaf7c01bd3ea52a Mon Sep 17 00:00:00 2001 From: Gabriel Donadel Date: Thu, 7 Mar 2024 12:56:47 -0300 Subject: [PATCH 5/7] [dev-menu] Update bundle --- packages/expo-dev-menu/assets/EXDevMenuApp.android.js | 2 +- packages/expo-dev-menu/assets/EXDevMenuApp.ios.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/expo-dev-menu/assets/EXDevMenuApp.android.js b/packages/expo-dev-menu/assets/EXDevMenuApp.android.js index d6d785edb26e3..d9150299b6ff1 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])),f=(function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=O(t);if(n&&n.has(e))return n.get(e);var i={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var l=o?Object.getOwnPropertyDescriptor(e,c):null;l&&(l.get||l.set)?Object.defineProperty(i,c,l):i[c]=e[c]}i.default=e,n&&n.set(e,i);return i})(r(d[9])),v=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"],j=["active","activityState","style","onComponentRef"],x=["enabled","hasTwoStates"];function O(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(O=function(e){return e?n:t})(e)}function B(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 P(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 A(e){for(var t=1;t1,children:e})}));return(0,w.jsx)(L.NativeScreenStack,A(A({},n),{},{children:o}))},InnerScreen:J,SearchBar:Q,FullWindowOverlay:function(e){return console.warn('Importing FullWindowOverlay is only valid on iOS devices.'),(0,w.jsx)(v.View,A({},e))},get NativeScreen(){return L.NativeScreen},get NativeScreenContainer(){return L.NativeScreenContainer},get NativeScreenNavigationContainer(){return L.NativeScreenNavigationContainer},get ScreenStackHeaderConfig(){return L.NativeScreenStackHeaderConfig},get ScreenStackHeaderSubview(){return L.NativeScreenStackHeaderSubview},get SearchBarCommands(){return L.NativeSearchBarCommands},ScreenStackHeaderBackButtonImage:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,{type:"back",style:K.headerSubview,children:(0,w.jsx)(v.Image,A({resizeMode:"center",fadeDuration:0},e))})},ScreenStackHeaderRightView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"right",style:K.headerSubview}))},ScreenStackHeaderLeftView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"left",style:K.headerSubview}))},ScreenStackHeaderCenterView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"center",style:K.headerSubview}))},ScreenStackHeaderSearchBarView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"searchBar",style:K.headerSubview}))},enableScreens:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];(H=e)&&!v.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.'),M=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.4",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.2","@react-native-community/cli-platform-android":"12.3.2","@react-native-community/cli-platform-ios":"12.3.2","@react-native/assets-registry":"0.73.1","@react-native/community-cli-plugin":"0.73.16","@react-native/codegen":"0.73.3","@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",chalk:"^4.0.0","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(e,s,t,r,i,a,c){i.exports={name:"react-native",version:"0.73.5",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.6","@react-native-community/cli-platform-android":"12.3.6","@react-native-community/cli-platform-ios":"12.3.6","@react-native/assets-registry":"0.73.1","@react-native/community-cli-plugin":"0.73.17","@react-native/codegen":"0.73.3","@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",chalk:"^4.0.0","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 f2eefcdde0fc4..2a6d79e1814f0 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])),f=(function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=B(t);if(n&&n.has(e))return n.get(e);var i={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var l=o?Object.getOwnPropertyDescriptor(e,c):null;l&&(l.get||l.set)?Object.defineProperty(i,c,l):i[c]=e[c]}i.default=e,n&&n.set(e,i);return i})(r(d[9])),v=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"],j=["active","activityState","style","onComponentRef"],x=["enabled","hasTwoStates"];function B(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(B=function(e){return e?n:t})(e)}function O(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 P(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 A(e){for(var t=1;t1,children:e})}));return(0,w.jsx)(L.NativeScreenStack,A(A({},n),{},{children:o}))},InnerScreen:J,SearchBar:Q,FullWindowOverlay:function(e){return(0,w.jsx)(L.NativeFullWindowOverlay,{style:{position:'absolute',width:'100%',height:'100%'},children:e.children})},get NativeScreen(){return L.NativeScreen},get NativeScreenContainer(){return L.NativeScreenContainer},get NativeScreenNavigationContainer(){return L.NativeScreenNavigationContainer},get ScreenStackHeaderConfig(){return L.NativeScreenStackHeaderConfig},get ScreenStackHeaderSubview(){return L.NativeScreenStackHeaderSubview},get SearchBarCommands(){return L.NativeSearchBarCommands},ScreenStackHeaderBackButtonImage:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,{type:"back",style:K.headerSubview,children:(0,w.jsx)(v.Image,A({resizeMode:"center",fadeDuration:0},e))})},ScreenStackHeaderRightView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"right",style:K.headerSubview}))},ScreenStackHeaderLeftView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"left",style:K.headerSubview}))},ScreenStackHeaderCenterView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"center",style:K.headerSubview}))},ScreenStackHeaderSearchBarView:function(e){return(0,w.jsx)(L.NativeScreenStackHeaderSubview,A(A({},e),{},{type:"searchBar",style:K.headerSubview}))},enableScreens:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];(H=e)&&!v.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.'),M=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.4",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.2","@react-native-community/cli-platform-android":"12.3.2","@react-native-community/cli-platform-ios":"12.3.2","@react-native/assets-registry":"0.73.1","@react-native/community-cli-plugin":"0.73.16","@react-native/codegen":"0.73.3","@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",chalk:"^4.0.0","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(e,s,t,r,i,a,c){i.exports={name:"react-native",version:"0.73.5",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.6","@react-native-community/cli-platform-android":"12.3.6","@react-native-community/cli-platform-ios":"12.3.6","@react-native/assets-registry":"0.73.1","@react-native/community-cli-plugin":"0.73.17","@react-native/codegen":"0.73.3","@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",chalk:"^4.0.0","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]); From 9720e8d24e85b7f4c2ce86feff7b5bd7b6b84a8c Mon Sep 17 00:00:00 2001 From: Gabriel Donadel Date: Thu, 7 Mar 2024 13:02:25 -0300 Subject: [PATCH 6/7] [docs] Update template bare minimum diffs --- .../diffs/template-bare-minimum/diffInfo.json | 2 +- .../template-bare-minimum/raw/45..49.diff | 8 +++---- .../template-bare-minimum/raw/45..50.diff | 8 +++---- .../raw/45..unversioned.diff | 8 +++---- .../template-bare-minimum/raw/46..49.diff | 8 +++---- .../template-bare-minimum/raw/46..50.diff | 8 +++---- .../raw/46..unversioned.diff | 8 +++---- .../template-bare-minimum/raw/47..49.diff | 8 +++---- .../template-bare-minimum/raw/47..50.diff | 8 +++---- .../raw/47..unversioned.diff | 8 +++---- .../template-bare-minimum/raw/48..49.diff | 8 +++---- .../template-bare-minimum/raw/48..50.diff | 8 +++---- .../raw/48..unversioned.diff | 8 +++---- .../template-bare-minimum/raw/49..50.diff | 14 ++++++------- .../raw/49..unversioned.diff | 14 ++++++------- .../raw/50..unversioned.diff | 21 +++++++++++++++---- 16 files changed, 80 insertions(+), 67 deletions(-) diff --git a/docs/public/static/diffs/template-bare-minimum/diffInfo.json b/docs/public/static/diffs/template-bare-minimum/diffInfo.json index be522189b5727..a76e39e56a22d 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..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,10 +18,10 @@\n \n \n \n- \n+ \n \n \n- \n+ \n \n \n \n@@ -29,4 +29,4 @@\n \n \n \n-\n+\n\\ No newline at end of file\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,10 +18,10 @@\n \n \n \n- \n+ \n \n \n- \n+ \n \n \n \n@@ -29,4 +29,4 @@\n \n \n \n-\n+\n\\ No newline at end of file\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,10 +18,10 @@\n \n \n \n- \n+ \n \n \n- \n+ \n \n \n \n@@ -29,4 +29,4 @@\n \n \n \n-\n+\n\\ No newline at end of file\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,10 +18,10 @@\n \n \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..95ef45de96\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,57 @@\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.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\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.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+ 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,10 +18,10 @@\n \n \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..95ef45de96\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,57 @@\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.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\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.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+ 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,10 +18,10 @@\n \n \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..95ef45de96\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,57 @@\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.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\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.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+ 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,10 +18,10 @@\n \n \n \n- \n+ \n \n \n- \n+ \n \n \n \n@@ -29,4 +29,4 @@\n \n \n \n-\n+\n\\ No newline at end of file\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,10 +18,10 @@\n \n \n \n- \n+ \n \n \n- \n+ \n \n \n \n@@ -29,4 +29,4 @@\n \n \n \n-\n+\n\\ No newline at end of file\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,10 +18,10 @@\n \n \n \n- \n+ \n \n \n- \n+ \n \n \n \n@@ -29,4 +29,4 @@\n \n \n \n-\n+\n\\ No newline at end of file\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,10 +18,10 @@\n \n \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..95ef45de96\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,57 @@\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.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\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.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+ 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,10 +18,10 @@\n \n \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..95ef45de96\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,57 @@\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.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\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.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+ 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,10 +18,10 @@\n \n \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..95ef45de96\n--- /dev/null\n+++ b/templates/expo-template-bare-minimum/android/app/src/main/java/com/helloworld/MainApplication.kt\n@@ -0,0 +1,57 @@\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.defaults.DefaultNewArchitectureEntryPoint.load\n+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost\n+import com.facebook.react.defaults.DefaultReactNativeHost\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.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+ 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-