Наш партнер пригласил нас в проект по разработке приложения для застройщика из Иваново КСК Холдинг. Команда создавала приложение, в котором потенциальные покупатели жилой недвижимости могут посмотреть дом и район рядом с ним с помощью AR и 3D. Мы усилили команду, выполнив Android-разработку и доработку iOS-версии приложения.
KSK — мобильное приложение на Kotlin и Swift с виртуальной экскурсией по строящемуся жилому комплексу компании КСК Холдинг. Просмотр объекта и инфраструктуры рядом с ним доступны в двух форматах — 3D и AR. Если пользователю понравится конкретный дом, он может приблизить его и рассмотреть поближе или сразу оставить заявку на покупку недвижимости.
Над приложением три месяца работали четверо наших сотрудников ― Android-разработчик, iOS-разработчик, тестировщик и проджект-менеджер.
Работали без ТЗ, что ускоряет процесс разработки небольшого проекта. Мы получили от заказчика дизайн мобильного приложения в Figma, на основании которого продумали пользовательские сценарии и состояния интерфейса.
Мы выбирали технологии с опорой на нашу задачу ― создать современное и стабильное приложение с поддержкой дополненной реальности, хорошей графикой и эффективным управлением уведомлениями и ошибками. Для этой цели нам подошли:
Разбили проект на задачи. Детальный брифинг клиента позволил разбить проект на понятные задачи ― мы насчитали их около 40. Они были связаны с разными функциями приложения: 3D и AR, экран загрузки, уведомления, форма обратной связи и прочее.
Доработали интерфейс. Дизайн в Figma отражал не все пользовательские сценарии приложения, некоторые мы достраивали сами. Например, прописывали, как изменится внешний вид кнопки по клику, куда после нажатия попадет пользователь.
Синхронизировались с 3D- и AR-командой. Мы получали готовые модели от основной команды в виде файлов и интегрировали их в приложение. На этом этапе приложение часто ломалось и тормозило, поэтому мы неоднократно отправляли модели на доработку.
Клиент также хотел интегрировать в трехмерную модель элементы анимации, которые двигаются независимо друг от друга: свет, машины, люди и так далее. Чтобы решить эту задачу, для отрисовки 3D-макета мы использовали библиотеку OpenGL вместо стандартной от Google.
Исправили ошибки. iOS-разработчик также занимался рефакторингом — дорабатывал код основной команды и помогал устранять ошибки.
Приложение перегружало смартфоны. Из-за использования технологий 3D и AR мощность устройств использовалась неоптимально — память и процессор начинали тормозить. В ходе разработки 3D-модель увеличилась в 10 раз, поэтому нужно было подобрать новые технологии для работы с ней.
Не все смартфоны подходили для тестирования. Функция AR работает только на новых гаджетах.
3D-модель работала некорректно. Картинка заедала при передвижении или изменении масштаба, объекты в ней ломались или не синхронизировались друг с другом.
Оптимизировали работу приложения. Перебором разных моделей мы нашли решение, которое позволило плавно перемещать картинку и не сильно нагружать смартфон. Вместо изначального формата файла .obj стали использовать .jlb. Доработали Open Source библиотеку, в которой читали модели, так как она не была предназначена для работы с файлами большого размера.
Тестировали на эмуляторах и нескольких гаджетах. Тестировщик использовал новейшие мощные смартфоны других членов команды и программы, создающие образ планшета или смартфона для Android или iOS.
Интегрировали кнопки в интерфейс. Сначала мы отрисовали кнопки “поверх” приложения, но потом по пожеланию заказчика сделали так, чтобы они скрывались за зданиями. Для этого мы нарисовали кнопки прям внутри 3D-рендера и сделали их частью трехмерной модели. Это помогло добиться плавной графики и видимости кнопок в любом положении.
«В процессе работы мы не всегда знали, как именно будет выглядеть 3D- и AR-модель в приложении. Многократное тестирование приложений на разных устройствах позволило выявить ошибки и своевременно отправить модель на доработку.»
Android
iOS
Вместе с командой партнера за 3 месяца мы создали приложение, где пользователи могут: