Розробка мобільного AR-додатку для ритейлу
Покупець стоїть перед полицею з диванами в магазині меблів і не розуміє, чи встане цей диван у нього в вітальні між вікном і телевізійною тумбою. Саме тут AR перестає бути іграшкою і стає інструментом продажу. Правильно реалізований furniture placement через ARKit або ARCore конвертує сумнів у покупку — це задокументовано в кейсах IKEA Place та Wayfair. Погано реалізований — роняє рейтинг додатку до 2.1 з відгуками «модель плаває по підлозі». Економія бюджету на 30% за рахунок зниження повернень та збільшення середнього чека на 25% в AR-сценаріях — реальні метрики наших клієнтів.
Ми — команда мобільних розробників з п'ятирічним досвідом в AR-рішеннях для ритейлу. Створюємо AR-модулі під ключ, від прототипу до публікації в App Store та Google Play. У цій статті розберемо, де найчастіше виникають проблеми та як їх вирішувати.
Де ламається ARKit/ARCore в ритейл-сценаріях
Горизонтальне виявлення площин на нетипових поверхнях. ARKit відмінно працює на паркеті з текстурою і повністю губиться на однотонному білому ламінаті або килимовому покритті без малюнка — ARPlaneDetection.horizontal повертає якорі з величезним uncertainty, модель спливає або «провалюється» під підлогу. Рішення — LiDAR на iPhone 12 Pro та новіших через ARWorldTrackingConfiguration з sceneReconstruction: .meshWithClassification. На пристроях без LiDAR доводиться додавати ручне розміщення з drag-жестом та візуальним індикатором поверхні.
Масштаб та відповідність реальним розмірам. 3D-моделі для AR повинні мати коректний масштаб 1:1 в метрах. Часто дизайнери віддають USDZ або GLB без метаданих розмірів — модель дивана 2.4 м відображається як табуретка. Додаємо SCNNode з явним simdScale на основі паспортних габаритів товару, які приходять з product-каталогу.
Освітлення. AREnvironmentProbeAnchor та ARDirectionalLightEstimate дають базову оцінку, але пересвіт в торговому залі з холодним флуоресцентним світлом робить темний диван «пластиковим». У нових версіях використовуємо AREnvironmentTexturing.automatic для environment map — це помітно покращує PBR-матеріали без ручного налаштування.
Окрема біль — користувачі з iPhone X (без LiDAR, без Neural Engine другого покоління): A11 Bionic справляється, але завантаження важких USDZ-моделей від 15 MB роняє FPS нижче 30. Оптимізація геометрії через Reality Composer Pro або Blender + USDZ Tools обов'язкова.
Як забезпечити точне розміщення моделі на підлозі?
Ключовий сценарій в ритейлі — постановка товару на підлогу. Для цього ми використовуємо комбінацію:
- Визначення горизонтальної площини через ARPlaneDetection (ARKit) або Plane Finding (ARCore).
- LiDAR для пристроїв з підтримкою — scene mesh з класифікацією (підлога/стіна).
- Ручний режим: користувач тапом ставить модель, система обчислює реальні розміри по відношенню до камери.
Тестування на різних покриттях обов'язковий етап — ми перевіряємо на 10+ типах поверхонь перед релізом.
Покрокова інструкція: точне розміщення AR-моделі
Щоб гарантувати стабільне розміщення, слідуйте цим крокам:
- Запитайте дозвіл на камеру та ARKit/ARCore в Info.plist / AndroidManifest.
- Ініціалізуйте сесію з конфігом, що включає площину та (при наявності) scene reconstruction.
- При виявленні площини створіть якір та розмістіть модель з коректним масштабом.
- Включіть drag-жест для ручної корекції положення.
- Валідуйте положення: перевірте, що модель не перетинається з іншими об'єктами (через hit-test).
Чому ARKit програє ARCore на Android?
Порівняння можливостей двох платформ для ритейлу:
| Параметр | ARKit | ARCore |
|---|---|---|
| Визначення площин | Відмінно на текстурованих поверхнях, слабо на однотонних | Краще працює на однотонних за рахунок Visual-Inertial Odometry |
| Відстеження в умовах слабкого освітлення | Добре при >50 lux | Вимагає >100 lux, гірше в темряві |
| Оцінка освітлення | Environment probe + directional light estimate | HDR environment map тільки на обмежених пристроях |
| Підтримка LiDAR | Так, на iPhone 12 Pro+ | Ні |
| Максимальна кількість одночасно відстежуваних зображень | 25 | 20 |
| Крос-платформна інтеграція | Reality Composer | Scene Viewer/ARCore Cloud Anchors |
Вибір платформи залежить від цільової аудиторії: якщо користувачі в основному на iOS — ARKit дає більш плавний трекінг. Для змішаної аудиторії ми рекомендуємо нативний модуль на кожній платформі або Kotlin Multiplatform для загальної логіки.
Детальніше про технічні вимоги
Для стабільної роботи AR необхідний як мінімум A12 Bionic (iOS) або Snapdragon 845 (Android). Рекомендований Qualcomm Snapdragon 8 Gen 2 і новіші для Android-пристроїв без LiDAR. Для завантаження моделей бажане CDN-кешування з Time To Live не менше 24 годин.Як будуємо ритейл AR
Стек. iOS — ARKit 6 + RealityKit 2 (переважно) або SceneKit для legacy-підтримки. Android — ARCore 1.40 + Scene Viewer або кастомний рендер через Filament. Крос-платформа — Flutter з плагіном ar_flutter_plugin або React Native + react-native-arkit/ViroReact, але нативні рішення дають помітно більш плавний tracking.
3D-контент pipeline. Отримуємо вихідники від постачальника (найчастіше OBJ або FBX), конвертуємо в USDZ (iOS) та glTF 2.0 (Android) через Reality Converter та Blender 4.x. Автоматизуємо через скрипти — каталог в 500+ SKU вручну не обробити. Паралельно налаштовуємо CDN-доставку моделей з кешуванням на пристрої через URLCache або кастомний disk cache, щоб не грузити 20 MB при кожному відкритті товару.
Інтеграція з каталогом. AR-функція вбудовується в існуючий додаток як окремий модуль. Товар з каталогу передає ID → бекенд віддає URL 3D-моделі та габарити → ARViewController завантажує і розміщує. Важливо обробляти fallback: якщо 3D-моделі немає, показуємо стандартний продуктовий екран, а не крэш.
Product try-on для одягу та аксесуарів. Інша історія — тут потрібен face/body tracking. ARKit надає ARFaceTrackingConfiguration (тільки фронтальна камера, iPhone X+), для примірки одягу на повне тіло — ARBodyTrackingConfiguration (A12+). Алгоритм: детектуємо skeleton, накладаємо 3D-mesh одягу з morph targets за ключовими точками скелета.
Що входить в роботу
- Аудит поточного додатку та APK/IPA.
- Прототип AR-функції (MVP) для демонстрації.
- Розробка нативного модуля для iOS та/або Android.
- Інтеграція з каталогом товарів та бекендом.
- Оптимізація 3D-моделей (конвертація, стиснення, LOD).
- Налаштування CDN та кешування.
- Тестування на реальних пристроях (10+ моделей).
- Публікація в App Store та Google Play з дотриманням гайдлайнів (включаючи розділ 4.2/5.1 App Store Review Guidelines).
- Технічна документація та навчання команди клієнта.
Етапи роботи
| Етап | Що робимо | Результат |
|---|---|---|
| Аналітика | Аудит поточного додатку, вивчення каталогу, вимог до 3D-контенту | Технічне завдання та архітектурна схема AR-модуля |
| Дизайн UX | Сценарії використання, wireframes, прототип взаємодії | Дизайн-макети AR-екранів |
| Розробка | Реалізація AR-модуля, інтеграція з каталогом, налаштування CDN | Робочий білд для тестування |
| QA | Тестування на 10+ пристроях, різних умовах та поверхнях | Звіт про тестування, виправлення багів |
| Реліз | Підготовка метаданих, перевірка App Store Review Guidelines, публікація | Додаток в магазинах |
Орієнтири за термінами
Мінімальна AR-функція (placement однієї категорії товарів) для існуючого додатку: 3–5 тижнів. Повноцінний AR-модуль з підтримкою каталогу, CDN, аналітикою та Android-версією: 2–4 місяці. Вартість розраховується індивідуально після аудиту вимог та обсягу 3D-контенту.
Якщо ви хочете обговорити AR для вашого ритейлу, зв'яжіться з нами — оцінимо проект протягом двох робочих днів. Замовте консультацію з впровадження AR-функцій в існуючий додаток.







