«Яндекс» выложил в открытый доступ Yatagan — инструмент для быстрой сборки Android-приложений Статьи редакции

Сначала компания использовала его для своих целей. Например, ускорила разработку приложения «Браузера» в два раза.

  • «Яндекс» выложил на GitHub фреймворк Yatagan. Он автоматически генерирует код, который связывает между собой части приложения. Например, в «Браузере» он объединяет модули распознавания речи, «Алисы», перевода видео и всё остальное.
  • Yatagan можно использовать вместо фреймворка Dagger — он задействует API Dagger, но генерирует меньше кода и этим сокращает время сборки.
  • В Yatagan есть специальный режим для разработчиков, который связывает модули без генерации кода, — он незначительно замедляет запуск приложения, но сильно ускоряет сборку.

Изначально мы создавали Yatagan для своих целей. Перед нами стояла задача ускорить сборку таких приложений, как «Браузер» или «Яндекс с Алисой». Тогда мы изучили особенности работы Dagger и на его основе сделали свой фреймворк. В итоге нам удалось вдвое ускорить сборку. Это не значит, что все получат такой же результат: скорость сборки зависит от многих факторов. По нашим оценкам, в среднем она может вырасти на 40–50% — причём не только в таких больших приложениях, как »Браузер».

Илья Богин, руководитель отдела мобильной разработки «Яндекса»
  • В августе 2022 года «Яндекс» опубликовал на GitHub фреймворк DivKit, который позволяет ускорить разработку мобильных приложений и быстрее обновлять интерфейсы.
0
98 комментариев
Написать комментарий...
Ияза Гара

У Яндекса в среднем приложения посредственные. Тупят и тормозят. Маркет - вообще какашка глюченная. Плюс сити после обновления - это единственное приложение, которое смогло заставить жестко тормозить свежий Айфон.

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

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

Ответить
Развернуть ветку
Artur Vasilov

Это специальный режим, который используется только во время работы разработчиков, что позволяет ускорить именно процесс разработки.

Версии приложения для пользователей, конечно, собираются другим способом, без использования этого режима, как раз ради максимальной производительности.

Ответить
Развернуть ветку
nochnoy.ru

Это один из режимов, гений. Читай внимательно.

Ответить
Развернуть ветку
Апрель Обормотов

Вот еще. А потом еще и думать попросите, да? :)

Ответить
Развернуть ветку
t1r

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

Ответить
Развернуть ветку
lalka here.kek

Графы и билды это разные команды.

Ответить
Развернуть ветку
95 комментариев
Раскрывать всегда