Информационная служба Хабра посетила IT‑конференцию CrossConf 2023. Мероприятие проходило 15 сентября 2023 года в Москве в пространстве «Старт Хаб» на «Красном Октябре». Конференция была посвящена обмену опытом кроссплатформенной мобильной разработки и технологичного рынка. По словам организаторов, конференцию посетило 600 IT‑специалистов.
Этот обзор сильно задержался, потому что было очень много выступлений на разные темы. И если проблема больших мероприятий в том, что там просто никуда не успеешь, так как активностей много, то проблема такого рода конференций — это то, что все лекции нельзя посмотреть сразу, и придётся знакомиться с ними в записи.
![](https://habrastorage.org/getpro/habr/upload_files/9ae/ae9/7fd/9aeae97fdea88a5b4657e73c25fa2190.jpg)
На этой CrossConf общих активностей было мало, поэтому их я освещать не буду, оговорюсь, что был шанс протестировать массажное кресло стоимостью ₽2 млн, был VR‑комплект, можно было купить толковые книги по разработке, компьютерной грамотности, истории IT и бахнуть свежемолотого кофе.
Лучше расскажу про лекции. В очередной раз прикладываю плейлист лекций и питч‑сессий, чтобы можно было ознакомиться с ними целиком. Сразу хочу сказать, я не специалист в разработке, но постарался выбрать лекции полезные в этой сфере, ну и те, что сам понял. Правда, было сложно, поэтому расскажу о некоторых докладах. Плейлисты по докладам тут.
Первый доклад от специалиста по машинному обучению компании Friflex Глеба Папчихина под названием «Генерация синтетических данных на Blender для задач компьютерного зрения».
Папчихин рассказывает о том, как использовать Blender для генерации данных, включая шахматные партии с различными расстановками фигур и источниками света. Специалист объясняет, как найти и подготовить 3D‑модели для использования в Blender, решить проблемы с размерами фигур и их расположением. Например, использовать интерфейс Blender для подготовки общих размеров и дизайна фигур. Или почему выбрал Blender API (в нём используется Python и это упрощает создание материалов и фигур).
Кроме того, в лекции идёт рассказ об использовании пользовательских свойств для работы с источниками света и их мощностью, методе получения координат объектов и проекций на 2D‑изображениях, использование синтетических данных для обучения нейронных сетей, перспективы использования такого обучения и показаны результаты использования синтетических данных. В конце лекции Глеб Папчихин объяснил разницу между процедурной генерацией и использованием нейросетей для создания 3D‑моделей. Так, в своём примере Глеб не использовал нейронные сети для создания 3D‑моделей, а использовал их для обучения модели на уже созданных данных.
Следующий доклад, который я хотел бы представить, — это выступление аспиранта СПбГУ Виктории Фирсановой «Разговорный искусственный интеллект для инклюзивного образования». Этот доклад не очень вписывается в концепцию списка лекций и обсуждений, как я его себе представляю. Однако, считаю, таких исследований не очень много и говорить о них надо.
Виктория начала доклад с рассказа о своём опыте работы с инклюзивным образованием, как она столкнулась с проблемами коммуникации и непонимания между людьми с разными особенностями. Тут сразу хочу подметить: Фирсанова сказала, что такую языковую модель, как ChatGPT, можно использовать для обучения психологов и психотерапевтов. Правда, тут с собой она спорит, обозначив проблемы, связанные с использованием ChatGPT, например отсутствие мониторинга и создание опасных советов. Поэтому вместо ChatGPT аспирант предлагает применять Google Bard, так как он использует результаты поиска Google. Или можно внедрить промтинжиниринг для точного формулирования запросов к модели искусственного интеллекта. Лично моё мнение — промтинжиниринг надо использовать в любом взаимодействии с языковыми и ИИ‑моделями для уменьшения проблем с выдаваемыми ответами.
Исследования Виктории посвящены разработке инструмента для инклюзивного образования. Для этого аспирант использует метод трансферного обучения при создании модели искусственного интеллекта, способной помочь в коммуникации между людьми с разными особенностями.
Трансферное обучение решает задачу создания новой модели на основе ограниченных данных. В лингвистике и обработке естественного языка это обучение используется в адаптации ИИ‑модели к новому домену или языку. Виктория продемонстрировала примеры трансферного обучения с генеративным искусственным интеллектом, с использованием маскированного моделирования языка для решения задачи автоматического понимания текста.
Потом докладчица рассказала о создании датасета для обучения модели и об использовании узких данных и датасета, собранного полностью на русском языке. Следующая часть лекции была посвящена созданию чат‑бота, отвечающего на вопросы пользователей о психическом здоровье. Была использована модель GPT2. После нескольких доработок и добавления возможности извлечения контекста из информации модель начала справляться с ответами лучше.
Ну и потом Виктория перешла к рассказу, что чат‑боты не используют в образовании, особенно в области психиатрии, психологии и психотерапии. Поэтому рассказала о создании чат‑бота на основе GPT, используемого в качестве инструмента для общения с детьми с аутизмом и другими особенностями развития. В этом чат‑боте будут представлены социальные истории, календарь планирования, дневник и мессенджер для общения. Также в новой версии модели чат‑бота планируются другие языки (например казахский), масштабирование модели на другие страны. Возможно, проведут конференции и круглые столы для обсуждения использования чат‑ботов в образовании.
Далее я бы хотел рассказать о докладе дизайнеров из «Сбермаркета» Анастасии Винокуровой и Екатерины Вороненко под названием «От нативной разработки к кроссплатформенной».
Начала выступление Анастасия. Она рассказала, как началась работа над проектом, включающим разработку мобильного приложения и веб‑интерфейса. Винокурова обозначила проблемы, с которыми столкнулась её команда при разработке приложения, например, необходимость адаптации дизайна для разных платформ и устройств. Для решения проблем команда Анастасии (и чуть позднее Екатерины) задумалась о кроссплатформенности и о том, какие риски это повлечёт.
Потом докладчица рассказала о работе с подрядчиками и сложностях с адаптацией дизайна и перехода на веб‑версию. Далее слово было передано Екатерине, нанятой за 3 месяца до релиза. Екатерина рассказала о переходе на веб‑версию и адаптации различных частей приложения.
Также Екатерина объяснила, что переход на кроссплатформенность позволил оптимизировать ресурсы команды и запустить продукт в срок.
После этого докладчицы уже вдвоём начали рассказывать, как проходила разработка и тестирование, например, приложение было адаптировано под разные платформы, включая Android и iOS, или что для пущей наглядности использовался сторонний сервис, визуально отличный от Google Маркета. В конце дизайнеры рассказали, что весь проект был разработан на платформе WebView, но рассматривались и другие варианты.
На мой взгляд, этот доклад будет мало интересен кодерам или программистам, но зато важен специалистам, работающим с мобильными приложениями, особенно запускающим новые приложения для разных маркетплейсов.
После дизайнерского трека переходим к более хардкорным темам — ну для меня. Итак, доклад сооснователя и CTO компании Smatex Василия Колосова «Отвергнуть Flutter и React и написать всё на экзотическом NativeScript».
Начал Василий с того, что NativeScript представляет собой альтернативу React Native. Была представлена история и развитие фреймворка NativeScript. Этот фреймворк был разработан компанией Telerik, купивший его у компании Progress. Сейчас NativeScript — это активно развивающийся фреймворк с открытым исходным кодом, и он активно развивается.
По словам Василия, NativeScript позволяет разработчикам создавать мобильные приложения для платформ iOS и Android с использованием языка JavaScript. Основными преимуществами NativeScript докладчик назвал простоту и скорость разработки благодаря прямому доступу к нативным методам и классам через JavaScript.
В докладе были показаны примеры применения NativeScript для доступа к нативным компонентам, таким как информация об уровне заряда аккумулятора. Ещё одной важной особенностью Василий назвал идентичность нативных объектов и методов в JavaScript и непосредственно в NativeScript, что упрощает разработку и позволяет сосредоточить усилия на оптимизации кода приложения.
В NativeScript поддерживается работа с typescript и имеется строгая типизация, ускоряющая и оптимизирующая процесс разработки. Фреймворк может использоваться не только для создания приложений под актуальные версии iOS и Android, но и для поддержки будущих версий этих платформ.
Также Василий заметил, что NativeScript хоть и имеет общие черты со средой разработки React Native, между ними всё же имеются различия. React Native использует свой собственный набор инструментов и библиотек в отличие от NativeScript, основанного на классическом JavaScript. Это делает NativeScript более гибким и настраиваемым решением для разработчиков.
И последний доклад, заинтересовавший меня, назывался «ОС Аврора. Статус поддержки фреймворка Flutter». Его представлял инженер‑раработчик из компании «Открытая Мобильная Платформа» Денис Глазков.
Денис Глазков рассказал о процессе портирования Flutter‑фреймворка на российскую мобильную операционную систему (ОС) «Аврора». Эта ОС поддерживает множество устройств и экосистем и пользуется успехом у разработчиков приложений. По мнению Дениса, кросс‑платформенные инструменты, типа Kotlin Multiplatform или Compose, не подходят «Авроре» из‑за своих лицензионных ограничений и ограниченной поддержки других операционных систем. Поэтому выбор пал в пользу ещё одного фреймворка — Flutter. В своём докладе Денис рассказал о процессе портирования Flutter, включая создание компонентов для компиляции кода на Kotlin в код на Dart. Однако в ходе процесса возникли некоторые трудности, такие как отсутствие поддержки для 32-битных процессоров и необходимость адаптировать Flutter SDK для его совместимости с «Авророй».
Обзор мероприятия затянулся, потому что оно направлено на широкий круг специалистов по мобильной разработке. И так как я в разработке не очень, а в разработке для мобильных устройств тем более, то мне были интересны все доклады. Но я принял волевое решение выделить те, которые мне больше всего запомнились. И всегда можно возразить, что мне понравилось что‑то не то, вот, мол, был другой интересный доклад, который не указан в обзоре. Поэтому я всегда прикладываю ссылку на плейлисты и канал с докладами. Я очень рад, что на конференции было мало стендов. Всё‑таки мероприятие было больше отраслевое и направлено на обмен опытом у специалистов, поэтому я отошёл от привычного формата — доклады, потом стенды.
Ну и моё скромное мнение: CrossConf стоит посещать всем программистам, связанным с мобильной разработкой. Именно для обмена опытом, поддержания и развития комьюнити, да и просто чтобы почерпнуть что‑то новое в работе или, наоборот, поделиться этим новым с сообществом.