expo-template-bare-minimum 44.0.9 → 45.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/android/.idea/modules/-1038281344/HelloWorld.react-native-safe-area-context.iml +94 -0
  2. package/android/.idea/modules/-1357046555/HelloWorld.react-native-reanimated.iml +26 -0
  3. package/android/.idea/modules/-150769534/HelloWorld.expo-manifests.iml +97 -0
  4. package/android/.idea/modules/-184925778/HelloWorld.expo-json-utils.iml +98 -0
  5. package/android/.idea/modules/-2122143186/HelloWorld.expo-application.iml +109 -0
  6. package/android/.idea/modules/-235831713/HelloWorld.expo-keep-awake.iml +74 -0
  7. package/android/.idea/modules/-305550864/HelloWorld.expo-splash-screen.iml +121 -0
  8. package/android/.idea/modules/-51310931/HelloWorld.expo-constants.iml +78 -0
  9. package/android/.idea/modules/-782810028/HelloWorld.expo-updates-interface.iml +89 -0
  10. package/android/.idea/modules/-953330280/HelloWorld.react-native-screens.iml +128 -0
  11. package/android/.idea/modules/1258575575/HelloWorld.react-native-gesture-handler.iml +95 -0
  12. package/android/.idea/modules/1285763372/HelloWorld.expo-structured-headers.iml +117 -0
  13. package/android/.idea/modules/130277035/HelloWorld.expo.iml +145 -0
  14. package/android/.idea/modules/1523306737/HelloWorld.expo-font.iml +74 -0
  15. package/android/.idea/modules/1642879102/HelloWorld.expo-file-system.iml +109 -0
  16. package/android/.idea/modules/1872392903/HelloWorld.expo-modules-core.iml +124 -0
  17. package/android/.idea/modules/536861352/HelloWorld.expo-updates.iml +156 -0
  18. package/android/.idea/modules/HelloWorld.iml +19 -0
  19. package/android/.idea/modules/app/HelloWorld.app.iml +163 -0
  20. package/android/.idea/workspace.xml +104 -0
  21. package/android/.project +17 -0
  22. package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
  23. package/android/app/build.gradle +134 -10
  24. package/android/app/src/main/AndroidManifest.xml +2 -2
  25. package/android/app/src/main/java/com/helloworld/MainApplication.java +12 -3
  26. package/android/app/src/main/java/com/helloworld/newarchitecture/MainApplicationReactNativeHost.java +116 -0
  27. package/android/app/src/main/java/com/helloworld/newarchitecture/components/MainComponentsRegistry.java +36 -0
  28. package/android/app/src/main/java/com/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java +48 -0
  29. package/android/app/src/main/jni/Android.mk +49 -0
  30. package/android/app/src/main/jni/MainApplicationModuleProvider.cpp +24 -0
  31. package/android/app/src/main/jni/MainApplicationModuleProvider.h +16 -0
  32. package/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp +45 -0
  33. package/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h +38 -0
  34. package/android/app/src/main/jni/MainComponentsRegistry.cpp +61 -0
  35. package/android/app/src/main/jni/MainComponentsRegistry.h +32 -0
  36. package/android/app/src/main/jni/OnLoad.cpp +11 -0
  37. package/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
  38. package/android/app/src/main/res/values/styles.xml +1 -0
  39. package/android/build.gradle +27 -8
  40. package/android/gitignore +21 -0
  41. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  42. package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  43. package/android/gradle.properties +16 -4
  44. package/android/gradlew +154 -103
  45. package/android/gradlew.bat +89 -103
  46. package/android/settings.gradle +6 -0
  47. package/ios/HelloWorld/AppDelegate.mm +125 -0
  48. package/ios/HelloWorld.xcodeproj/project.pbxproj +8 -6
  49. package/ios/HelloWorld.xcodeproj/project.xcworkspace/xcuserdata/tomasz.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  50. package/ios/Podfile +15 -17
  51. package/ios/gitignore +29 -0
  52. package/package.json +7 -7
  53. package/ios/HelloWorld/AppDelegate.m +0 -76
  54. package/ios/HelloWorld.xcodeproj/project.xcworkspace/xcuserdata/brentvatne.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
