Інтеграція шолема Meta Quest з мобільним додатком-компаньйоном
Meta Quest 3 — автономний VR-шолем, але повноцінний продуктовий досвід часто вимагає мобільного компаньйона: управління налаштуваннями, передача медіаконтенту, мультиплеєрне лобі, покупки та підписки. Завдання не тривіальне: шолем працює під Android-based OS з обмеженим доступом, Meta надає кілька різних каналів комунікації з різними обмеженнями.
Способи зв'язку Quest ↔ мобільний додаток
Meta Companion App SDK (офіційний шлях для споживацьких продуктів). Meta не відкриває публічний SDK для довільної комунікації Quest ↔ телефон у звичайному сенсі. Офіційний маршрут для розробників — через Meta Platform SDK, який надає:
- Авторизацію через Meta акаунт (OAuth 2.0 через Meta API)
- Notifications API: телефон отримує події з Quest (друг онлайн, запрошення в кімнату)
- Deep links: мобільний додаток відкриває контент в Quest через
oculus://URI scheme
Local network (LAN). Quest 3 та телефон в одній Wi-Fi мережі — найгнучкіший канал. На стороні Quest: Android додаток на Kotlin/Java, слухає WebSocket або REST. На мобільній стороні: звичайний HTTP-клієнт. Виявлення Quest в мережі: mDNS через NsdManager (Android) або Network.framework + Bonjour (iOS). Цей підхід використовуємо для enterprise-рішень, де Quest управляється корпоративним MDM.
Bluetooth. Quest 3 підтримує BT 5.1. На стороні Quest — Android BT GATT Server або Classic SPP. Обмеження: throughput ~1–2 Mbit/s, не для медіа, але достатньо для команд управління та телеметрії.
USB (ADB-режим через USB-C). Для developer tools та enterprise-деплою. Через ADB можна передавати файли (adb push), встановлювати APK, читати логи. В production-додатках не використовується.
Архітектура companion app
Типовий сценарій: користувач вибирає контент та налаштування на телефоні → Quest завантажує та запускає.
[iOS/Android companion] ──HTTP/WS──► [Backend API]
│
[Meta Quest app] ─────────────────────────┘
Quest-додаток та мобільний синхронізуються через спільний backend, а не напряму — це надійніше та працює без LAN. Для realtime (наприклад, телефон як контролер у VR) — WebSocket через relay сервер з latency 50–100 мс, що прийнятно для неігрових взаємодій.
Meta Multiplayer SDK (Photon + Meta Parties). Якщо продукт — соціальна VR-платформа, використовуємо Meta Platform SDK Groups, Parties, Invites. Companion-додаток на телефоні показує список друзів, онлайн-статусів з Meta Social Graph (з дозволу користувача через Meta Login), відправляє запрошення в VR-кімнату.
Специфіка мобільної сторони
iOS deep linking з Quest. Коли користувач приймає запрошення в Quest — телефон має відкритися на потрібному екрані. Реалізуємо через Universal Links + oculus:// custom scheme. У Swift: UIApplicationDelegate.application(_:open:options:) обробляє вхідне посилання, парсимо параметри, навігуємо.
Content management. Медіафайли (відео, зображення, 3D-моделі) завантажуються через телефон у хмару → Quest скачує. Не через пряму передачу телефон→шолем (занадто повільно через BT, LAN-варіант ненадійний). CDN + pre-signed URL з S3 або аналога.
Уведомлення. Quest-додаток через Meta Platform SDK відправляє події → сервер → FCM/APNs → телефон. Стандартний push-notification flow, ніхто специфічного для Quest.
Публікація та обмеження
Quest-додаток публікується в Meta Horizon Store (раніше Oculus Store) або через App Lab (без ревю, для закритого тестування). Companion mobile app — в App Store / Google Play. Meta Horizon Store має власні гайдлайни контентного ревю, окремі від Apple/Google.
Терміни: companion-додаток з LAN-зв'язком та базовим контент-менеджментом — 6–10 тижнів. Повна інтеграція з Meta Platform SDK (авторизація, запрошення, соціальні функції) + iOS/Android companion — 3–5 місяців. Вартість розраховується індивідуально.







