Привет, Хабр!

Сегодня по горячим следам расскажу, как прошёл первый день конференции мобильных разработчиков Mobius в этом году.

Он был очень насыщенным, мне удалось побывать на шести докладах, в основном по android-разработке.

Проходит мероприятие в кластере Ломоносов - очень красивая и технологичная площадка снаружи и внутри. Сегодня, правда, было очень жарко, встречаем лето. При регистрации дают фигурку очаровательного Mobius-утенка, сохраню на память.

Тулкиты кодогенерации Android vs iOS, Анна Жаркова, Usetech

Первый доклад сегодня был насыщенным и хардкорным: Аня кратко рассказала о компиляции в целом и подробно - о способах кодогенерации в Android Studio (IntelliJ IDEA) и Xcode. С помощью кодогенерации можно решить самые разные задачи: от генерации View до упрощения генерации архитектурных компонентов.
Рассмотрели PSI (Programming Structure Interface), Xcode template, Android Studio Wizard template, создание собственных плагинов, Xcode Source Editor и SPM плагины, Android build-time генераторы (KSP, KCP). Упомянули ChatGPT, Copilot и Gemini, куда же без них.
Провели соревнование между Android и iOS, у кого инструменты удобнее. Спойлер: победила дружба)

https://mobiusconf.com/talks/536b1d2f4e0b4be8a60da58d4095c8c7/?referer=/schedule/today/

Нетворкинг

На первой “переменке” удалось побывать у стендов Ozon Tech и hh.ru. У обоих классные квесты, от классических опросов до призов за потение на гребном тренажёре. Лайк стикерам hh.ru, особенно с горящей перед дедлайном попой)

Как избавиться от рекурсии, или Как мой код попал в Google, Максим Сидоров, SberDevices

Второй доклад сегодня был посвящён задачке, которую Максим дает ребятам на собесах: обойти иерархию вью во вью группе и найти удовлетворяющие предикату. Мы посмотрели, какими алгоритмами можно заменить рекурсию и как это влияет на производительность.
В заключение Максим рассказал, как ему удалось оптимизировать функцию ViewGroup.descendant(), которая занимала колоссальное время из-за функции yield и того, что под капотом у неё вложенные sequence.
Изменения уже приняты Google, история нескольких issue тоже интересная)

Основной вывод - если глубина вложенности небольшая, наиболее оптимальным видится использовать рекурсию, не рискуя столкнуться с переполнением стека. Если риск есть, придётся отказываться от рекурсии в пользу более медленных алгоритмов.

https://mobiusconf.com/talks/9e3b0e1d085e46f6b840f0e4dc752060/?referer=/schedule/today/

Нетворкинг

СберАвтоТех и Райффайзен Банк запомнились хардкорными викторинами по Android и Compose. Миссия Вспомнить всё)
Ребята из avito.tech представили новый инструмент для параллельного запуска автотестов - Emcee (https://emceetool.io/).

BDUI как стратегия мобильного приложения, Денис Александров, Yandex

“Киберсоциализм, который никогда не наступит” - так Денис описал BDUI. И всё-таки ребята из Яндекса создали своё решение, которое успешно работает для b2b приложения, в котором часто меняется бизнес-логика, но несложный, предсказуемый UI. Интересно было послушать, как в существующую архитектуру бэкенда (BFF) постепепнно встраивали BDUI-компоненты. Плюсы - фронтенд стал очень быстрым, нагрузка на бэк почти неощутима, пользователи не заметили разницы. Минусы - долго пришлось разрабатывать, переписывать, погружаться в дебри бэкенда.
Яркой презентации в тон редизайна Яндекс Маркета респект)

https://mobiusconf.com/talks/8274a0f5e50a4f40965dbb60ac30101d/?referer=/schedule/today

Gradle-сборка. Измеряем самое важное, Юрий Анисимов, Тинькофф

Болезненная для многих приложений тема времени gradle-сборки и в целом, выполнения тасок)

Юрий рассказывает о собственном переиспользуемом gradle-плагине Тинькофф для сбора метрик сборки, который писали, чтобы оперативно отловить, когда произошла её деградация. Ведь каждое обновление окружения, добавление новой библиотеки приводит к пересборке проекта. Сюда же антивирусы и файерволы, что особенно актуально для приложений мобильных банков.
Поговорили немного и про способы оптимизировать время сборки и такие инструменты, как Focus dropbox плагин и собственные решения крупных финтех приложений для уменьшения скоупа сборки.

https://mobiusconf.com/talks/f9f7e56446a7462eb8e3e4ba6cc64770/?referer=/schedule/today/

Нетворкинг

Вот такой симпатичный беспилотник представили Sber AutoTech и рассказали, как его тестировали. Жаль, салон нельзя фотографировать)

ByteWeaver. Инструментирование байт-кода во имя великого блага, Александр Асанов, VK/OK

Адександр динамично и с юмором рассказал о новом инструменте для патчинга байт-кода во время исполнения. Вот бы лекции про интерпретацию кода в универе были такими)
Нам бывает нужно править байт-код чтобы, например, залогировать вызовы некоторых методов или найти причину хитрого бага в коде, к которому нет доступа. Ещё одно полезное применение - сделать SysTrace более информативным.
Отдельное спасибо за экскурс в байт-код Dalvik. 

https://mobiusconf.com/talks/cb19362b215b43658c34dc802c62e899/?referer=/schedule/today/

Установка Android-приложений от доисторических времен до наших дней, Анатолий Гусев, VK/RuStore

Анатолий посвятил нас в API установки приложений в Android разных версий, в том числе последней, 14. Подробно поговорили про PackageInstaller и запрос разрешения на установку прилы.
Особенно интересно было послушать про неуловимые баги установки приложений на определенных устройствах Xiaomi. Вывод - всегда тестируйте на Xiaomi, причём чем больше разных устройств, тем лучше)

https://mobiusconf.com/talks/6234faa5dfc7458695367b33d341a757/?referer=/schedule/today/

Нетворкинг и афтерпати

В финальных перерывах особенно запомнились Яндекс 360 - ребята устроили CTF от мира мобильной разработки и заставили найти пять багов в приложении за 20 минут.
На афтерпати тоже посчастливилось поучаствовать в кодинг-битве от Яндекса, мозг кипел, но было весело.

В конце поста кину ещё несколько фото.
Еще больше впечатлений в моём ТГ канале https://t.me/android_w_m
Если упустила что-то интересное сегодня, делитесь в комментах! Расскажите о своих впечатлениях.
А мне пора чистить зубки и ложиться спать, до завтра!

Комментарии (3)