@@ -0,0 +1,24 @@
1
+ #include "MainApplicationModuleProvider.h"
2
+
3
+ #include <rncore.h>
4
+
5
+ namespace facebook {
6
+ namespace react {
7
+
8
+ std::shared_ptr<TurboModule> MainApplicationModuleProvider(
9
+ const std::string moduleName,
10
+ const JavaTurboModule::InitParams &params) {
11
+ // Here you can provide your own module provider for TurboModules coming from
12
+ // either your application or from external libraries. The approach to follow
13
+ // is similar to the following (for a library called `samplelibrary`:
14
+ //
15
+ // auto module = samplelibrary_ModuleProvider(moduleName, params);
16
+ // if (module != nullptr) {
17
+ // return module;
18
+ // }
19
+ // return rncore_ModuleProvider(moduleName, params);
20
+ return rncore_ModuleProvider(moduleName, params);
21
+ }
22
+
23
+ } // namespace react
24
+ } // namespace facebook
@@ -0,0 +1,16 @@
1
+ #pragma once
2
+
3
+ #include <memory>
4
+ #include <string>
5
+
6
+ #include <ReactCommon/JavaTurboModule.h>
7
+
8
+ namespace facebook {
9
+ namespace react {
10
+
11
+ std::shared_ptr<TurboModule> MainApplicationModuleProvider(
12
+ const std::string moduleName,
13
+ const JavaTurboModule::InitParams &params);
14
+
15
+ } // namespace react
16
+ } // namespace facebook
@@ -0,0 +1,45 @@
1
+ #include "MainApplicationTurboModuleManagerDelegate.h"
2
+ #include "MainApplicationModuleProvider.h"
3
+
4
+ namespace facebook {
5
+ namespace react {
6
+
7
+ jni::local_ref<MainApplicationTurboModuleManagerDelegate::jhybriddata>
8
+ MainApplicationTurboModuleManagerDelegate::initHybrid(
9
+ jni::alias_ref<jhybridobject>) {
10
+ return makeCxxInstance();
11
+ }
12
+
13
+ void MainApplicationTurboModuleManagerDelegate::registerNatives() {
14
+ registerHybrid({
15
+ makeNativeMethod(
16
+ "initHybrid", MainApplicationTurboModuleManagerDelegate::initHybrid),
17
+ makeNativeMethod(
18
+ "canCreateTurboModule",
19
+ MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),
20
+ });
21
+ }
22
+
23
+ std::shared_ptr<TurboModule>
24
+ MainApplicationTurboModuleManagerDelegate::getTurboModule(
25
+ const std::string name,
26
+ const std::shared_ptr<CallInvoker> jsInvoker) {
27
+ // Not implemented yet: provide pure-C++ NativeModules here.
28
+ return nullptr;
29
+ }
30
+
31
+ std::shared_ptr<TurboModule>
32
+ MainApplicationTurboModuleManagerDelegate::getTurboModule(
33
+ const std::string name,
34
+ const JavaTurboModule::InitParams &params) {
35
+ return MainApplicationModuleProvider(name, params);
36
+ }
37
+
38
+ bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(
39
+ std::string name) {
40
+ return getTurboModule(name, nullptr) != nullptr ||
41
+ getTurboModule(name, {.moduleName = name}) != nullptr;
42
+ }
43
+
44
+ } // namespace react
45
+ } // namespace facebook
@@ -0,0 +1,38 @@
1
+ #include <memory>
2
+ #include <string>
3
+
4
+ #include <ReactCommon/TurboModuleManagerDelegate.h>
5
+ #include <fbjni/fbjni.h>
6
+
7
+ namespace facebook {
8
+ namespace react {
9
+
10
+ class MainApplicationTurboModuleManagerDelegate
11
+ : public jni::HybridClass<
12
+ MainApplicationTurboModuleManagerDelegate,
13
+ TurboModuleManagerDelegate> {
14
+ public:
15
+ // Adapt it to the package you used for your Java class.
16
+ static constexpr auto kJavaDescriptor =
17
+ "Lcom/helloworld/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;";
18
+
19
+ static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject>);
20
+
21
+ static void registerNatives();
22
+
23
+ std::shared_ptr<TurboModule> getTurboModule(
24
+ const std::string name,
25
+ const std::shared_ptr<CallInvoker> jsInvoker) override;
26
+ std::shared_ptr<TurboModule> getTurboModule(
27
+ const std::string name,
28
+ const JavaTurboModule::InitParams &params) override;
29
+
30
+ /**
31
+ * Test-only method. Allows user to verify whether a TurboModule can be
32
+ * created by instances of this class.
33
+ */
34
+ bool canCreateTurboModule(std::string name);
35
+ };
36
+
37
+ } // namespace react
38
+ } // namespace facebook
@@ -0,0 +1,61 @@
1
+ #include "MainComponentsRegistry.h"
2
+
3
+ #include <CoreComponentsRegistry.h>
4
+ #include <fbjni/fbjni.h>
5
+ #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
6
+ #include <react/renderer/components/rncore/ComponentDescriptors.h>
7
+
8
+ namespace facebook {
9
+ namespace react {
10
+
11
+ MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}
12
+
13
+ std::shared_ptr<ComponentDescriptorProviderRegistry const>
14
+ MainComponentsRegistry::sharedProviderRegistry() {
15
+ auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();
16
+
17
+ // Custom Fabric Components go here. You can register custom
18
+ // components coming from your App or from 3rd party libraries here.
19
+ //
20
+ // providerRegistry->add(concreteComponentDescriptorProvider<
21
+ // AocViewerComponentDescriptor>());
22
+ return providerRegistry;
23
+ }
24
+
25
+ jni::local_ref<MainComponentsRegistry::jhybriddata>
26
+ MainComponentsRegistry::initHybrid(
27
+ jni::alias_ref<jclass>,
28
+ ComponentFactory *delegate) {
29
+ auto instance = makeCxxInstance(delegate);
30
+
31
+ auto buildRegistryFunction =
32
+ [](EventDispatcher::Weak const &eventDispatcher,
33
+ ContextContainer::Shared const &contextContainer)
34
+ -> ComponentDescriptorRegistry::Shared {
35
+ auto registry = MainComponentsRegistry::sharedProviderRegistry()
36
+ ->createComponentDescriptorRegistry(
37
+ {eventDispatcher, contextContainer});
38
+
39
+ auto mutableRegistry =
40
+ std::const_pointer_cast<ComponentDescriptorRegistry>(registry);
41
+
42
+ mutableRegistry->setFallbackComponentDescriptor(
43
+ std::make_shared<UnimplementedNativeViewComponentDescriptor>(
44
+ ComponentDescriptorParameters{
45
+ eventDispatcher, contextContainer, nullptr}));
46
+
47
+ return registry;
48
+ };
49
+
50
+ delegate->buildRegistryFunction = buildRegistryFunction;
51
+ return instance;
52
+ }
53
+
54
+ void MainComponentsRegistry::registerNatives() {
55
+ registerHybrid({
56
+ makeNativeMethod("initHybrid", MainComponentsRegistry::initHybrid),
57
+ });
58
+ }
59
+
60
+ } // namespace react
61
+ } // namespace facebook
@@ -0,0 +1,32 @@
1
+ #pragma once
2
+
3
+ #include <ComponentFactory.h>
4
+ #include <fbjni/fbjni.h>
5
+ #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
6
+ #include <react/renderer/componentregistry/ComponentDescriptorRegistry.h>
7
+
8
+ namespace facebook {
9
+ namespace react {
10
+
11
+ class MainComponentsRegistry
12
+ : public facebook::jni::HybridClass<MainComponentsRegistry> {
13
+ public:
14
+ // Adapt it to the package you used for your Java class.
15
+ constexpr static auto kJavaDescriptor =
16
+ "Lcom/helloworld/newarchitecture/components/MainComponentsRegistry;";
17
+
18
+ static void registerNatives();
19
+
20
+ MainComponentsRegistry(ComponentFactory *delegate);
21
+
22
+ private:
23
+ static std::shared_ptr<ComponentDescriptorProviderRegistry const>
24
+ sharedProviderRegistry();
25
+
26
+ static jni::local_ref<jhybriddata> initHybrid(
27
+ jni::alias_ref<jclass>,
28
+ ComponentFactory *delegate);
29
+ };
30
+
31
+ } // namespace react
32
+ } // namespace facebook
@@ -0,0 +1,11 @@
1
+ #include <fbjni/fbjni.h>
2
+ #include "MainApplicationTurboModuleManagerDelegate.h"
3
+ #include "MainComponentsRegistry.h"
4
+
5
+ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {
6
+ return facebook::jni::initialize(vm, [] {
7
+ facebook::react::MainApplicationTurboModuleManagerDelegate::
8
+ registerNatives();
9
+ facebook::react::MainComponentsRegistry::registerNatives();
10
+ });
11
+ }
@@ -0,0 +1,36 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Copyright (C) 2014 The Android Open Source Project
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ -->
16
+ <inset xmlns:android="http://schemas.android.com/apk/res/android"
17
+ android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material"
18
+ android:insetRight="@dimen/abc_edit_text_inset_horizontal_material"
19
+ android:insetTop="@dimen/abc_edit_text_inset_top_material"
20
+ android:insetBottom="@dimen/abc_edit_text_inset_bottom_material">
21
+
22
+ <selector>
23
+ <!--
24
+ This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I).
25
+ The item below with state_pressed="false" and state_focused="false" causes a NullPointerException.
26
+ NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)'
27
+
28
+ <item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
29
+
30
+ For more info, see https://bit.ly/3CdLStv (react-native/pull/29452) and https://bit.ly/3nxOMoR.
31
+ -->
32
+ <item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
33
+ <item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/>
34
+ </selector>
35
+
36
+ </inset>
@@ -2,6 +2,7 @@
2
2
  <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
