Автоматическое скачивание новых экранов из Цеплина и Фигмы
Делюсь скриптами для решения проблемы ревью макетов в Цеплине или Фигме
На работе я пытаюсь быть в курсе того, что происходит в соседних проектах, для этого стараюсь смотреть все макеты.
Делать это в Цеплине или Фигме — катастрофа и унижение.
В Цеплине: зайти в список проектов, обновить проекты по времени обновления, зайти в проект, обновить экраны по времени обновления, открыть первый, посмотреть, перейти к следующему. В то момент, когда на глаза начинают попадаться знакомые макеты, нужно остановиться и перейти к следующему проекту. При этом Цеплин дико тормозит — посмотрел 10 макетов, потратил 5 минут. Хочется убиться.
В Фигме нет и этого. Нет ни версий, ни даты обновления, ни фильтрации, ни сортировки. Ходи по экранам и ищи новое. На Фигму я просто забивал.
Я написал себе пару скриптов, которые скачивают в виде png-файлов все обновившиеся с прошлого раза макеты. Пока доволен, на ревью всех проектов день уходит 10-15 минут. Вдруг кому-то тоже помогут.
Качать здесь:
github.com/mikeozornin/zeplin-and-figma-screen-download
Как использовать
- Создайте токен доступа к Фигме или Цеплину
Фигма: figma.com/developers/api#access-tokens
Цеплин: docs.zeplin.dev/reference#introduction - Скопируйте config.py.example как config.py и впишите туда свои токены.
- (Только для фигмы): Отредактируйте в файле config.py идентификаторы проектов, которые вам нужны. (Идентификатор проекта содержится в урле https://www.figma.com/file/__id-of-the-project__/YourProject)
- Запустите нужный скрипт
Вы можете использовать как один скрипт, так и оба. Если нужно, отредактируйте скрипт запуска run.sh.
Как оно работает
Скрипты скачивают новые версии экранов из Цеплина и Фигмы в папку, названную по текущей дате (2020-11-06).
Скрипт для Цеплина работает умнее: скачивает только те экраны, которые обновлялись с момента прошлого запуска. Момент предыдущего запуска хранится в файле zeplin-checkpoint.txt, если его стереть, то скачаются все экраны снова.
В Фигме нет версий отдельных экранов, а версия файла меняется при каждом изменении. Сделать так же, как для Цеплина не получится. Поэтому скрипт для Фигмы качает все экраны из проектов (скачаются все корневые фреймы). После скачивания скрипт проверит, качался ли такой файл раньше, если такой файл уже встречался ранее, то скрипт удалит только что скачанный файл. В итоге он оставит только те, которые не качались раньше.
Для определения встречался такой файл, или нет используется md5-сумма файлов. Md5-суммы хранятся в файле figma-checkpoint.txt, если его стереть, то скачаются и останутся все экраны.
Как запускать регулярно
Если вам нужно, чтобы скрипт срабатывал сам в определенное время, добавьте его в планировщик крон или планировщик Windows.
Моё задание для запуска в 23:00 каждый день выглядит в кроне так:
00 23 * * * /Users/mike/work/git-repos/stuff/zeplin-download-recent/run.sh
Не запускайте дважды фигма-скрипт для одной и той же папки, сотрутся уже скаченные макеты. Надо будет как-нибудь доработать скрипт, чтобы этого не происходило.
Что может быть появится
Если я соберусь, то может быть придумаю медитативную ленту из обновленных экранов, которую можно скроллить. Но пока листаю файлы, это тоже ок.
Вопросы и предложения
Feel free, как говорится, написать на mike.ozornin@gmail.com. Ошибки, предложения, код-ревью, что угодно.