Разработка мобильного AR-приложения для ритейла
Покупатель стоит перед полкой с диванами в магазине мебели и не понимает, встанет ли этот диван у него в гостиной между окном и телевизионной тумбой. Именно здесь AR перестаёт быть игрушкой и становится инструментом продажи. Правильно реализованный furniture placement через ARKit или ARCore конвертирует сомнение в покупку — это задокументировано в кейсах IKEA Place и Wayfair. Плохо реализованный — роняет рейтинг приложения до 2.1 с отзывами «модель плавает по полу». Экономия бюджета на 30% за счёт снижения возвратов и увеличение среднего чека на 25% в AR-сценариях — реальные метрики наших клиентов. Наши клиенты фиксируют экономию до 2 млн рублей в год за счёт снижения возвратов после внедрения 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-функций в существующее приложение.







