Comments 6
Спасибо, что поделились опытом!
Расскажите пожалуйста, как вы следите за соблюдением контракта в Figma, например, чтобы цвет primary внезапно не стал bgPrimary и не поломал имплементацию палитры? Есть ли какая-то автоматизация таких проверок или только договорённости с дизайнерами?
И ещё один вопрос: почему вы выбрали SVG, а не ImageVector из Compose?
Здравствуйте) Спасибо за комментарий)
Расскажите пожалуйста, как вы следите за соблюдением контракта в Figma, например, чтобы цвет primary внезапно не стал bgPrimary и не поломал имплементацию палитры?
Пока это исключительно договорённость с командой дизайна. Рассказали ребятам, как работает генерация, что есть обратная совместимость и сошлись на том, что токен, который уже попал в разработку, переименовать нельзя. В дальнейшем планируем для цветов тоже ввести поддержку deprecated. По поводу валидации на уровне кода и CI/CD - пока таковая отсутствует. Видел, что есть тулинг, например, japicmp и/или kotlin binary compatibility validator. Если договорённостей будет недостаточно, ошибки будут частыми, то будем плотно смотреть в сторону подобного тулинга.
почему вы выбрали SVG, а не ImageVector из Compose?
Для преобразования svg в Android Vector Drawable в Android SDK уже есть подходящий класс, который Android Studio в том числе использует. Поэтому выбор пал на него как на инструмент, работающий исправно годами и при этом не пришлось копировать в генератор код, а просто подключили в него нужную зависимость :)
По поводу ImageVector - в планах есть попробовать, но не самых ближайших. Не факт, что получится полностью уйти от Android Vector Drawable (AVD) - есть AndroidManifest, есть разные сторонние sdk, которые для кастомизации могут использовать xml-ные темы, в которых ImageVector использовать не получится.
Преимуществ ImageVector надо AVD пока тоже не видел. Если поделитесь информацией/ссылкой, буду очень благодарен :)
Как организована работа с градиентами? Похоже в variables api их нету - только цвета
Здравствуйте) Спасибо за вопрос)
Пока с автоматизацией градиентов повременили - всего 4-е токена и на bdui они не используются. Будем обновлять вручную. В Variables их и правда пока что нет - у дизайнеров они оформлены как обычные Figma-стили. Если к моменту, когда возникнет необходимость в генерации и в Variables их Figma не добавит, то будем выгружать их через старое API Figma - фреймы, обход нод, нахождение значений градиентов. Думаю, сможем взять предыдущий наш код, который генерировал цвета по старому API, и доработать его.
Спасибо, что поделились кейсом. Побольше бы таких статей на Хабре!
Кодогенерация токенов дизайн-системы для Android по Figma API