Release 3.0.0-rc.4
Pre-release
Pre-release
3.0.0-rc.4 (2023-07-31)
- Lots under the hood changes
- Full C++ codebase rewrite on iOS
- Full C++ codebase rewrite on Android
- Android now works! 🌮
- New hook:
useSkiaFrameProcessor - Frame Processor Plugins are now object oriented and can be initialized from JS with custom options. This will allow you to pass options like which model to use, fast or accurate, to a native FP plugin like a face-detection or pose-detection algorithm.
Old syntax:
export function examplePlugin(frame: Frame) {
'worklet'
return VisionCameraPlugins.__examplePlugin(frame)
}New syntax:
const plugin = VisionCameraProxy.getFrameProcessorPlugin('example_plugin')
export function examplePlugin(frame: Frame) {
'worklet'
return plugin.call(frame)
}And the getFrameProcessorPlugin can also accept options, which is a NSDictionary on iOS in the init: call.
📚 Documentation
- fix wrong comment (533c32a)
✨ Features
- Add RN 0.72 support (
namespacein build.gradle) (7ae15af) - Better Native Module Error Detection (#1515) (f791c6b)
- Complete iOS Codebase rewrite (#1647) (375e894)
- Expose unified
VisionCameraProxyobject, makeFrameProcessorPlugins object-oriented (#1660) (44ed42d) - Make Frame Processor Plugins object-oriented on iOS as well (#1496) (622d383)
- New
CameraDevice+CameraFormatdetection using CameraX (#1495) (0d83a13) - Rewrite Android C++ part (
VisionCameraProxy+JFrame) (#1661) (86dd703)
🐛 Bug Fixes
- Catch
device == nullerror (f227a3e) - Downgrade Gradle to 7.5.1 (66c6481)
- Fix
runAtTargetFpsfor multiple invocations per FP (af4e366) - Fix Android namespace (cf19ff2)
- Fix FP Plugin init call (c2096a4)
- Fix missing Camera error (38749fb)
- Fix namespace (deeb8db)
- Fix Skia build (#1582) (f03dde7)
- Fix Worklets imports (5fb594c)
- ignore duplicate
.solibraries in package (ad5d64b) - Improve C++ safety by attaching Cache Invalidator to
jsi::Runtime's lifecycle (#1488) (0c3cd66) - Move implementation for FrameProcessorPlugin to
.m(bc9c157) - pragma once (127656b)
- Remove iOS 13 guard (7c721cc)
- Remove RN Skia dependency on Android for now (61f19df)
- Remove temp-patch for REA plugin (6deb686)
- Set min iOS version to 12.4 (bb7ab30)
- Simplify Podfile (0111f2e)
- Use
global.expo.modulesfor JSI expo modules (a1af891) - Use correct Gradle version (0139324)