react-native-vision-camera/package/ios
Marc Rousavy 0d21bc3a57
fix: Fix blackscreen issues and lifecycle when closing Camera (#2339)
* fix: Fix Blackscreen by deterministically destroying session if `isActive=false`

* Re-open Camera if session died

* Simplify Camera

* Disconnect is optional, block when resetting state

* fix: Log in `configure { ... }`

* fix: Make concurrent configure safe

* fix: Don't resize preview

* fix: Use current `CameraConfiguration`

* Don't start if no outputs are available

* Only mount with preview outputs

* Update CameraSession.kt

* Update PreviewView.kt

* Better logging

* Update CameraSession.kt

* Extract

* fix: Rebuild entire session if `isActive` changed

* isActive safe

* Start session at 1

* Create ActiveCameraDevice.kt

* interrupts

* chore: Freeze `frame` in `useFrameProcessor`

* Revert "chore: Freeze `frame` in `useFrameProcessor`"

This reverts commit dff93d506e29a791d8dea8842b880ab5c892211e.

* chore: Better logging

* fix: Move HDR to `video`/`photo` config

* fix: Fix hdr usage

* fix: Ignore any updates after destroying Camera

* fix: Fix video HDR

* chore: Format code

* fix: Check Camera permission

* Remove unneeded error

* Update CameraSession.kt

* Update CameraPage.tsx

* Delete OutputConfiguration.toDebugString.kt

* Update CameraSession.kt
2024-01-08 11:41:57 +01:00
..
Core fix: Fix blackscreen issues and lifecycle when closing Camera (#2339) 2024-01-08 11:41:57 +01:00
Extensions fix: Fix minFps being wrong (#2248) 2023-12-04 11:41:56 +01:00
Frame Processor fix: Fix crash when trying to console.log(frame) (#2335) 2024-01-02 13:54:07 +01:00
Parsers fix: Fix iOS not reading videoCodec and videoBitRate from options (#2202) 2023-11-22 17:54:49 +01:00
React Utils chore: Move everything into package/ (#1745) 2023-09-01 18:15:28 +02:00
Types feat: Add width and height to VideoFile output (#2281) 2023-12-12 16:43:57 +01:00
VisionCamera.xcodeproj feat: Make Frame thread-safe and improve error messages (#2327) 2023-12-29 14:09:56 +01:00
.swift-version chore: Move everything into package/ (#1745) 2023-09-01 18:15:28 +02:00
.swiftformat chore: Move everything into package/ (#1745) 2023-09-01 18:15:28 +02:00
.swiftlint.yml chore: Move everything into package/ (#1745) 2023-09-01 18:15:28 +02:00
CameraBridge.h feat: New JS API for useCameraDevice and useCameraFormat and much faster getAvailableCameraDevices() (#1784) 2023-09-21 11:20:33 +02:00
CameraDevicesManager.m feat: New JS API for useCameraDevice and useCameraFormat and much faster getAvailableCameraDevices() (#1784) 2023-09-21 11:20:33 +02:00
CameraDevicesManager.swift fix: Fix Xcode 15 build error (var instead of let) (#2048) 2023-10-19 17:43:20 +02:00
CameraView.swift fix: Fix blackscreen issues and lifecycle when closing Camera (#2339) 2024-01-08 11:41:57 +01:00
CameraView+Focus.swift fix: Fix focus(..) on iOS (#2220) 2023-11-27 14:43:56 +01:00
CameraView+RecordVideo.swift fix: Fix torch not staying on while recording (#2249) 2023-12-04 11:43:17 +01:00
CameraView+TakePhoto.swift feat: New Core/ library (#1975) 2023-10-13 18:33:20 +02:00
CameraView+Zoom.swift fix: Fix iOS native enableZoomGesture zoom logic (#2329) 2024-01-02 11:57:22 +01:00
CameraViewManager.m perf: Make getCameraPermission and getMicrophonePermission synchronous (#2302) 2023-12-19 14:22:04 +01:00
CameraViewManager.swift perf: Make getCameraPermission and getMicrophonePermission synchronous (#2302) 2023-12-19 14:22:04 +01:00
README.md chore: Move everything into package/ (#1745) 2023-09-01 18:15:28 +02:00

ios

This folder contains the iOS-platform-specific code for react-native-vision-camera.

Prerequesites

  1. Install Xcode tools
    xcode-select --install
    
  2. 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.