3
3
  <item name="android:textColor">@android:color/black</item>
4
4
  <item name="android:editTextStyle">@style/ResetEditText</item>
5
+ <item name="android:editTextBackground">@drawable/rn_edit_text_material</item>
5
6
  </style>
6
7
  <style name="ResetEditText" parent="@android:style/Widget.EditText">
7
8
  <item name="android:padding">0dp</item>
@@ -1,20 +1,34 @@
1
+ import org.apache.tools.ant.taskdefs.condition.Os
2
+
1
3
  // Top-level build file where you can add configuration options common to all sub-projects/modules.
2
4
 
3
5
  buildscript {
4
6
  ext {
5
- buildToolsVersion = "29.0.3"
7
+ buildToolsVersion = "31.0.0"
6
8
  minSdkVersion = 21
7
- compileSdkVersion = 30
8
- targetSdkVersion = 30
9
+ compileSdkVersion = 31
10
+ targetSdkVersion = 31
11
+
12
+ if (System.properties['os.arch'] == "aarch64") {
13
+ // For M1 Users we need to use the NDK 24 which added support for aarch64
14
+ ndkVersion = "24.0.8215888"
15
+ } else if (Os.isFamily(Os.FAMILY_WINDOWS)) {
16
+ // For Android Users, we need to use NDK 23, otherwise the build will
17
+ // fail due to paths longer than the OS limit
18
+ ndkVersion = "23.1.7779620"
19
+ } else {
20
+ // Otherwise we default to the side-by-side NDK version from AGP.
21
+ ndkVersion = "21.4.7075529"
22
+ }
9
23
  }
10
24
  repositories {
11
25
  google()
12
26
  mavenCentral()
13
- jcenter()
14
27
  }
15
28
  dependencies {
16
- classpath("com.android.tools.build:gradle:4.1.0")
17
-
29
+ classpath("com.android.tools.build:gradle:7.0.4")
30
+ classpath("com.facebook.react:react-native-gradle-plugin")
31
+ classpath("de.undercouch:gradle-download-task:4.1.2")
18
32
  // NOTE: Do not place your application dependencies here; they belong
19
33
  // in the individual module build.gradle files
20
34
  }
@@ -33,8 +47,13 @@ allprojects {
33
47
  }
34
48
 
35
49
  google()
36
- mavenCentral()
37
- jcenter()
50
+ mavenCentral {
51
+ // We don't want to fetch react-native from Maven Central as there are
52
+ // older versions over there.
53
+ content {
54
+ excludeGroup "com.facebook.react"
55
+ }
56
+ }
38
57
  maven { url 'https://www.jitpack.io' }
39
58
  }
