Skip to content
This repository was archived by the owner on Apr 9, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
02ae227
chore: Update Discord links
mrousavy Oct 19, 2024
51d0a8a
fix: update `ExampleSwiftFrameProcessor.swift` reference (#3257)
emmanuel-ferdman Oct 29, 2024
db99c08
fix: Fix mapping of itf and add new itf-14 type in iOS (#3252)
Regina-v Oct 29, 2024
322b38a
chore: Refactor codebase to a monorepo setup with bun (#3249)
hannojg Oct 30, 2024
48b4300
fix: Fix build for RN 0.76 by using new shared prefab (#3263)
mrousavy Oct 30, 2024
8cc9803
feat: Add Android support to `videoBitRate` (move it to props) (#3269)
mrousavy Oct 30, 2024
19f439a
chore: Use `*` instead of `workspace:*` syntax
mrousavy Oct 30, 2024
782b131
chore: release 4.6.0
mrousavy Oct 30, 2024
17a4283
fix: Fix installation issues by removing post install hook (#3275)
hannojg Nov 4, 2024
c2f075a
fix: Fix duplicate libraries: `libreactnative.so` error on RN 0.76 (#…
mrousavy Nov 5, 2024
8bc92dd
feat: Update CameraX from alpha02 to alpha03 (#3272)
dependabot[bot] Nov 5, 2024
932ca57
chore: release 4.6.1
mrousavy Nov 5, 2024
47b8a30
feat: Update `org.jetbrains.kotlinx:kotlinx-coroutines-android` to 1.…
dependabot[bot] Nov 6, 2024
143ec9f
chore: bump com.android.tools.build:gradle from 8.5.2 to 8.7.2 in /pa…
dependabot[bot] Nov 6, 2024
4f2c6da
chore: Create Release build CI action
mrousavy Nov 13, 2024
82bdbb6
docs: Update to Docusaurus 3.6.1 (#3293)
mrousavy Nov 13, 2024
16d97d0
docs: Fix typedoc docusaurus sidebar (#3294)
mrousavy Nov 13, 2024
c7f5529
feat: Adjust Preview resolution to comply with `photo` if `video` is …
ismaelsousa Nov 20, 2024
4535303
chore: bump the docusaurus group across 1 directory with 9 updates (#…
dependabot[bot] Nov 25, 2024
66c0bcd
chore: Update bun.lockb
mrousavy Nov 25, 2024
9668fa0
chore: Add update-lockfiles CI
mrousavy Nov 25, 2024
2d9b216
chore: Update Podfile.lock
mrousavy Nov 25, 2024
6474f4a
chore: release 4.6.2
mrousavy Nov 25, 2024
613fac5
fix: Fix example app hermesc path
mrousavy Nov 25, 2024
54df86a
chore: release 4.6.3
mrousavy Nov 25, 2024
b194ef1
fix: Fix `InitializationException` and rethrow in `onError` callback …
sorenfrederiksen Jan 30, 2025
0271e9e
fix: Simplify logic and also catch extension manager error (#3390)
mrousavy Jan 30, 2025
b687014
fix: Request the current location if `lastKnownLocation` is null (#3358)
andrei-tofan Jan 31, 2025
6501b63
fix: Fix React Native 77 Android build failure by `LifecycleOwner` (#…
High5Apps Feb 14, 2025
64c3f7c
chore: Use `bun` for dependabot
mrousavy Feb 17, 2025
85a3024
fix: Fix orientation updating to `portrait` when phone is flat (#3423)
mrousavy Feb 17, 2025
3a265c8
fix: Fix orientation actually being unknown
mrousavy Feb 18, 2025
7456c00
fix: Don't send `onOrientationChanged` event if phone is flat on Andr…
mrousavy Feb 20, 2025
b982eca
chore: release 4.6.4
mrousavy Feb 20, 2025
82998e1
feat: add GS1 DataBar and GS1 DataBar Expanded on iOS (#3403)
enkhjile Apr 7, 2025
aec24aa
feat: Enhance photo size retrieval by combining high-resolution and s…
ismaelsousa Apr 7, 2025
ea097d2
chore: Lint Kotlin
mrousavy May 8, 2025
17d9f09
feat: Add 16 KB page size support (#3543)
jguix Jun 5, 2025
d82be8c
chore: release 4.7.0
mrousavy Jun 16, 2025
6b0a9d2
fix: Exclude `libhermestooling.so` from Android merge (#3541)
harsh25jai Jun 16, 2025
5206c78
fix: Fix a case where no camera devices are loaded on app start (#3575)
hannojg Jul 14, 2025
e1f1359
fix: Upgrade CameraX from alpha03 to beta01 (#3576)
hannojg Jul 14, 2025
cac48b2
Revert "fix(android): bump androidX to beta01 (which fixes several ed…
hannojg Jul 14, 2025
3a68e5a
chore: release 4.7.1
mrousavy Jul 18, 2025
ae9be9f
fix: Fix build for RN 0.81 (#3583)
riteshshukla04 Jul 21, 2025
522f3bd
docs: Fix missing import for `runOnJS` (#3559)
stvdrsch Jul 21, 2025
8947f8d
docs: Update stabilization guide
mrousavy Jul 29, 2025
8e919c8
chore: Disable cache for release CI
mrousavy Aug 4, 2025
62bcb59
chore: Update bun.lockb
mrousavy Sep 2, 2025
82148d1
chore: release 4.7.2
mrousavy Sep 2, 2025
fa48878
fix: Avoid calling getJSModule in init on Android (#3623)
n-kulic Sep 8, 2025
c663bb0
chore: Migrate to text lockfile
mrousavy Sep 22, 2025
cdb68e0
fix: Pin Reanimated to 3.9.0
mrousavy Sep 22, 2025
5b2d0b8
Revert "fix: Pin Reanimated to 3.9.0"
mrousavy Sep 22, 2025
6225a38
chore: Migrate to text lockfile now
mrousavy Sep 22, 2025
45e9c81
chore: Lockfile
mrousavy Sep 22, 2025
90baa20
docs: Update FRAME_PROCESSOR_PLUGINS_COMMUNITY.mdx (#3643)
jamenamcinteer Oct 15, 2025
f55c34e
chore: Update CI target
mrousavy Nov 11, 2025
7d1a220
chore: Lockfile
mrousavy Nov 12, 2025
eb00b4c
chore: release 4.7.3
mrousavy Nov 12, 2025
130cbab
docs: add expo-modules guide for creating Frame Processor Plugins (#3…
SarjuHansaliya Dec 10, 2025
cc58a67
feat: Add `onBytesWrittenVideo` event while recording Videos (#3549)
felire Dec 15, 2025
0d7b939
chore: Lint
mrousavy Jan 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/BUG_REPORT.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ body:
attributes:
label: Can you reproduce this issue in the VisionCamera Example app?
description: >
Try to build the example app (`package/example/`) and see if the issue is reproduceable here.
Try to build the example app (`example/`) and see if the issue is reproduceable here.
**Note:** If you don't try this in the example app, I most likely won't help you with your issue.
options:
- I didn't try (⚠️ your issue might get ignored & closed if you don't try this)
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/BUILD_ERROR.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ body:
attributes:
label: Can you build the VisionCamera Example app?
description: >
Try to build the example app (`package/example/`) and see if the issue is reproduceable here.
Try to build the example app (`example/`) and see if the issue is reproduceable here.
**Note:** If you don't try to build the example app, I most likely won't help you with your issue.
options:
- I didn't try (⚠️ your issue might get ignored & closed if you don't try this)
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ contact_links:
url: https://react-native-vision-camera.com/docs/guides/troubleshooting
about: Please read the Troubleshooting Guide before opening an issue.
- name: Margelo Community Discord
url: https://discord.gg/6CSHz2qAvA
url: https://margelo.com/discord
about: Discuss and chat about react-native-vision-camera or other Margelo libraries with our team or other community members. Remember to read the rules!
- name: CameraX Issue Tracker
url: https://issuetracker.google.com/issues?q=componentid:618491%20status:open#
Expand Down
22 changes: 18 additions & 4 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,29 +7,43 @@ updates:
interval: "daily"
labels:
- "🛠 dependencies"

- package-ecosystem: "gradle"
directory: "/package/android/"
schedule:
interval: "daily"
labels:
- "🛠 dependencies"
- "🤖 android"
# - package-ecosystem: "npm"

- package-ecosystem: "bun"
directories:
- "/docs/"
schedule:
interval: "daily"
labels:
- "🛠 dependencies"
groups:
docusaurus:
patterns:
- "@docusaurus/*"

# - package-ecosystem: "bun"
# directory: "/package/"
# schedule:
# interval: "monthly"
# labels:
# - "🛠 dependencies"
# - "☕️ js"
# - package-ecosystem: "npm"
# directory: "/package/example/"
# - package-ecosystem: "bun"
# directory: "/example/"
# schedule:
# interval: "monthly"
# labels:
# - "🛠 dependencies"
# - "🛸 example"
# - "☕️ js"
# - package-ecosystem: "npm"
# - package-ecosystem: "bun"
# directory: "/docs/"
# schedule:
# interval: "monthly"
Expand Down
42 changes: 42 additions & 0 deletions .github/workflows/build-android-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Build Android (Release)

on:
release:
types: [published]

jobs:
build_release:
name: Build Android Example App (release)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2

- name: Install npm dependencies (bun)
run: bun install

- name: Setup JDK 17
uses: actions/setup-java@v4
with:
distribution: "zulu"
java-version: 17
java-package: jdk

- name: Run Gradle Build for example/android/
working-directory: example/android
run: ./gradlew assembleRelease

- name: Upload APK to Release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: example/android/app/build/outputs/apk/release/app-release.apk
asset_name: "VisionCameraExample-${{ github.event.release.tag_name }}.apk"
asset_content_type: application/vnd.android.package-archive

# Gradle cache doesn't like daemons
- name: Stop Gradle Daemon
working-directory: example/android
run: ./gradlew --stop
78 changes: 26 additions & 52 deletions .github/workflows/build-android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,51 +5,37 @@ on:
branches:
- main
paths:
- '.github/workflows/build-android.yml'
- 'package/android/**'
- 'package/example/android/**'
- 'package/yarn.lock'
- 'package/example/yarn.lock'
- ".github/workflows/build-android.yml"
- "package/android/**"
- "example/android/**"
- "package/bun.lockb"
- "example/bun.lockb"
pull_request:
paths:
- '.github/workflows/build-android.yml'
- 'package/android/**'
- 'package/example/android/**'
- 'package/yarn.lock'
- 'package/example/yarn.lock'
- ".github/workflows/build-android.yml"
- "package/android/**"
- "example/android/**"
- "package/bun.lockb"
- "example/bun.lockb"

jobs:
build:
name: Build Android Example App
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./package
steps:
- uses: actions/checkout@v4

- name: Setup JDK 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
distribution: "zulu"
java-version: 17
java-package: jdk

- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Restore node_modules from cache
uses: actions/cache@v4
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-with-fps-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-with-fps-yarn-
- name: Install node_modules
run: yarn install --frozen-lockfile
- name: Install node_modules for example/
run: yarn install --frozen-lockfile --cwd example
- uses: oven-sh/setup-bun@v2

- name: Install npm dependencies (bun)
run: bun install

- name: Restore Gradle cache
uses: actions/cache@v4
Expand All @@ -60,45 +46,33 @@ jobs:
restore-keys: |
${{ runner.os }}-with-fps-gradle-
- name: Run Gradle Build for example/android/
run: cd example/android && ./gradlew assembleDebug --no-daemon --build-cache && cd ../..
run: cd example/android && ./gradlew assembleDebug --no-daemon --build-cache

# Gradle cache doesn't like daemons
- name: Stop Gradle Daemon
run: cd android && ./gradlew --stop
run: cd example/android && ./gradlew --stop

build-no-frame-processors:
name: Build Android Example App (without Frame Processors)
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./package
steps:
- uses: actions/checkout@v4

- name: Setup JDK 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
distribution: "zulu"
java-version: 17
java-package: jdk

- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Restore node_modules from cache
uses: actions/cache@v4
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-without-fps-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-without-fps-yarn-
- name: Install node_modules
run: yarn install --frozen-lockfile
- name: Install node_modules for example/
run: yarn install --frozen-lockfile --cwd example
- uses: oven-sh/setup-bun@v2

- name: Install npm dependencies (bun)
run: bun install
- name: Remove worklets, skia and reanimated
run: yarn remove react-native-worklets-core @shopify/react-native-skia react-native-reanimated --cwd example
run: |
bun remove react-native-worklets-core @shopify/react-native-skia react-native-reanimated --cwd example
bun remove react-native-worklets-core @shopify/react-native-skia react-native-reanimated

- name: Restore Gradle cache
uses: actions/cache@v4
Expand All @@ -113,4 +87,4 @@ jobs:

# Gradle cache doesn't like daemons
- name: Stop Gradle Daemon
run: cd android && ./gradlew --stop
run: cd example/android && ./gradlew --stop
70 changes: 27 additions & 43 deletions .github/workflows/build-ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,40 +5,31 @@ on:
branches:
- main
paths:
- '.github/workflows/build-ios.yml'
- 'package/ios/**'
- 'package/*.podspec'
- 'package/example/ios/**'
- ".github/workflows/build-ios.yml"
- "package/ios/**"
- "package/*.podspec"
- "example/ios/**"
pull_request:
paths:
- '.github/workflows/build-ios.yml'
- 'package/ios/**'
- 'package/*.podspec'
- 'package/example/ios/**'
- ".github/workflows/build-ios.yml"
- "package/ios/**"
- "package/*.podspec"
- "example/ios/**"

jobs:
build:
name: Build iOS Example App
runs-on: macOS-latest
defaults:
run:
working-directory: package/example/ios
working-directory: example/ios
steps:
- uses: actions/checkout@v4

- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Restore node_modules from cache
uses: actions/cache@v4
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-with-fps-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-with-fps-yarn-
- name: Install node_modules for example/
run: yarn install --frozen-lockfile --cwd ..
- uses: oven-sh/setup-bun@v2

- name: Install npm dependencies (bun)
run: cd ../../ && bun install

- name: Restore buildcache
uses: mikehardy/buildcache-action@v2
Expand All @@ -49,12 +40,12 @@ jobs:
with:
ruby-version: 2.7.2
bundler-cache: true
working-directory: package/example/ios
working-directory: example/ios

- name: Restore Pods cache
uses: actions/cache@v4
with:
path: package/example/ios/Pods
path: example/ios/Pods
key: ${{ runner.os }}-with-fps-pods-${{ hashFiles('**/Podfile.lock', '**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-with-fps-pods-
Expand All @@ -70,7 +61,7 @@ jobs:
-scheme VisionCameraExample \
-sdk iphonesimulator \
-configuration Debug \
-destination 'platform=iOS Simulator,name=iPhone 15' \
-destination 'platform=iOS Simulator,name=iPhone 17' \
build \
CODE_SIGNING_ALLOWED=NO | xcpretty"

Expand All @@ -79,25 +70,18 @@ jobs:
runs-on: macOS-latest
defaults:
run:
working-directory: package/example/ios
working-directory: example/ios
steps:
- uses: actions/checkout@v4

- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Restore node_modules from cache
uses: actions/cache@v4
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-without-fps-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-without-fps-yarn-
- name: Install node_modules for example/
run: yarn install --frozen-lockfile --cwd ..
- uses: oven-sh/setup-bun@v2

- name: Install npm dependencies (bun)
run: cd ../../ && bun install
- name: Remove worklets, skia and reanimated
run: yarn remove react-native-worklets-core @shopify/react-native-skia react-native-reanimated --cwd ..
run: |
bun remove react-native-worklets-core @shopify/react-native-skia react-native-reanimated --cwd ..
bun remove react-native-worklets-core @shopify/react-native-skia react-native-reanimated --cwd ../../package

- name: Restore buildcache
uses: mikehardy/buildcache-action@v2
Expand All @@ -108,12 +92,12 @@ jobs:
with:
ruby-version: 2.7.2
bundler-cache: true
working-directory: package/example/ios
working-directory: example/ios

- name: Restore Pods cache
uses: actions/cache@v4
with:
path: package/example/ios/Pods
path: example/ios/Pods
key: ${{ runner.os }}-without-fps-pods-${{ hashFiles('**/Podfile.lock', '**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-without-fps-pods-
Expand All @@ -129,6 +113,6 @@ jobs:
-scheme VisionCameraExample \
-sdk iphonesimulator \
-configuration Debug \
-destination 'platform=iOS Simulator,name=iPhone 15' \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro' \
build \
CODE_SIGNING_ALLOWED=NO | xcpretty"
Loading