Разработка мобильного AR-приложения для ритейла
Покупатель стоит перед полкой с диванами в магазине мебели и не понимает, встанет ли этот диван у него в гостиной между окном и телевизионной тумбой. Именно здесь AR перестаёт быть игрушкой и становится инструментом продажи. Правильно реализованный furniture placement через ARKit или ARCore конвертирует сомнение в покупку — это задокументировано в кейсах IKEA Place и Wayfair. Плохо реализованный — роняет рейтинг приложения до 2.1 с отзывами «модель плавает по полу».
Где ломается 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 дают базовую оценку, но пересвет в торговом зале с холодным флуоресцентным светом делает тёмный диван «пластиковым». В iOS 16+ используем AREnvironmentTexturing.automatic для environment map — это ощутимо улучшает PBR-материалы без ручной настройки.
Отдельная боль — пользователи с iPhone X (без LiDAR, без Neural Engine второго поколения): A11 Bionic справляется, но загрузка тяжёлых USDZ-моделей от 15 MB роняет FPS ниже 30. Оптимизация геометрии через Reality Composer Pro или Blender + USDZ Tools обязательна.
Как строим ритейл 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 по ключевым точкам скелета.
Этапы работы
- Аудит существующего приложения — версии iOS/Android, поддерживаемые девайсы, текущий 3D-контент-пайплайн или его отсутствие.
- Проектирование AR UX — сценарии использования, wireframes AR-экранов, определение жестов (place, rotate, scale, snap-to-grid).
- Разработка AR-модуля — нативный или кроссплатформенный, интеграция с каталогом.
- Оптимизация 3D-контента — первая партия моделей для пилота.
- QA на реальных устройствах — тестирование tracking в разных условиях освещения, на разных поверхностях.
- Публикация и поддержка — обновления при новых версиях ARKit/ARCore.
Ориентиры по срокам
Минимальная AR-функция (placement одной категории товаров) для существующего приложения: 3–5 недель. Полноценный AR-модуль с поддержкой каталога, CDN, аналитикой и Android-версией: 2–4 месяца. Стоимость рассчитывается индивидуально после аудита требований и объёма 3D-контента.







