RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/開発ツール
開発ツール/2026-06-29上級

Rork × Vision Camera v4:QR・OCR・ML推論まで本番投入できるカメラ機能を仕上げる実装ノート

Rork のアプリで React Native Vision Camera v4 を本番品質に仕上げる実装手順を、フレームプロセッサ・ML 推論・QR/OCR から、発熱対策・実機テストマトリクス・ストア審査・段階リリースまで通してお伝えします。

Vision CameraReact Native209Rork515フレームプロセッサMLKitQRコード2OCREAS Build14

プレミアム記事

カメラ機能を「とりあえず動く」状態から「本番品質」まで引き上げる作業は、Rork でアプリを作るときに最も時間が溶ける工程のひとつではないかと思います。私自身、過去 1 年で 4 本のカメラを使うアプリを App Store に出してきましたが、Expo Camera で組んだ最初のプロトタイプを本番投入できる構成に置き換えるたびに、半日から 2 日分のデバッグが発生していました。

特に厄介なのが、Vision Camera v4 を選んだ瞬間に立ちふさがる「EAS Custom Dev Client・Worklet・iOS の AVAudioSession・Android の Camera2 API 設定」の四つどもえです。どれかひとつでも間違うと、シミュレータでは動くのに実機で黒画面になったり、QR は読めるのに音声付きの動画録画でクラッシュしたりします。

ここではRork のプロジェクトに Vision Camera v4 を導入し、QR/バーコードのリアルタイム検出・TFLite を使った ML 推論・本番品質の写真と動画撮影まで、ひと通り動く構成を順を追って組み上げていきます。途中で出てくる落とし穴は、私が実際にぶつかって解決したものだけを残しているので、そのまま参考にしていただけるはずです。

なぜ Expo Camera ではなく Vision Camera v4 を選ぶのか

Rork のテンプレートには Expo Camera が含まれていることが多く、QR スキャナーや簡単な写真撮影だけならそのままで十分です。それでも本記事で Vision Camera v4 を扱うのは、本番アプリで必要になる「フレーム単位の処理」が Expo Camera では届かないからです。

私が個人的に判断軸にしているのは次の三点です。

  • フレームプロセッサで毎フレームを JS 側に渡せるかどうか:QR・OCR・ML 推論をリアルタイムで動かすには必須です。Vision Camera v4 は Worklet 経由で実装でき、UI スレッドを止めません
  • 撮影パラメータを細かく制御できるかどうか:HDR・ISO・露出・フォーカス距離など、写真品質を左右する設定を ImagePicker レベルで動かしたい場合は v4 が明確に楽です
  • コーデックと解像度の組み合わせを実機ごとに切り替えられるかどうか:低スペック端末で 4K@60fps を強制すると即落ちますが、v4 は getCameraDevice から formats を取得して動的に選べます

逆に「QR を 1 回だけ読みたい」「シャッターを 1 枚切りたい」だけのアプリなら、Expo Camera のほうが導入が一瞬で済みます。トレードオフは明確で、フレームレベルの処理が要らないなら無理に v4 を入れない方が、ビルド時間とトラブルが減ります。

Rork のプロジェクトに Vision Camera v4 を入れる:EAS Custom Dev Client の組み立て

Vision Camera v4 はネイティブモジュールを含むため、Expo Go では動きません。Rork から書き出したプロジェクトを EAS Custom Dev Client に切り替える必要があります。ここが最初の関門です。

# 1. Vision Camera と関連ライブラリを追加
npx expo install react-native-vision-camera
npx expo install react-native-worklets-core
npx expo install vision-camera-code-scanner
 
# 2. EAS Build の設定(eas.json)に Custom Dev Client プロファイルを追加
# 3. 開発ビルドを作成
eas build --profile development --platform ios
eas build --profile development --platform android

ここで react-native-worklets-core を入れ忘れると、フレームプロセッサが起動した瞬間に JSI is not available というメッセージで落ちます。私はこれに最初に踏み抜かれました。Vision Camera v4 は Worklet を前提に動くので、必ずセットで入れます。

app.json には次のプラグイン設定を入れます。マイク使用権限の文言は App Store 審査で必ず読まれるので、丁寧に書いておきましょう。

{
  "expo": {
    "plugins": [
      [
        "react-native-vision-camera",
        {
          "cameraPermissionText": "QRコードや書類のスキャンのためにカメラを使用します。",
          "enableCodeScanner": true,
          "enableLocation": false,
          "enableMicrophonePermission": true,
          "microphonePermissionText": "音声付き動画の録画のためにマイクを使用します。"
        }
      ]
    ]
  }
}

EAS の eas.json 側では、Vision Camera を含むビルドは「ビルド時間が伸びる」ことを織り込んで、最大ビルド時間を 60 分に上げておくと安全です。私は最初の数回、デフォルト 30 分でタイムアウトしました。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
毎フレーム処理を時間ベースで間引き、長時間でも発熱とバッテリー消費を抑える実装
iPhone/Android 実機マトリクスとストア審査の通し方まで含めた本番投入の判断軸
レシート読み取りアプリで実際に消費電力を約 40% 下げた、計測ドリブンの最適化手順
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

開発ツール2026-05-11
Rork と Expo CLI、実機ビルドの体験はどう違うか — 個人開発12年の視点で比べた話
個人アプリ開発12年・累計5,000万DLの立場から、Rorkの実機ビルドフローとExpo CLIを実際に使い比べた記録。ターミナルに慣れた開発者がRorkに感じる距離感と、逆にRorkが優れていた点を率直に整理します。
開発ツール2026-05-06
Rork アプリに Expo Dev Client を導入する手順 — ネイティブモジュールが Expo Go で動かなくなったときの最初の一手
Rork で生成したアプリに react-native-mmkv や RevenueCat などのネイティブモジュールを追加すると、Expo Go では起動しなくなります。Expo Dev Client(カスタム開発ビルド)の導入手順と、つまずきやすい3つのポイントを実例付きで解説します。
開発ツール2026-05-02
Rork生成アプリにネイティブモジュールを追加する — Expo Prebuild実践ガイド
Rorkで作ったプロトタイプにネイティブSDKやカスタムモジュールを追加したくなったとき、Expo Prebuildをどう使うかを実践的に解説します。Managed Workflowの限界とBare Workflowへの移行手順を具体的なコマンド例とともに整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →