12f850c8e1
* Create Shaders.ts * Add `previewType` and `enableFpsGraph` * Add RN Skia native dependency * Add Skia Preview View on iOS * Pass 1 * Update FrameHostObject.mm * Wrap Canvas * Lockfiles * fix: Fix stuff * chore: Upgrade RNWorklets * Add `previewType` to set the Preview * feat: Add Example * Update project.pbxproj * `enableFpsGraph` * Cache the `std::shared_ptr<FrameHostObject>` * Update CameraView+RecordVideo.swift * Update SkiaMetalCanvasProvider.mm * Android: Integrate Skia Dependency * fix: Use new Prefix * Add example for rendering shader * chore: Upgrade CameraX * Remove KTX * Enable `viewBinding` * Revert "Enable `viewBinding`" This reverts commit f2a603f53b33ea4311a296422ffd1a910ce03f9e. * Revert "chore: Upgrade CameraX" This reverts commit 8dc832cf8754490d31a6192e6c1a1f11cdcd94fe. * Remove unneeded `ProcessCameraProvider.getInstance()` call * fix: Add REA hotfix patch * fix: Fix FrameHostObject dead in runAsync * fix: Make `runAsync` run truly async by dropping new Frames while executing * chore: Upgrade RN Worklets to latest * chore: Upgrade RN Skia * Revert "Remove KTX" This reverts commit 253f586633f7af2da992d2279fc206dc62597129. * Make Skia optional in CMake * Fix import * Update CMakeLists.txt * Update build.gradle * Update CameraView.kt * Update CameraView.kt * Update CameraView.kt * Update Shaders.ts * Center Blur * chore: Upgrade RN Worklets * feat: Add `toByteArray()`, `orientation`, `isMirrored` and `timestamp` to `Frame` (#1487) * feat: Implement `orientation` and `isMirrored` on Frame * feat: Add `toArrayBuffer()` func * perf: Do faster buffer copy * feat: Implement `toArrayBuffer()` on Android * feat: Add `orientation` and `isMirrored` to Android * feat: Add `timestamp` to Frame * Update Frame.ts * Update JImageProxy.h * Update FrameHostObject.cpp * Update FrameHostObject.cpp * Update CameraPage.tsx * fix: Format Swift |
||
---|---|---|
.. | ||
Extensions | ||
Frame Processor | ||
Parsers | ||
React Utils | ||
Skia Render Layer | ||
VisionCamera.xcodeproj | ||
.swift-version | ||
.swiftformat | ||
.swiftlint.yml | ||
CameraBridge.h | ||
CameraError.swift | ||
CameraQueues.swift | ||
CameraView.swift | ||
CameraView+AVAudioSession.swift | ||
CameraView+AVCaptureSession.swift | ||
CameraView+Focus.swift | ||
CameraView+Orientation.swift | ||
CameraView+RecordVideo.swift | ||
CameraView+TakePhoto.swift | ||
CameraView+Zoom.swift | ||
CameraViewManager.m | ||
CameraViewManager.swift | ||
PhotoCaptureDelegate.swift | ||
PreviewView.swift | ||
README.md | ||
RecordingSession.swift |
ios
This folder contains the iOS-platform-specific code for react-native-vision-camera.
Prerequesites
- Install Xcode tools
xcode-select --install
- Install need SwiftFormat and SwiftLint
brew install swiftformat swiftlint
Getting Started
It is recommended that you work on the code using the Example project (example/ios/VisionCameraExample.xcworkspace
), since that always includes the React Native header files, plus you can easily test changes that way.
You can however still edit the library project here by opening VisionCamera.xcodeproj
, this has the advantage of automatically formatting your Code (swiftformat) and showing you Linter errors (swiftlint) when trying to build (⌘+B).
Committing
Before committing, make sure that you're not violating the Swift or C++ codestyles. To do that, run the following command:
yarn check-ios
This will also try to automatically fix any errors by re-formatting the Swift code.