40
59
  }
@@ -0,0 +1,21 @@
1
+ # OSX
2
+ #
3
+ .DS_Store
4
+
5
+ # Android/IntelliJ
6
+ #
7
+ build/
8
+ .idea
9
+ .gradle
10
+ local.properties
11
+ *.iml
12
+ *.hprof
13
+
14
+ # BUCK
15
+ buck-out/
16
+ \.buckd/
17
+ *.keystore
18
+ !debug.keystore
19
+
20
+ # Bundle artifacts
21
+ *.jsbundle
@@ -1,5 +1,5 @@
1
1
  distributionBase=GRADLE_USER_HOME
2
2
  distributionPath=wrapper/dists
3
- distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip
3
+ distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
4
4
  zipStoreBase=GRADLE_USER_HOME
5
5
  zipStorePath=wrapper/dists
@@ -9,8 +9,8 @@
9
9
 
10
10
  # Specifies the JVM arguments used for the daemon process.
11
11
  # The setting is particularly useful for tweaking memory settings.
12
- # Default value: -Xmx10248m -XX:MaxPermSize=256m
13
- org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
12
+ # Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
13
+ org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
14
14
 
15
15
  # When configured, Gradle will run in incubating parallel mode.
16
16
  # This option should only be used with decoupled projects. More details, visit
@@ -26,7 +26,19 @@ android.useAndroidX=true
26
26
  android.enableJetifier=true
27
27
 
28
28
  # Version of flipper SDK to use with React Native
29
- FLIPPER_VERSION=0.54.0
29
+ FLIPPER_VERSION=0.125.0
30
+
31
+ # Use this property to specify which architecture you want to build.
32
+ # You can also override it from the CLI using
33
+ # ./gradlew <task> -PreactNativeArchitectures=x86_64
34
+ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
35
+
36
+ # Use this property to enable support to the new architecture.
37
+ # This will allow you to use TurboModules and the Fabric render in
38
+ # your application. You should enable this flag either if you want
39
+ # to write custom TurboModules/Fabric components OR use libraries that
40
+ # are providing them.
41
+ newArchEnabled=false
30
42
 
31
43
  # The hosted JavaScript engine
32
44
  # Supported values: expo.jsEngine = "hermes" | "jsc"
@@ -38,4 +50,4 @@ expo.gif.enabled=true
38
50
  expo.webp.enabled=true
39
51
  # Enable animated webp support (~3.4 MB increase)
40
52
  # Disabled by default because iOS doesn't support animated webp
41
- expo.webp.animated=false
53
+ expo.webp.animated=false