/SyncCamera

Primary LanguageSwiftOtherNOASSERTION

SyncCamera

複数のiOSデバイスでカメラを同期して撮影できるアプリです。Multipeer Connectivityを使用してデバイス間で通信し、同時撮影を実現します。

機能

カメラ機能

  • 写真撮影(JPEG対応)
  • マニュアル撮影設定
    • ISO調整
    • シャッタースピード調整
    • フォーカス調整
    • ホワイトバランス調整
  • リアルタイム撮影パラメーター表示
  • 撮影画像のサムネイル表示
  • デバイス回転対応

同期機能

  • Multipeer Connectivityによるデバイス間接続
  • 同期撮影(一方のデバイスで撮影すると、接続中の他のデバイスでも同時に撮影)
  • 撮影画像の共有
  • 空間写真の生成(左右の画像から)

その他

  • カメラ・フォトライブラリアクセス権限の管理
  • 撮影画像の自動フォトライブラリ保存
  • ハードウェアシャッターボタン対応

必要な権限

アプリの使用には以下の権限が必要です:

  • カメラアクセス権限: 写真撮影のため
  • フォトライブラリアクセス権限: 撮影画像の保存のため

技術仕様

  • 開発言語: Swift, SwiftUI
  • 対応OS: iOS 17.0以上
  • 通信方式: Multipeer Connectivity
  • 対応フォーマット: JPEG
  • カメラ: 背面カメラ対応

システム構成

主要クラス

  • CameraStore: カメラ操作と撮影制御
  • SyncStore: デバイス間同期処理
  • SpatialPhotoStore: 空間写真生成
  • PermissionStore: 権限管理

アーキテクチャ

SyncCameraApp
├── ContentView (権限チェック・画面切り替え)
├── PermissionView (権限要求画面)
└── CameraView (メインカメラ画面)
    ├── CameraPreview (カメラプレビュー)
    ├── DialView (設定調整ダイアル)
    ├── MultipeerBrowserView (デバイス検索)
    └── SpatialPhotoView (空間写真表示)

使用方法

  1. アプリを起動し、カメラとフォトライブラリの権限を許可
  2. 同期したい場合は、右下の同期ボタンをタップして他のデバイスを検索・接続
  3. カメラ設定を調整したい場合は、画面下部のハンドルを上にスワイプ
  4. 白いシャッターボタンで撮影
  5. 同期接続中は、一方のデバイスで撮影すると他のデバイスでも自動撮影

開発者向け情報

ビルド方法

  1. Xcodeでプロジェクトを開く
  2. 実機デバイスを選択(シミュレーターではカメラ機能が制限されます)
  3. Command+Rでビルド・実行

主要な依存関係

  • AVFoundation (カメラ制御)
  • Photos (フォトライブラリアクセス)
  • MultipeerConnectivity (デバイス間通信)
  • SwiftUI (UI構築)

ライセンス

このプロジェクトのライセンスについては、LICENSE.mdファイルを参照してください。

作者

Created by Kazuya Ueoka