NDA
Развлечение и спорт
Швейцария, Zürich
iOS, Android
Апрель 2022
Обычно мобильные приложения помогают купить, заказать или записаться. Здесь задача была совсем другой: превратить набор разрозненных деталей конструктора в понятный цифровой опыт, который вдохновляет на новые сборки.
К нам пришли с идеей приложения, которое умеет распознавать детали по фото и подсказывает, какие фигуры можно собрать из уже имеющегося набора. Пользователь просто раскладывает детали, фотографирует их, а приложение анализирует состав и предлагает подходящие варианты. На словах это звучит просто. На деле это проект на стыке мобильной разработки, machine learning и продуманного пользовательского сценария.
Нужно было не только встроить ML-модель в мобильное приложение, но и сделать так, чтобы технология работала на понятный и увлекательный пользовательский опыт. Причем для широкой аудитории, включая детей.
Перед нами стояли сразу несколько задач:
– разработать мобильное приложение на Flutter для iOS и Android;
– интегрировать в него ML-модель для распознавания деталей конструктора;
– продумать понятный сценарий сканирования и рекомендации по новым фигурам;
– добавить социальные механики: ленту, возможность делиться результатами;
– подключить push-уведомления и удобную авторизацию через социальные сети.
Главный вызов проекта был в том, что сам по себе ML не создает хороший продукт. Если пользователь не понимает, как правильно сканировать детали, если рекомендации выглядят случайными, а путь внутри приложения запутан, даже сильная технология не работает.
Поэтому нам нужно было решить сразу две задачи одновременно: реализовать технически сложную часть с машинным обучением и сделать интерфейс настолько понятным, чтобы им было легко пользоваться без долгого погружения.
1. Разработали и внедрили инструкцию при авторизации.
Мы добавили подробную инструкцию для тех, кто хочет изучить функционал приложения целиком: добавили видео, как правильно сканировать детали, а еще проиллюстрировали тексты, чтобы детям было проще разобраться.

2. Разработали рекомендации для фигур.

3. Распознаем детали из большого количества и сканируем готовые фигуры.
Как только вы найдете в приложении подходящую фигуру из имеющихся деталей, можно приступать к сборке. При этом необходимые детали подсветятся, чтобы вам не приходилось напрягаться и искать их. А еще при наведении на собранную фигуру можно отсканировать ее детали, чтобы понять, что еще можно собрать.

4. Добавили возможность делиться фигурами в соцсетях.
Можно впечатлить своих друзей и подписчиков уникальными конструкциями. Расширьте свой круг общения и вдохновите других людей своими творческими сборками.

Мы создали ML-модель и обучили ее распознавать детали конструктора.
Подключили API, чтобы Flutter взаимодействовал с обученной моделью. Взаимодействие с ML-моделью было реализовано со стороны нативной части Android-приложения на языке Kotlin с использованием библиотеки машинного обучения Tensor Flow.
Добавили взаимодействие между Flutter и нативной частью приложения для работы с обученной моделью. Этот шаг реализован через FlutterChannels – инструмент Flutter.
За 4 месяца мы разработали мобильное приложение с нуля на Flutter и интегрировали в него ML-модель распознавания деталей.
Результат оказался сильным не только с технической стороны, но и с точки зрения пользовательского отклика: приложение получило рейтинг 4.9 в App Store до введения монетизации, позже рейтинг составлял 4.7, а количество скачиваний превысило 1 миллион.

Для нас это важный показатель того, что проект с нестандартной технологической начинкой удалось превратить в массовый и понятный продукт, которым людям действительно хочется пользоваться.
![]()
Дмитрий Тарасов
Генеральный директор (CEO)
В приложении много анимаций. Мы создали сложные кастомные анимированные элементы в соответствии с поставленным таймингом. Например, контроллер lottie-анимаций для страниц onboarding + кастомизированный переход выбранной идеи конструктора из одной страницы в другую.