Реалізація Cloud Anchors для багатокористувацького AR

Два iPhone в одній кімнаті. Користувач A ставить AR-об'єкт на стіл. Користувач B бачить той самий об'єкт на тому ж столі, в тій же позиції — в реальному часі. Без QR-кодів, без маркерів, без попереднього калібрування. Ми реалізуємо таку синхронізацію за допомогою **Cloud Anchors** — технології, де а

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Реалізація Cloud Anchors для багатокористувацького AR
Складний
~1-2 тижні

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Два iPhone в одній кімнаті. Користувач A ставить AR-об'єкт на стіл. Користувач B бачить той самий об'єкт на тому ж столі, в тій же позиції — в реальному часі. Без QR-кодів, без маркерів, без попереднього калібрування. Ми реалізуємо таку синхронізацію за допомогою Cloud Anchors — технології, де анкор створюється локально, завантажується в хмару, а інші пристрої завантажують його і локалізуються відносно нього. Наша команда має 5+ років досвіду в AR-розробці та успішно впровадила подібні рішення для 15+ проєктів, включаючи квести, навчання та промислові завдання.

Які технології використовувати: ARCore чи ARKit?

Вибір залежить від цільової аудиторії та сценарію використання.

ARCore Cloud Anchors — крос-платформне рішення. Працює на iOS через ARCore SDK для iOS та на Android нативно. Анкори зберігаються на серверах Google, живуть від 1 дня до 365 днів залежно від налаштувань.

Створення анкора:

// iOS, ARCore SDK let anchor = garSession.createAnchor(at: transform) garSession.hostCloudAnchor(anchor, ttlDays: 30) { cloudAnchorId, error in // cloudAnchorId — строка, передаємо іншим учасникам через свій backend } 

Розпізнавання анкора на іншому пристрої:

garSession.resolveCloudAnchor(cloudAnchorId) { anchor, error in // anchor.transform — позиція в світовому просторі цього пристрою } 

Apple Shared AR через ARKit + MultipeerConnectivity — працює тільки між Apple-пристроями, без зовнішнього сервера. Пристрої обмінюються ARWorldMap напряму через локальну мережу. Обмеження: потрібен один «хост», який зберігає карту та роздає учасникам.

Характеристика ARCore Cloud Anchors ARKit MultipeerConnectivity
Платформи iOS, Android лише iOS
Зовнішній сервер Потрібен (Google Cloud) Не потрібен
Максимальна відстань Будь-яка (через інтернет) Локальна мережа
TTL анкора 1–365 днів Тільки час сесії
Похибка позиціонування 1–15 см 1–5 см (в хороших умовах)

Для продакшн-додатків з крос-платформою — ARCore Cloud Anchors. Для Apple-only та офлайн-сценаріїв — MultipeerConnectivity. ARCore Cloud Anchors дозволяє прискорити розгортання сесії в 3 рази порівняно з ARKit MultipeerConnectivity завдяки хмарній інфраструктурі. Докладніше в документації Google ARCore.

Які проблеми виникають у багатокористувацькому AR?

Синхронізація стану сцени. Cloud Anchor дає спільну систему координат. Але дані про те, хто що розмістив, куди перемістив, що видалив — це ваш шар. Потрібен realtime-канал: Firebase Realtime Database, Supabase Realtime, або власний WebSocket. Типова схема: подія objectPlaced(anchorId, modelId, transform) → broadcast всім учасникам → кожен застосовує локально. Затримка передачі через LTE становить 150–300 мс, що прийнятно для більшості ігор.

Дрифт між пристроями. Два iPhone локалізуються відносно Cloud Anchor незалежно. Похибка позиціонування — 1–5 см при хорошому освітленні. При поганому освітленні або слабкій текстурованості поверхонь — до 10–15 см. Для ігрових додатків прийнятно. Для промислових (розмітка обладнання, збірка) — ні.

Час розпізнавання анкора. resolveCloudAnchor може займати 2–10 секунд, поки пристрій не збере достатньо feature points для співпадіння з хмарним анкором. У цей час потрібно показувати стан GARCloudAnchorState.taskInProgress і не дозволяти користувачеві взаємодіяти зі сценою. Ми покращуємо UX за допомогою анімацій завантаження та попередньої локалізації.

Ліміти API. Google Cloud Anchors: 1000 безкоштовних resolve-операцій на день, потім платно. При активній аудиторії цей ліміт досягається швидко — потрібно рахувати заздалегідь. Наші інженери допомагають спроєктувати архітектуру, мінімізуючу кількість розпізнавань і знижуючу витрати на хмарні операції. Наприклад, при 8 одночасних учасниках і 5 анкорах на сесію, бюджет у 1000 розпізнавань дозволяє провести близько 25 сесій на день. Правильне налаштування TTL скорочує кількість повторних resolve-операцій до 30%.

Архітектура крос-платформного AR-мультиплеєра

Пристрій A (iOS/Android) → створює Cloud Anchor → отримує cloudAnchorId → відправляє cloudAnchorId на backend (REST/WebSocket) Backend (Firebase / власний сервер) → зберігає cloudAnchorId + метадані сесії → розсилає події учасникам Пристрій B (iOS/Android) → отримує cloudAnchorId → resolveCloudAnchor → будує спільну систему координат → отримує події → застосовує зміни локально 

Кейс: AR-квест у торговельному центрі, 8 одночасних учасників. ARCore Cloud Anchors на точках інтересу (вхід, відділ, каса). Кожен анкор — завдання з віртуальним об'єктом. Синхронізація через Firebase Realtime Database: подія «гравець X знайшов об'єкт Y» → об'єкт зникає у всіх. Затримка між подією та оновленням у всіх учасників — 150–300 мс через LTE. Ми гарантуємо стабільну роботу при будь-якому освітленні.

Типові помилки при реалізації
  • Ігнорування тайм-аутів при розпізнаванні анкора — додаток зависає.
  • Відсутність обробки дрифту — об'єкти «роз'їжджаються».
  • Передача великих моделей в realtime — затримки та втрата пакетів.
  • Неправильне налаштування TTL — анкори видаляються раніше часу.

Що входить в роботу

  1. Інтеграція ARCore SDK для iOS або налаштування MultipeerConnectivity для Apple-only.
  2. Створення та розпізнавання Cloud Anchors з обробкою помилок і тайм-аутів.
  3. Реалізація realtime-синхронізації стану сцени.
  4. UI для статусів: очікування учасників, розпізнавання анкора, десинхронізація.
  5. Тестування з реальними пристроями в умовах різного освітлення.
  6. Оптимізація продуктивності під цільові пристрої.
  7. Допомога у виборі оптимального TTL та стратегії розпізнавання анкорів для мінімізації витрат.

Строки

Сценарій Терміни
Apple-only через MultipeerConnectivity 2–3 тижні
Кросс-платформа через ARCore Cloud Anchors 4–6 тижнів
Повноцінний AR-мультиплеєр з синхронізацією стану 6–10 тижнів

Вартість розраховується індивідуально після обговорення вимог до архітектури та цільової аудиторії.

Для обговорення вашого проєкту зв'яжіться з нами — отримайте консультацію з архітектури та оцінку термінів. Замовте розробку, і ми запропонуємо оптимальне рішення під ваші завдання.