diff --git a/boilerplate/android/app/build.gradle b/boilerplate/android/app/build.gradle
index 15e3c4250..2d8ac3189 100644
--- a/boilerplate/android/app/build.gradle
+++ b/boilerplate/android/app/build.gradle
@@ -123,6 +123,9 @@ def jscFlavor = 'org.webkit:android-jsc:+'
def enableHermes = project.ext.react.get("enableHermes", false);
android {
+
+ ndkVersion rootProject.ext.ndkVersion
+
compileSdkVersion rootProject.ext.compileSdkVersion
compileOptions {
@@ -171,11 +174,12 @@ android {
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// https://developer.android.com/studio/build/configure-apk-splits.html
+ // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
- versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
+ defaultConfig.versionCode * 1000 + versionCodes.get(abi)
}
}
@@ -188,7 +192,7 @@ dependencies {
implementation "com.facebook.react:react-native:+" // From node_modules
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
-
+
addUnimodulesDependencies()
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
diff --git a/boilerplate/android/app/src/debug/AndroidManifest.xml b/boilerplate/android/app/src/debug/AndroidManifest.xml
index fa26aa56e..f0e96b9ba 100644
--- a/boilerplate/android/app/src/debug/AndroidManifest.xml
+++ b/boilerplate/android/app/src/debug/AndroidManifest.xml
@@ -4,5 +4,10 @@
-
+
+
+
diff --git a/boilerplate/android/app/src/main/AndroidManifest.xml b/boilerplate/android/app/src/main/AndroidManifest.xml
index 0a7a9cfc6..6db8bad36 100644
--- a/boilerplate/android/app/src/main/AndroidManifest.xml
+++ b/boilerplate/android/app/src/main/AndroidManifest.xml
@@ -21,7 +21,5 @@
-
-
diff --git a/boilerplate/android/app/src/main/res/values/styles.xml b/boilerplate/android/app/src/main/res/values/styles.xml
index 62fe59fa4..9fab0be74 100644
--- a/boilerplate/android/app/src/main/res/values/styles.xml
+++ b/boilerplate/android/app/src/main/res/values/styles.xml
@@ -1,7 +1,7 @@
-
diff --git a/boilerplate/android/build.gradle b/boilerplate/android/build.gradle
index 0547dbfb3..93232f5fc 100644
--- a/boilerplate/android/build.gradle
+++ b/boilerplate/android/build.gradle
@@ -2,17 +2,18 @@
buildscript {
ext {
- buildToolsVersion = "29.0.2"
+ buildToolsVersion = "29.0.3"
minSdkVersion = 21
compileSdkVersion = 29
targetSdkVersion = 29
+ ndkVersion = "20.1.5948944"
}
repositories {
google()
jcenter()
}
dependencies {
- classpath("com.android.tools.build:gradle:3.5.3")
+ classpath("com.android.tools.build:gradle:4.1.0")
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
diff --git a/boilerplate/android/gradle.properties b/boilerplate/android/gradle.properties
index 3bdbd3d4e..d21d03f2b 100644
--- a/boilerplate/android/gradle.properties
+++ b/boilerplate/android/gradle.properties
@@ -25,4 +25,4 @@ android.useAndroidX=true
android.enableJetifier=true
# Version of flipper SDK to use with React Native
-FLIPPER_VERSION=0.54.0
+FLIPPER_VERSION=0.75.1
diff --git a/boilerplate/android/gradle/wrapper/gradle-wrapper.properties b/boilerplate/android/gradle/wrapper/gradle-wrapper.properties
index 842267020..14e30f741 100644
--- a/boilerplate/android/gradle/wrapper/gradle-wrapper.properties
+++ b/boilerplate/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/boilerplate/android/gradlew b/boilerplate/android/gradlew
index 2fe81a7d9..4f906e0c8 100755
--- a/boilerplate/android/gradlew
+++ b/boilerplate/android/gradlew
@@ -82,6 +82,7 @@ esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
@@ -129,6 +130,7 @@ fi
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
diff --git a/boilerplate/android/gradlew.bat b/boilerplate/android/gradlew.bat
index 62bd9b9cc..107acd32c 100644
--- a/boilerplate/android/gradlew.bat
+++ b/boilerplate/android/gradlew.bat
@@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
+if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -54,7 +54,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-if exist "%JAVA_EXE%" goto init
+if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@@ -64,28 +64,14 @@ echo location of your Java installation.
goto fail
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
diff --git a/boilerplate/ios/HelloWorld-tvOS/Info.plist b/boilerplate/ios/HelloWorld-tvOS/Info.plist
deleted file mode 100644
index ecbd496be..000000000
--- a/boilerplate/ios/HelloWorld-tvOS/Info.plist
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1
- LSRequiresIPhoneOS
-
- NSAppTransportSecurity
-
- NSExceptionDomains
-
- localhost
-
- NSExceptionAllowsInsecureHTTPLoads
-
-
-
-
- NSLocationWhenInUseUsageDescription
-
- UILaunchStoryboardName
- LaunchScreen
- UIRequiredDeviceCapabilities
-
- armv7
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UIViewControllerBasedStatusBarAppearance
-
-
-
diff --git a/boilerplate/ios/HelloWorld-tvOSTests/Info.plist b/boilerplate/ios/HelloWorld-tvOSTests/Info.plist
deleted file mode 100644
index ba72822e8..000000000
--- a/boilerplate/ios/HelloWorld-tvOSTests/Info.plist
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- BNDL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1
-
-
diff --git a/boilerplate/ios/HelloWorld.xcodeproj/xcshareddata/xcschemes/HelloWorld-tvOS.xcscheme b/boilerplate/ios/HelloWorld.xcodeproj/xcshareddata/xcschemes/HelloWorld-tvOS.xcscheme
deleted file mode 100644
index d4e27b270..000000000
--- a/boilerplate/ios/HelloWorld.xcodeproj/xcshareddata/xcschemes/HelloWorld-tvOS.xcscheme
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/boilerplate/ios/HelloWorld.xcodeproj/xcshareddata/xcschemes/HelloWorld.xcscheme b/boilerplate/ios/HelloWorld.xcodeproj/xcshareddata/xcschemes/HelloWorld.xcscheme
index 39743fdfd..b57be22ab 100644
--- a/boilerplate/ios/HelloWorld.xcodeproj/xcshareddata/xcschemes/HelloWorld.xcscheme
+++ b/boilerplate/ios/HelloWorld.xcodeproj/xcshareddata/xcschemes/HelloWorld.xcscheme
@@ -1,6 +1,6 @@
NSAppTransportSecurity
- NSAllowsArbitraryLoads
-
NSExceptionDomains
localhost
diff --git a/boilerplate/ios/HelloWorld/LaunchScreen.storyboard b/boilerplate/ios/HelloWorld/LaunchScreen.storyboard
index 0d0edbb96..8f74d3c92 100644
--- a/boilerplate/ios/HelloWorld/LaunchScreen.storyboard
+++ b/boilerplate/ios/HelloWorld/LaunchScreen.storyboard
@@ -16,32 +16,21 @@
-
-
-
+
-
-
-
diff --git a/boilerplate/ios/Podfile b/boilerplate/ios/Podfile
index 50946a055..edcc14105 100644
--- a/boilerplate/ios/Podfile
+++ b/boilerplate/ios/Podfile
@@ -8,7 +8,11 @@ target 'HelloWorld' do
use_unimodules!
config = use_native_modules!
- use_react_native!(:path => config["reactNativePath"])
+ use_react_native!(
+ :path => config[:reactNativePath],
+ # to enable hermes on iOS, change `false` to `true` and then install pods
+ :hermes_enabled => false
+ )
target 'HelloWorldTests' do
inherit! :complete
@@ -18,18 +22,10 @@ target 'HelloWorld' do
# Enables Flipper.
#
# Note that if you have use_frameworks! enabled, Flipper will not work and
- # you should disable these next few lines.
- use_flipper!
- post_install do |installer|
- flipper_post_install(installer)
- end
-end
+ # you should disable the next line.
+ use_flipper!()
-target 'HelloWorld-tvOS' do
- # Pods for HelloWorld-tvOS
-
- target 'HelloWorld-tvOSTests' do
- inherit! :search_paths
- # Pods for testing
+ post_install do |installer|
+ react_native_post_install(installer)
end
end
diff --git a/boilerplate/package.json b/boilerplate/package.json
index a0e9f89fb..597a9e98c 100644
--- a/boilerplate/package.json
+++ b/boilerplate/package.json
@@ -26,29 +26,31 @@
"dependencies": {
"@react-native-async-storage/async-storage": "^1.14.1",
"@react-native-community/masked-view": "0.1.10",
- "@react-navigation/native": "5.8.10",
+ "@react-navigation/native": "5.9.3",
"@react-navigation/stack": "5.12.8",
"@unimodules/core": "6.0.0",
"apisauce": "2.0.0",
"expo-localization": "9.1.0",
"i18n-js": "3.8.0",
- "mobx": "6.0.4",
- "mobx-react-lite": "3.1.6",
- "mobx-state-tree": "4.0.2",
+ "mobx": "6.1.8",
+ "mobx-react-lite": "3.2.0",
+ "mobx-state-tree": "5.0.1",
"ramda": "0.27.1",
- "react": "16.14.0",
- "react-native": "^0.63.4",
- "react-native-gesture-handler": "1.8.0",
+ "react": "17.0.1",
+ "react-native": "0.64.0",
+ "react-native-gesture-handler": "1.10.3",
"react-native-keychain": "6.2.0",
"react-native-safe-area-context": "3.1.8",
- "react-native-screens": "2.13.0",
+ "react-native-screens": "2.18.1",
"react-native-splash-screen": "3.2.0",
- "react-native-unimodules": "0.11.0",
+ "react-native-unimodules": "0.12.0",
"reactotron-mst": "3.1.3",
"reactotron-react-native": "5.0.0",
"validate.js": "0.13.1"
},
"devDependencies": {
+ "@babel/core": "^7.12.9",
+ "@babel/runtime": "^7.12.5",
"@babel/plugin-proposal-decorators": "7.12.1",
"@babel/plugin-proposal-optional-catch-binding": "7.12.1",
"@storybook/addon-storyshots": "6.1.10",
@@ -67,6 +69,7 @@
"bufferutil": "4.0.2",
"canvas": "2.6.1",
"detox": "17.14.5",
+ "fbjs-scripts": "3.0.0",
"eslint": "7.15.0",
"eslint-config-prettier": "7.0.0",
"eslint-config-standard": "16.0.2",
@@ -75,7 +78,7 @@
"eslint-plugin-promise": "4.2.1",
"eslint-plugin-react": "7.21.5",
"eslint-plugin-react-native": "3.10.0",
- "jest": "25.5.4",
+ "jest": "^26.6.3",
"jest-circus": "25.5.4",
"jest-expo": "40.0.1",
"jetifier": "1.6.6",
@@ -86,12 +89,12 @@
"prettier": "2.2.1",
"react-devtools-core": "4.10.1",
"react-dom": "16.14.0",
- "react-native-web": "0.13.18",
+ "react-native-web": "0.15.1",
"react-powerplug": "1.0.0",
"react-test-renderer": "17.0.1",
"rimraf": "3.0.2",
"solidarity": "2.3.1",
- "typescript": "4.1.3",
+ "typescript": "4.2.3",
"utf-8-validate": "5.0.3"
},
"jest": {
@@ -105,7 +108,7 @@
"/e2e"
],
"transformIgnorePatterns": [
- "node_modules/(?!(jest-)?react-native|@react-navigation|@storybook|@react-native-community|expo-localization|@unimodules)"
+ "node_modules/(?!(jest-)?react-native|@react-native|@react-navigation|@storybook|@react-native-community|expo-localization|@unimodules)"
]
},
"prettier": {
diff --git a/package.json b/package.json
index c990813eb..5c267dd85 100644
--- a/package.json
+++ b/package.json
@@ -52,23 +52,23 @@
"@semantic-release/git": "^9.0.0",
"@types/jest": "^26.0.14",
"@types/node": "12.12.30",
- "@typescript-eslint/eslint-plugin": "^4.10.0",
- "@typescript-eslint/parser": "^4.10.0",
- "babel-eslint": "^10.0.3",
- "eslint": "^7.11.0",
- "eslint-config-prettier": "^7.0.0",
+ "@typescript-eslint/eslint-plugin": "^4.19.0",
+ "@typescript-eslint/parser": "^4.19.0",
+ "babel-eslint": "^10.1.0",
+ "eslint": "^7.23.0",
+ "eslint-config-prettier": "^8.1.0",
"eslint-config-standard": "^16.0.2",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-node": "^11.1.0",
- "eslint-plugin-promise": "^4.2.1",
+ "eslint-plugin-promise": "^4.3.1",
"husky": "^4.3.0",
"jest": "^26.5.3",
"npm-run-all": "4.1.5",
"prettier": "2.2.1",
- "semantic-release": "^17.2.1",
+ "semantic-release": "^17.4.2",
"strip-ansi": "^6.0.0",
- "ts-jest": "^26.4.1",
- "ts-node": "^9.0.0",
+ "ts-jest": "^26.5.4",
+ "ts-node": "^9.1.1",
"typescript": "^4.1.3"
},
"eslintConfig": {