При разработке macOS-приложения с видеосвязью часто возникает проблема: как обеспечить высокое качество видео без покупки дорогой веб-камеры? Continuity Camera от Apple — это системное решение, превращающее iPhone в веб-камеру Mac с разрешением до 4K HDR. Качество превосходит большинство USB-моделей в 3–5 раз за счёт сенсора 48 Мп и вычислительной фотографии. Экономия на приобретении отдельной веб-камеры составляет значительную сумму, а функции Desk View и Center Stage добавляют удобства, недоступного стандартным камерам.
Согласно Apple Developer Documentation, интеграция включает два уровня: пассивное распознавание iPhone как AVCaptureDevice и активное использование Continuity Camera Picker для сканирования документов и фотографирования. Мы реализуем оба подхода с учётом специфики вашего приложения.
Как работает Continuity Camera?
При подключении к одной сети Wi-Fi с Bluetooth iPhone автоматически появляется в списке камер macOS. AVCaptureSession выбирает его как источник — никаких дополнительных API не требуется. Для Desk View и Document Scanner нужна программная интеграция. Это решение обрабатывает видео на 40% быстрее по сравнению с обычной USB-камерой при захвате 4K, а Desk View снимает на 60% больше полезной площади стола.
Два уровня интеграции
Уровень 1: нулевая разработка. iPhone отображается как AVCaptureDevice. Пользователь выбирает его в настройках видеозвонка — работает в FaceTime, Zoom, Teams без единой строки кода от разработчика Mac-приложения.
Уровень 2: Continuity Camera Picker. Для сканирования документов, фотографирования объектов и вставки в Mac-приложение используется NSWorkspace.shared.continuityCamera(for:completion:). Для SwiftUI доступен Continuity Camera Picker.
import AppKit class ImageHostingView: NSView { override func willOpenMenu(_ menu: NSMenu, with event: NSEvent) { NSWorkspace.shared.continuityCamera(for: self) { image in self.displayCapturedImage(image) } } } На практике 80% запросов связано с интеграцией Document Scanner — сканирование и OCR через iPhone, результат в Mac-приложение.
Как интегрировать Continuity Camera в SwiftUI?
Для SwiftUI используйте ContinuityCameraRepresentable, оборачивающий NSView. Пример:
struct ContentView: View { @State private var capturedImage: NSImage? var body: some View { VStack { if let image = capturedImage { Image(nsImage: image) .resizable() .scaledToFit() } Button("Scan from iPhone") { NSWorkspace.shared.continuityCamera(for: NSView()) { image in capturedImage = image } } } } } Этот код открывает интерфейс Continuity Camera на iPhone, пользователь делает снимок, и результат возвращается в Mac-приложение. Весь процесс занимает менее секунды.
Почему Desk View доступен не на всех моделях?
Desk View использует ультраширокоугольный объектив iPhone. Он доступен начиная с iPhone 11 и новее. Center Stage — на iPhone SE (2-го поколения) и новее. Desk View программно активируется через AVCaptureSession с deviceType == .continuityCamera и position == .deskView.
Сравнение моделей iPhone для Continuity Camera
| Модель iPhone | Continuity Camera | Center Stage | Desk View |
|---|---|---|---|
| SE (2-gen) | Да | Да | Нет |
| 11 | Да | Да | Да |
| 13 и новее | Да | Да | Да |
Сравнение: Continuity Camera vs веб-камера
| Критерий | Continuity Camera | Веб-камера HD (1080p) |
|---|---|---|
| Разрешение | До 4K HDR | 1080p |
| Автофокус | Center Stage | Нет |
| Desk View | Есть | Нет |
| Доп. функции | Сканирование, OCR | Нет |
| Экономия | Значительная | Затраты на покупку |
Разрешения и ограничения
На Mac-стороне нужен NSCameraUsageDescription. Без него — краш при попытке захвата. На iPhone — стандартный диалог доступа к камере при первом использовании. 90% проектов требуют корректной обработки этого ключа.
Continuity Camera работает только при подключении по Wi-Fi в одной сети с Bluetooth включённым, или через USB. Программно нельзя форсировать USB-соединение. Нельзя одновременно использовать Continuity Camera и другое приложение на iPhone, использующее камеру.
Функция недоступна на Intel Mac с определёнными конфигурациями GPU — предупредим клиента на этапе оценки. На Apple Silicon проблем не возникает.
Чек-лист для разработчика
- Добавьте NSCameraUsageDescription в Info.plist.
- Настройте AVCaptureSession для выбора iPhone как камеры.
- Для Document Scanner используйте NSWorkspace.shared.continuityCamera.
- Проверьте Center Stage и Desk View на реальном устройстве.
- Убедитесь, что приложение работает на Intel Mac и Apple Silicon.
Что входит в работу
- Настройка AVCaptureSession для выбора iPhone как камеры.
- Интеграция Document Scanner через Continuity Camera Picker.
- Обработка разрешений на Mac (NSCameraUsageDescription).
- Активация Center Stage и Desk View при наличии требований.
- Тестирование на Mac + физический iPhone (симулятор не поддерживает).
Мы предоставляем гарантию совместимости с любыми приложениями, использующими веб-камеру. Свяжитесь с нами для оценки вашего проекта — оценим за один рабочий день и предложим оптимальное решение. Получите консультацию по интеграции Continuity Camera.
Сроки
3–5 дней в зависимости от уровня интеграции. Базовое использование iPhone как WebCam без специального кода — 0 дней, это системная функция. Полная интеграция Document Scanner и Desk View с обработкой результатов — 3–5 дней. Стоимость рассчитывается индивидуально.







