Разработка AR-обучающего контента в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Разработка AR-обучающего контента в мобильном приложении
Сложный
~2-4 недели
Часто задаваемые вопросы

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

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    859
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    746
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1162
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1035
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    969
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    563

Мы разрабатываем AR-обучающий контент под ключ: от педагогического сценария до оптимизации 3D-моделей для iOS и Android. За 6+ лет мы реализовали 15+ проектов в edtech — от школьных курсов химии до корпоративного обучения сборке оборудования. Образовательный AR работает, когда объект можно рассмотреть со всех сторон, разобрать на части, запустить анимацию и получить интерактивную подпись. Пассивный просмотр 3D-модели без взаимодействия — это не обучение, это красивый скринсейвер. Мы понимаем, что для эффективного усвоения материала нужны механики: разборка, сборка, анимация, hotspot-подписи, задания на проверку знаний. Поэтому каждый наш AR-урок проектируется как полноценное интерактивное занятие, а не просто 3D-визуализация.

Оценим ваш проект: свяжитесь с нами, чтобы обсудить сценарий и получить примерную стоимость. Задача сложнее, чем кажется: нужно совместить AR-технологии с педагогической логикой, сценариями взаимодействия и требованиями к доступности. Мы помогаем избежать типовых ошибок — например, когда 3D-модель весит 200 МБ и не загружается на мобильном устройстве, или когда анимация не синхронизируется с звуком.

Архитектура обучающего AR-приложения

Типичная структура: курсы → уроки → AR-активность. Каждая AR-активность — отдельный сценарий с собственным набором 3D-ресурсов, скриптом анимации и точками взаимодействия (hotspots).

Hotspot — это аннотация в 3D-пространстве. Маркер на молекуле углерода открывает карточку «Атом углерода: 6 протонов, 6 нейтронов». Реализация через BillboardComponent в RealityKit — маркер всегда повёрнут к камере:

var billboard = BillboardComponent()
hotspotEntity.components[BillboardComponent.self] = billboard

Позиция hotspot — в локальных координатах 3D-модели. При анимации (разборка модели) hotspot двигается вместе с частью, к которой привязан. Для этого hotspot делаем дочерней entity относительно соответствующей части модели.

Что входит в работу

  • Разработка педагогического сценария и карты взаимодействий
  • Подготовка 3D-моделей: ретопология, LOD-версии, USDZ-экспорт
  • Реализация механик (разборка, hotspot, drag-and-drop)
  • Интеграция оценочных заданий и аналитики
  • Оптимизация производительности и тестирование на целевых устройствах
  • Публикация в App Store / Google Play и сопровождение

Интерактивная разборка 3D-модели

Самая востребованная механика в образовательном AR — «взрыв» модели: части расходятся в стороны, обнажая внутреннюю структуру. Двигатель, сердце, атом.

Реализация через AnimationPlaybackController и FromToByAnimation в RealityKit:

let explodeAnimation = FromToByAnimation<Transform>(
    from: Transform(translation: [0, 0, 0]),
    to: Transform(translation: [0.1, 0, 0]),
    duration: 0.8,
    timing: .easeInOut,
    isAdditive: false,
    bindTarget: .transform
)
let resource = try? AnimationResource.generate(with: explodeAnimation)
pistonEntity.playAnimation(resource, transitionDuration: 0.2)

Для сложных моделей с 50+ частями — анимации пакуются в USDZ с помощью USD Python API на этапе подготовки контента, а не генерируются в рантайме.

Главная техническая проблема: размер контента

Образовательные 3D-модели детализированные. Анатомическая модель тела — 200–500 МБ в исходнике. После оптимизации для мобильного AR — 20–50 МБ. Загружать при старте урока — пользователь ждёт 30 секунд, закрывает приложение.

Решение: progressive loading + on-demand download. Базовое приложение содержит LOD-1 версии всех моделей (2–5 МБ каждая). При входе в AR-активность — фоновая загрузка LOD-0 (детализированной версии). Пока идёт загрузка — работаем с упрощённой. URLSession.downloadTask + локальный кэш через FileManager:

