Что скрыто под капотом приложения дополненной реальности
Скачивая любое приложение, мы всегда видим только его интерфейс — а что же находится внутри, что скрывает его техническая часть, знают только разработчики. Сегодня расскажем, что под капотом у приложения дополненной реальности.
Сегодня мы рассмотрим iOS-приложение ARnament — дополненная реальность раскрасит вашу жизнь тёплыми красками и подарит незабываемые эмоции. Вы без труда сможете поделиться красотой природы, передать свои ощущения людям, находящимся поблизости. А если есть желание поднять настроение жителям вашего города ранним утром — просто оставьте пожелание хорошего дня. И лайки благодарности от пользователей не заставят себя долго ждать.
Как работает приложение
Пользователю достаточно зайти в приложение и включить камеру своего телефона. Он увидит реальные улицы, здания и объекты своего города, поверх которых накладываются виртуальные AR-стикеры.
Формирование стикера
Чтобы создать новый AR-стикер, пользователь добавляет сообщение и оформляет его на своё усмотрение.
В приложении находится встроенный редактор со многими функциями и параметрами для визуализации выбранного стикера: разные шрифты, кегли, цветовая палитра для текста, обводки, тени.
Есть и набор шаблонных стилей. Каждый пользователь применить их при подготовке AR-объекта. Это сэкономит время и сделает процесс практически мгновенным — стикер создаётся в несколько касаний.
Блоки, которые пригодятся каждому:
- выбор шрифта — предоставляется список всех доступных шрифтов;
- настройка обводки — задаёте цвет, толщину контура текста;
- выбор цвета — доступны базовые цвета и их оттенки;
- настройка тени — выбираете цвет и радиус тени у текста.
Каждое внесённое изменение сразу же появляется тексте AR-объекта. При помощи параметров NSAttributedString форматирование сообщения до сохранения на сервере осуществляется:
- font — для выбора шрифта
- strokeColor — для выбора цвета обводки;
- shadow — объект NSShadow с заданными цветом и радиусом;
- foregroundColor — для выбора цвета текста;
- paragraphStyle — для выравнивания (по краям или центру);
- strokeWidth — для выбора толщины обводки.
По завершении редактирования, строка отформатированного текста превращается в картинку, которая и сохраняется на сервере. После публикации стикера отредактировать его уже будет невозможно.
Обозначение стикера
В AR-режиме приложение передаёт координаты пользователя на сервер и получает доступ к информации о стикерах, которые были добавлены неподалеку.
Все AR-объекты содержат информацию о координатах: высоте над уровнем моря, расположении и визуальном представлении текста. На основании этих данных создаётся объект SCNNode. Изображение текста подгружается при помощи URL и устанавливается на двух плоскостях, чтобы текст можно было увидеть с обеих сторон.
Чтобы объект позиционировался в заданной точке, используются высота над уровнем моря, угол между направлением на север и текущим направлением устройства. Удалённость устройства от точки AR-объекта рассчитывается при помощи геопозиции (координаты и азимута).
Это приложение можно отнести к среднему типу сложности: у него дополненная реальность, интеграция с Google-картами, личный кабинет, монетизация. Если вам интересно, как определяется сложность и рассчитывается стоимость разработки мобильного приложения мы собрали всю информацию в едином гайде.