iOS アプリ開発 〜 Mac のカメラを使ってシミュレータでカメラの動作確認
はじめに
iOS アプリ開発では、シミュレータでカメラを利用できません。そのため、カメラ機能を実装していると実機での確認が必須になります。
しかし、カメラ以外の機能を開発している場合でも、カメラが関係する部分をテストしたい場合があります。たとえば、ユーザープロフィール機能の開発中にアバター画像の撮影機能を確認したい場合などです。こうしたケースでは、毎回実機ビルドするのは開発効率を下げる要因になります。
RocketSim を使えば、シミュレータから Mac のカメラを利用できるようになります。この記事では、RocketSim のシミュレータカメラサポート機能について紹介します。
RocketSim のシミュレータカメラサポート
RocketSim は Xcode シミュレータの機能を拡張する Mac アプリです。Mac App Store から無料でダウンロードできます。
その中でも便利なのが、シミュレータカメラサポート機能です。Mac のカメラ映像をシミュレータから利用できるようになります。
カメラサポートは有料機能なので、試すにはライセンスが必要です。ただ、一度設定してしまえば、実機なしでカメラ機能をテストできるようになります。
シミュレータで実行すると、Mac のカメラ映像が表示されました。冒頭の動画で実際の動作を確認できます。
セットアップ
Mac App Store から RocketSim をインストールします。
インストールが完了したら、アプリを起動しておきます。
次に、アプリの初期化コードに以下を追加します。
import SwiftUI
@main
struct YourApp: App {
init() {
loadRocketSimConnect()
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
private func loadRocketSimConnect() {
#if DEBUG
guard (Bundle(path: "/Applications/RocketSim.app/Contents/Frameworks/RocketSimConnectLinker.nocache.framework")?.load() == true) else {
print("Failed to load RocketSim Connect linker framework")
return
}
print("RocketSim Connect successfully linked")
#endif
}
}
このコードは Debug ビルドでのみ有効になります。#if DEBUG で囲んでいるので、Release ビルドには影響しません。App Store に提出するときも問題ありません。
フレームワークの読み込みに失敗しても(RocketSim がインストールされていない環境など)、アプリは正常に起動します。
まとめ
RocketSim を使えば、シミュレータで Mac のカメラを利用できます。カメラ機能の実装時に毎回実機ビルドする必要がなくなるので、開発がかなり楽になりました。
有料機能ではありますが、頻繁にカメラ機能を扱う場合は、検討してみる価値があります。