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 (
namespace
in build.gradle) (7ae15af) - Better Native Module Error Detection (#1515) (f791c6b)
- Complete iOS Codebase rewrite (#1647) (375e894)
- Expose unified
VisionCameraProxy
object, makeFrameProcessorPlugin
s object-oriented (#1660) (44ed42d) - Make Frame Processor Plugins object-oriented on iOS as well (#1496) (622d383)
- New
CameraDevice
+CameraFormat
detection using CameraX (#1495) (0d83a13) - Rewrite Android C++ part (
VisionCameraProxy
+JFrame
) (#1661) (86dd703)
🐛 Bug Fixes
- Catch
device == null
error (f227a3e) - Downgrade Gradle to 7.5.1 (66c6481)
- Fix
runAtTargetFps
for 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
.so
libraries 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.modules
for JSI expo modules (a1af891) - Use correct Gradle version (0139324)