diff --git a/babel.config.js b/babel.config.js index f842b77..84c39fd 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,3 +1,4 @@ module.exports = { presets: ['module:metro-react-native-babel-preset'], + plugins: ['react-native-reanimated/plugin'] }; diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 5a24dc5..a25fcac 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -76,7 +76,7 @@ import com.android.build.OutputFile */ project.ext.react = [ - enableHermes: false, // clean and rebuild if changing + enableHermes: true, // clean and rebuild if changing entryFile: "index.tsx", ] diff --git a/example/android/app/src/main/java/com/example/reactnativevisioncamera/MainApplication.java b/example/android/app/src/main/java/com/example/reactnativevisioncamera/MainApplication.java index f9586b3..9983538 100644 --- a/example/android/app/src/main/java/com/example/reactnativevisioncamera/MainApplication.java +++ b/example/android/app/src/main/java/com/example/reactnativevisioncamera/MainApplication.java @@ -13,6 +13,9 @@ import java.lang.reflect.InvocationTargetException; import java.util.List; import com.reactnativevisioncamera.VisionCameraPackage; +import com.facebook.react.bridge.JSIModulePackage; +import com.swmansion.reanimated.ReanimatedJSIModulePackage; + public class MainApplication extends NavigationApplication { private final ReactNativeHost mReactNativeHost = @@ -36,6 +39,11 @@ public class MainApplication extends NavigationApplication { protected String getJSMainModuleName() { return "index"; } + + @Override + protected JSIModulePackage getJSIModulePackage() { + return new ReanimatedJSIModulePackage(); + } }; @Override @@ -46,7 +54,7 @@ public class MainApplication extends NavigationApplication { @Override public void onCreate() { super.onCreate(); - + initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); // Remove this line if you don't want Flipper enabled } diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 009078f..1bd671e 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -305,6 +305,35 @@ PODS: - React-Core - React-RCTImage - React-RCTText + - RNReanimated (2.0.0-rc.3): + - DoubleConversion + - FBLazyVector + - FBReactNativeSpec + - Folly + - glog + - RCTRequired + - RCTTypeSafety + - React + - React-callinvoker + - React-Core + - React-Core/DevSupport + - React-Core/RCTWebSocket + - React-CoreModules + - React-cxxreact + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-RCTActionSheet + - React-RCTAnimation + - React-RCTBlob + - React-RCTImage + - React-RCTLinking + - React-RCTNetwork + - React-RCTSettings + - React-RCTText + - React-RCTVibration + - ReactCommon/turbomodule/core + - Yoga - Yoga (1.14.0) - YogaKit (1.18.1): - Yoga (~> 1.14) @@ -358,6 +387,7 @@ DEPENDENCIES: - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - ReactNativeNavigation (from `../node_modules/react-native-navigation`) + - RNReanimated (from `../node_modules/react-native-reanimated`) - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) SPEC REPOS: @@ -430,6 +460,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon" ReactNativeNavigation: :path: "../node_modules/react-native-navigation" + RNReanimated: + :path: "../node_modules/react-native-reanimated" Yoga: :path: "../node_modules/react-native/ReactCommon/yoga" @@ -472,6 +504,7 @@ SPEC CHECKSUMS: React-RCTVibration: ae4f914cfe8de7d4de95ae1ea6cc8f6315d73d9d ReactCommon: 73d79c7039f473b76db6ff7c6b159c478acbbb3b ReactNativeNavigation: fa1eed29e815dfca6a1cb325776ef97658c54ce3 + RNReanimated: ca4f28c765329144d68bdad126bf6b0b1afc7a5a Yoga: 4bd86afe9883422a7c4028c00e34790f560923d6 YogaKit: f782866e155069a2cca2517aafea43200b01fd5a diff --git a/example/ios/VisionCameraExample/Images.xcassets/AppIcon.appiconset/Contents.json b/example/ios/VisionCameraExample/Images.xcassets/AppIcon.appiconset/Contents.json index 118c98f..8121323 100644 --- a/example/ios/VisionCameraExample/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/example/ios/VisionCameraExample/Images.xcassets/AppIcon.appiconset/Contents.json @@ -2,37 +2,52 @@ "images" : [ { "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" + "scale" : "2x", + "size" : "20x20" }, { "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" + "scale" : "3x", + "size" : "20x20" }, { "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" + "scale" : "2x", + "size" : "29x29" }, { "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" + "scale" : "3x", + "size" : "29x29" }, { "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" + "scale" : "2x", + "size" : "40x40" }, { "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/example/package-lock.json b/example/package-lock.json index 76f5382..cbfc4c1 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -1437,6 +1437,8 @@ }, "babel-plugin-module-resolver": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz", + "integrity": "sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==", "dev": true, "requires": { "find-babel-config": "^1.2.0", @@ -1917,6 +1919,14 @@ "parse-json": "^4.0.0" } }, + "cross-fetch": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz", + "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==", + "requires": { + "node-fetch": "2.6.1" + } + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -3695,6 +3705,8 @@ }, "metro-react-native-babel-preset": { "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.64.0.tgz", + "integrity": "sha512-HcZ0RWQRuJfpPiaHyFQJzcym+/dDIVUPwUAXWoub/C4GkGu+mPjp8vqK6g0FxokCnnI2TK0gZTza2IDfiNNscQ==", "dev": true, "requires": { "@babel/core": "^7.0.0", @@ -4365,6 +4377,8 @@ }, "react": { "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", + "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -4399,6 +4413,8 @@ }, "react-native": { "version": "0.63.4", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.63.4.tgz", + "integrity": "sha512-I4kM8kYO2mWEYUFITMcpRulcy4/jd+j9T6PbIzR0FuMcz/xwd+JwHoLPa1HmCesvR1RDOw9o4D+OFLwuXXfmGw==", "requires": { "@babel/runtime": "^7.0.0", "@react-native-community/cli": "^4.10.0", @@ -4581,6 +4597,40 @@ "tslib": "1.9.3" } }, + "react-native-reanimated": { + "version": "2.0.0-rc.3", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-2.0.0-rc.3.tgz", + "integrity": "sha512-tjFGraTI1mnwQ9TspNpxs1oVqi1OImEAvKhRwBYvZoVuIS+VPQuMfB+DdohQIDe+hxzbfvoZMXe+A3TzJuSM0g==", + "requires": { + "@babel/plugin-transform-object-assign": "^7.10.4", + "fbjs": "^3.0.0", + "string-hash-64": "^1.0.3" + }, + "dependencies": { + "fbjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz", + "integrity": "sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg==", + "requires": { + "cross-fetch": "^3.0.4", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + } + } + }, "react-refresh": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", @@ -5147,6 +5197,11 @@ "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=" }, + "string-hash-64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string-hash-64/-/string-hash-64-1.0.3.tgz", + "integrity": "sha512-D5OKWKvDhyVWWn2x5Y9b+37NUllks34q1dCDhk/vYcso9fmhs+Tl3KR/gE4v5UNj2UA35cnX4KdVVGkG1deKqw==" + }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", diff --git a/example/package.json b/example/package.json index df62823..9be138b 100644 --- a/example/package.json +++ b/example/package.json @@ -11,7 +11,8 @@ "dependencies": { "react": "16.13.1", "react-native": "0.63.4", - "react-native-navigation": "^7.10.0" + "react-native-navigation": "^7.10.0", + "react-native-reanimated": "^2.0.0-rc.3" }, "devDependencies": { "@babel/core": "^7.12.10",