Для интеграции партнер использовал наше Flutter API. Этот фреймворк является одним из доминирующих на рынке мобильной разработки сегодня, поскольку
- Позволяет на основе единой кодовой базы собирать приложения и для iOS, и для Android
- Является open-source решением, разрабатываемым компанией Google
- Имеет огромную библиотеку плагинов от сообщества
Однако, в рамках этого проекта возникла проблема: приложение требовало значительных вычислительных ресурсов, особенно для обработки биометрических данных.
Иными словами, нам нужно было научиться запускать несколько модулей 3DiVi Face SDK для параллельной обработки видеопотока с фронтальной камеры телефона, отрисовывать превью, при этом параллельно должны были выполняться другие процессы, не связанные с распознаванием.
Первоначальные прототипы, которые нам показывали коллеги, выглядели весьма непрезентабельно – приложения подвисало и фризило, целевые устройства попросту не справлялись с нагрузкой.
Тогда
мы внедрили поддержку Dart Isolates в наше Flutter API. Данное изменение позволило добиться асинхронной работы модулей SDK и избавиться от неприятных подвисаний.
Помимо этого, часть операций, касающихся преобразования изображений, таких как поворот, декодирование и сохранение, которые изначально выполнялись на Dart, были перенесены в нативный код SDK, что позволило также значительно ускорить процессинг.