Разрабатываем AR приложение с ARCore
Есть вещи, за которыми можно наблюдать бесконечно: как горит огонь, и как течёт вода. В наши дни сюда можно смело добавить «как развиваются технологии». Однако зачем просто смотреть, когда есть замечательный шанс применять их на практике? Если раньше VR и AR приложение было чем-то неизведанным и доступным далеко не всем, то теперь его можно активно использовать не только в развлекательных, но и в полезных целях.
Как работает технология AR?
Технология дополненной реальности (Augmented Reality) – одна из наиболее быстроразвивающихся IT-сред. В режиме онлайн она дополняет привычный нам мир компьютерной графикой.

Для построения мира дополненной реальности используются различные модели. Например, трёхмерные или двумерные, управляемые или статические, разработанные заранее или генерируемые в процессе функционирования программного продукта. Чтобы привязать виртуальные предметы к реальному миру, могут применяться различные метки:
- маркеры (физические единицы: картинка, логотип, фото);
- плоскости;
- геолокация;
- а также трёхмерные копии существующих предметов.
Помимо расположения и привязки, существует возможность разрабатывать дополнительный функционал для взаимодействия с моделями. Например, запуск анимации по нажатию, ведение диалога с персонажем или переход на сторонний веб-ресурс.
Однако дополненная реальность – не только инструмент для производства ПО в области развлечений. Помимо этого, он находит широкое применение и в сферах образования, медицины, военного комплекса и других областях.
Как мы её применили?
Одним из вариантов применения AR в написании мобильного ПО является отображение дополнительных сведений об объектах в режиме онлайн. А также просмотр подробной информации на карте местности, хранение воспоминаний о путешествиях или событиях.
Наше AR приложение состоит из меню навигации и трёх экранов. Рассмотрим его работу на следующем примере.

1.Устанавливаем приложение и даём все разрешения.
2. Нижняя панель отображает экраны и позволяет пользователю переключаться с одного на другой.
3. Переходим в первый раздел «Добавить пин». Видим несколько полей, которые нужно заполнить. Здесь пишем название и описание, добавляем фото, которым хотим поделиться. А также опорное изображение, которое будет распознавать система.
Важно! Метка, на которую будет впоследствии опираться интерфейс, должна быть контрастной. Для этого идеально подойдёт QR-код.
4. Сохраняем и получаем готовый пин. Его можно найти в третьем разделе «Мои пины». Там его можно отредактировать или удалить.
5. Теперь проверим, как это работает. Заходим в раздел «Смотреть карту», наводим на опорное изображение и получаем информацию, фотографию и дату.

Используемые технологии
Отметим, что хранение данных реализовано с помощью высокоуровневого интерфейса Room. Он предоставляет возможности по манипулированию данными и сущностями в SQLite, а также созданию миграций. Помимо этого, он предоставляет удобный инструмент аннотирования классов и методов.
Связывание моделей с элементами интерфейса реализовано в соответствии с архитектурным паттерном MVVM (Model – View – ViewModel). Применение такой архитектуры позволяет разрабатывать независимые слои, которые взаимодействуют посредством механизма связывания данных. К примеру, изменения во ViewModel автоматически меняют отображаемое во View и наоборот. Это позволяет не хранить явные ссылки во View и ViewModel, а также держать эти компоненты очень слабо связными. Поэтому такой подход удобен при разработке и тестировании.
При написании также использовался инструмент ARCore, разработанный и поддерживаемый Google. Будучи создателем, разработчиком и координатором операционной системы Android, компания Google создала его как базу для приложений дополненной реальности. Основу работы инструментария составляют камеры и внешние датчики. поскольку функционирование базируется на плоских поверхностях и других оцифрованных объектах реального мира.

Загрузка опорных изображений
Помимо всего прочего, остановимся также на загрузке пользователем опорных изображений. В частности, метка, распознаваемая мобильным устройством – это образ, к которому впоследствии прикрепляется виртуальный объект. Технология ARCore не даёт распознавать любой рисунок как образ, поскольку он должен соответствовать требованиям по разрешению, контрастности, размеру и другим характеристикам. Для оценки качества корпорацией Google разработан инструмент Arcoreimg. Он предполагает работу в операционных системах Windows, Linux и MacOS.
Результат
В итоге, разработанное нами AR приложение является актуальным, востребованным программным продуктом и имеет широкие перспективы развития. С появлением таких технологий, как ARCore от Google и Arkit от Apple, стоимость разработки программ с дополненной реальностью снижается, а объёмы на рынке только увеличиваются. Поэтому необходимо подготовиться к тому, чтобы сделать выгодное и качественное предложение на растущий объём спроса.
Хотите создать нечто похожее? Пишите нам, и мы реализуем ваш проект!