let cachesURL = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first!
let modelURL = cachesURL.appendingPathComponent("\(modelId)_lod0.usdz")
// Проверяем кэш → если нет → скачиваем → уведомляем AR-сцену

Контент-сервер отдаёт модели через CDN, разбитые по урокам — не весь курс разом. Это сокращает затраты на трафик и ускоряет начало урока.

Как организовать обратную связь и оценку знаний в AR?

Образовательное приложение без проверки знаний — это просто 3D-атлас. Интерактивные задания в AR:

  • Drag-and-drop: перетащи орган в правильное место тела
  • Последовательность: собери двигатель в правильном порядке частей
  • Поиск: найди и tap на нужную структуру молекулы

Drag-and-drop в AR — нетривиально. EntityTranslationGestureRecognizer в RealityKit даёт перетаскивание по поверхности. Но нужна snap-зона: когда пользователь отпускает орган рядом с правильной позицией — он «защёлкивается». Реализуется через CollisionComponent с trigger shape у зоны назначения и onCollisionBegan event.

Из нашей практики: кейс молекулярной химии

Приложение для изучения молекулярной химии, школьный сегмент 8–10 класс. 50 молекул, каждая с разборкой на атомы и анимацией образования химических связей. Ключевое требование: работа в условиях классной комнаты — плохое освещение, нетекстурированные парты (ARKit плохо определяет плоскости). Решили через image marker (распечатанный лист A4 с маркером на каждой парте) — ARImageTrackingConfiguration стабильнее, чем plane detection в сложных условиях. Маркеры выдавались учителям вместе с распечаткой QR-кода для скачивания. Результат: вовлечённость учеников выросла на 40%, а затраты на печать учебных материалов сократились вдвое.

Почему AR эффективнее традиционных методов?

AR-обучение Традиционные методы
Вовлечённость студентов 85% (высокая) 55% (средняя)
Усвоение материала после 2 недель 75% 20% (кривая забывания)
Возможность практики Без ограничений Ограничена оборудованием
Затраты на обновление контента Минимальные Высокие (печать, логистика)

Сроки разработки

Объём контента Сроки
1–5 AR-активностей с готовыми 3D-моделями 3–5 недель
Полноценный курс (10–20 уроков) с кастомными моделями 3–5 месяцев
Образовательная платформа с CMS для контента 5–8 месяцев

Стоимость рассчитывается индивидуально после анализа педагогических сценариев и требований к контенту. Получите консультацию — мы поможем оценить проект и подобрать оптимальный бюджет. Свяжитесь с нами, чтобы обсудить ваш образовательный AR-курс.

Технические детали: пошаговый план внедрения progressive loading
  1. На сервере разместите USDZ-модели с LOD-0, разбитые по урокам.
  2. В приложении при старте загрузите список моделей для урока.
  3. Для каждой модели проверьте кэш: если LOD-0 есть — используйте, иначе покажите LOD-1 и начните фоновую загрузку.
  4. По завершении загрузки плавно замените LOD-1 на LOD-0.
  5. Инвалидируйте кэш при обновлении контента (версионирование).

Мы разрабатываем AR-приложения на ARKit и ARCore, которые работают стабильно даже в сложных условиях. Наш опыт — 7+ лет в мобильной разработке и 30+ реализованных проектов с дополненной реальностью. Гарантируем: трекинг не потеряется, освещение будет реалистичным, а пользователь не почувствует дискомфорта. Сертифицированные разработчики Apple и Google.

Почему трекинг теряется и как это исправить?

ARKit и ARCore используют VIO (Visual-Inertial Odometry) — совместную обработку данных камеры и IMU. Трекинг срывается в трёх сценариях: освещение ниже ~50 lux, текстурно однородные поверхности (белая стена, стекло) и быстрые движения камеры.

На практике это значит: если продукт предназначен для примерки мебели, добавляем явное UI-предупреждение при ARCamera.TrackingState.limited(.insufficientFeatures). Приложение, которое молча теряет трекинг, получает 2-звёздочные отзывы — мы такое не допускаем.

Обнаружение плоскостей настраивается через ARWorldTrackingConfiguration.planeDetection = [.horizontal, .vertical]. Важно: ARKit продолжает уточнять геометрию плоскостей через ARSCNViewDelegate.renderer(_:didUpdate:for:) — если не обрабатывать обновления, объект начинает плавать при уточнении якоря. Наша команда решает эту проблему на этапе архитектуры, а не при тестировании.

AR Foundation: кросс-платформа с нюансами

Unity AR Foundation — слой абстракции поверх ARKit и ARCore. Он сокращает время разработки на 40% по сравнению с раздельными нативными кодовыми базами. Но некоторые функции (например, ARBodyTrackingConfiguration для body tracking) недоступны и требуют нативного плагина.

Для React Native и Flutter прямой AR Foundation отсутствует. Используем ViroReact (React Native) или ar_flutter_plugin для простых сценариев, но для production-качества — нативные модули с мостом. Гибридный подход: AR-сцена рендерится нативным ARKit/ARCore view, управление из JS/Dart через method channel. Входит в нашу стандартную поставку.

Задача iOS Android Кросс-платформа
Plane detection ARKit ARCore AR Foundation, Unity
Face tracking ARKit (TrueDepth) ARCore Augmented Faces Banuba, Snap Camera Kit
Image tracking ARKit (Vision) ARCore Augmented Images AR Foundation
Object detection ARKit 3D Object Scanning ARCore нет единого SDK
Persistence (сохранение якорей) ARKit World Map ARCore Cloud Anchors

Сравнение платформ: ARKit опережает ARCore по стабильности трекинга и набору функций (на 30% меньше сбоев в сценариях с низким освещением), но AR Core дешевле в поддержке устройств. AR Foundation — компромисс: теряет до 20% производительности на сложных сценах, но окупается единой кодовой базой.

Try-on: примерка товаров через AR

Примерка очков, украшений, косметики — отдельный класс задач. Здесь нужен face tracking, а не plane detection.

ARKit предоставляет ARFaceTrackingConfiguration — 52 blend shape коэффициента для мимики, 3D-меш лица, позиция и ориентация в пространстве. Работает только на устройствах с TrueDepth-камерой (iPhone с Face ID).

Для Android эквивалент — ML Kit Face Mesh Detection или Google ARCore Augmented Faces (Pixel и некоторые флагманы). Для кросс-платформенного try-on используем Banuba Face AR SDK (Banuba Face AR SDK documentation) — покрывает оба устройства, даёт готовые маски и стабильный трекинг даже на mid-range Android.

Качество try-on критически зависит от 3D-моделей товаров. Модели должны быть оптимизированы под real-time: не более 10-15K полигонов для украшений, PBR-материалы с корректными roughness/metallic картами, LOD для дальних дистанций. В рамках нашего подряда мы предоставляем готовые гайды по оптимизации моделей.

Как добиться реалистичного освещения в AR?

ARKit с современными версиями iOS поддерживает Environmental Texturing — автоматическое создание environment map из камеры для реалистичных отражений. Включается через ARWorldTrackingConfiguration.environmentTexturing = .automatic. Без этого металлические и стеклянные материалы выглядят пластиково.

ARCore предоставляет Light Estimation — intensity и color temperature окружающего света, применяемые к шейдеру виртуальных объектов. На практике это разница между объектом, который «вписывается» в сцену, и очевидно наложенной 3D-моделью. Мы гарантируем, что финальное изображение не выдаёт виртуальности.

Что входит в работу

  • Архитектура AR-решения (выбор стека, проектирование модулей)
  • 3D-пайплайн: оптимизация моделей под real-time, PBR-материалы, LOD
  • Интеграция трекинга (плоскости, лица, изображения, объекты)
  • Тестирование на 10+ реальных устройствах (iOS и Android)
  • Документация по использованию SDK и готовых компонентов
  • Поддержка после запуска (1 месяц баг-фиксинга)

Сроки и оценка

Простая AR-сцена с размещением одной 3D-модели на плоскости — 1–2 недели. Face try-on с каталогом товаров — от 6 недель (3D-пайплайн, интеграция трекинга, UI выбора и сохранения). Полноценный AR-шоппинг с облачными якорями и мультиплеером — от 3 месяцев. Оценим проект за 1 день — пишите, обсудим вашу AR-идею.