Разработка программного
обеспечения
Доработка ПО для очков дополненной реальности «AR Прицел»

Специалисты отдела разработки ПО «СофтЭксперт» доработали приложение для очков дополненной реальности Nreal Air, которые могут подключаться к смартфону, ноутбуку или приставке. Приложение выполнено для частного лица, занимающегося разработкой патентоспособных изобретений для дальнейшего коммерческого продвижения с привлечением инвесторов.

Клиент

В этом проекте заказчиком выступило частное лицо, изобретатель, который разрабатывает технические новшества, получает на них патент и тиражирует с целью получения прибыли.

У заказчика было программное обеспечение для AR очков, которое позволяет прицеливаться при игре на бильярде. Разработка была выполнена другим подрядчиком, и к нам попала, когда потребовалось сделать доработку ПО.

Ситуация до начала проекта
  • Очки дополненной реальности Nreal Air — это высокотехнологичная разработка, которая позволяет подключиться к смартфонам на Android и iOS, планшетам, ноутбукам и игровым консолям. AR очки нового поколения можно использовать в повседневной жизни благодаря удобной и легкой конструкции. При этом каждая линза-дисплей обладает разрешением 1920x1080, что обеспечивает высокое качество изображения.
  • Заказчик предоставил приложение для очков Nreal Air, которое позволяло воспроизводить прицел для игры на бильярде. Приложение написано на языке c# с применением комплекта для разработки программного обеспечения NSDK. Интерфейс приложения состоял из дефолтных кнопок управления функционалом и двух видов прицельной сетки.
  • После анализа исходного кода стало понятно, что он плохо оптимизирован: на 2 вида прицельной сетки порядка полутора тысяч строк кода. Также наши разработчики выявили большое количество устаревших функций, которые больше не поддерживаются в библиотеке.
Цель и задачи проекта

Цель проекта — оптимизация исходного кода и доработка функционала приложения для очков дополненной реальности Nreal Air.

Задачи:

добавить новые виды прицельной сетки (точка и Т-линия),
сохранить имеющийся функционал приложения,
добавить возможность стабилизации прицельной сетки во время наклонов головы.
Реализация проекта

В первую очередь, мы решили переделать интерфейс программы и оптимизировать код, чтобы обеспечить условия для поддержки и доработки ПО. Без рефакторинга кода процесс разработки мог затянуться на несколько месяцев, что противоречило договоренностям с клиентом. После оптимизации количество строк кода уменьшилось практически вдвое.

Завершив этап с оптимизацией кода приступили к доработкам. Взяв за основу функционал уже существующего и оптимизированного кода добавили необходимые прицельные сетки (точка и Т-линия).

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

Внутри данной SDK существует своя виртуальная камера для дополненной реальности имеющая несколько режимов работы: два из них поддерживают стабилизацию изображения, а один — для работы на плоскости. В предоставленной заказчиком версии программы был активен единственный режим без возможности стабилизации изображения.

Особенность работы камеры внутри NSDK заключается в том, что режим работы камеры определяется в момент запуска программы. Для переключения режима необходимо выйти из программы, включить другой режим камеры и заново запустить программу. В момент работы стабилизации меняется и режим взаимодействия с прицельной сеткой, поэтому нами было принято решение дописать новые методы для взаимодействия в разных режимах работы программы.

Результаты проекта

После того, как все работы по задачам были выполнены, заказчик получил несколько версий программы:

для личного использования,
для отправки инвесторам (с ограниченным временем использования),
исходный код программы с переписанным и оптимизированным кодом.

Заказчик остался доволен организацией взаимодействия с командой в процессе доработки ПО и качеством выполненной работы. В дальнейшем заказчиком планируется добавление новых прицельных сеток, что благодаря оптимизированному коду займет минимум времени.

В разработке приложений для инновационных устройств важно внимательно изучить технические особенности и возможные ограничения, чтобы учитывать их при написании кода. Опытные разработчики изучат внутреннюю систему и напишут код, который будет проще и быстрее дорабатывать.
Для самописных продуктов оптимизация кода может стать обязательным подготовительным этапом, который решит сразу несколько задач: улучшит скорость загрузки, скорость ответа сервера или скорость работы с кодом, повысит стабильность, уменьшит объем кода.

Создайте прямо сейчас мобильное приложение для своего бизнеса!