Говорим на одном языке: как дизайнеру передавать анимацию в разработку и быть уверенным в финальном результате

Интерфейсная анимация — лакмусовая бумажка корректного взаимодействия дизайнера и разработчика. В этой статье наш дизайнер интерфейсов Кристина Широкова рассказывает, как не потерять функциональность проекта после передачи анимации в разработку и почему всё не так сложно, как кажется на первый взгляд.

Создание интерфейсной анимации — это примерно 35% от задачи. Остальные 55% принадлежат разработчикам, от которых будет зависеть финальный вид и функциональность приложения, а между этими процентами — попытка понять технический и визуальный языки друг друга.

Как правильно описывать анимацию

Чтобы всё работало и выглядело так, как задумывалось на этапе концепции, дизайнеру нужно научиться корректно описывать и передавать макеты с помощью четырёх атрибутов, которые разработчики отождествляют с интерфейсной анимацией. Это информация о длительности, плавности, способах трансформации и начальном и конечном состояниях объекта:

  • триггер,
  • эффект,
  • тайминг,
  • изинг.

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

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

Кристина Широкова, дизайнер интерфейсов red_mad_robot
<p>Пример описания анимации в коде</p>

Пример описания анимации в коде

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

Встроенные инструменты для экспорта

Интерфейсная анимация — это комплексное решение, которое влияет на восприятие приложения пользователем и затрагивает большинство свойств объектов на экране. Обычно передача макетов в разработку требует от дизайнера использования решений со встроенными инструментами для экспорта. Это может быть After Effects, Figma и плагин Aninix в Figma, Principle, Protopie.

After Effects — мощный инструмент для анимаций, но не для прототипирования. Несмотря на то что ему везде обучают как инструменту для анимации в интерфейсах, он не очень для этого подходит, так как его возможности не ограничены, а интерфейсная анимация как раз про множество ограничений. Я бы советовала использовать АЕ для моушна, дизайн-концепций и шотов на Dribbble.

Кристина Широкова, дизайнер интерфейсов red_mad_robot

After Effects можно использовать для создания Lottie-файлов, которые удобны для анимации лоадеров, персонажей, микроанимаций, ошибок и состояний загрузки. Для экспорта нужен один из двух плагинов – Bodymovin или LottieFiles. Библиотека Lottie делает парсинг всей анимации и создаёт JSON-файл, который можно встроить в код сайта или в приложения.

Создание Lottie-анимации для веба и приложений в After Effects / SonduckFilm

Анимация в Figma очень удобна — не нужно устанавливать программы, куда-то складывать дополнительные файлы и линковать с макетами. Инструмент не даёт возможности настраивать параллельное движение разных объектов на экране, поэтому отлично подойдёт для быстрого прототипирования и несложных взаимодействий.

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

В Figma есть Inspector — режим для разработчиков с полем с атрибутами анимации. В него входит описание свойств кривой изинга, продолжительности и задержка.

Примеры подписей в Figma
Примеры подписей в Figma

К сожалению, то, что есть в Inspector, не всегда понятно для дизайнера, поэтому я делаю дополнительные подписи в формате: Trigger, Easing, Duration, Delay (если есть) и Effect. Effect в Figma — это просто изменение объекта от одного состояния экрана к другому.

Кристина Широкова, дизайнер интерфейсов red_mad_robot
Примеры подписей в Figma
Примеры подписей в Figma

Aninix — это плагин, который расширяет возможности анимации Figma. В отличие от базовых функций инструмента в нём можно отдельно настроить изинги и тайминги разных слоёв. Кроме того, в Aninix есть небольшая библиотека с пресетами для анимации входа и выхода объекта на экран и с экрана, а также с разными эффектами вроде баунса, пульсации или вращения.

Анимация в Aninix

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

Кристина Широкова, дизайнер интерфейсов red_mad_robot
Lottie-анимации в Figma с помощью плагина Aninix / Aninix — Interface animation

В Aninix удобная и простая передача в разработку: дизайнер генерирует ссылку, по которой можно посмотреть все атрибуты движения каждого объекта. Сам файл прикрепляется к фрейму в Figma и помечается специальным значком.

Сложные анимации в коде делаются пошагово — мы применяем сначала одно преобразование с заданной продолжительностью, а затем следующее, поэтому при работе в Aninix очень удобно видеть макет, разбитый на этапы и с проставленными параметрами. Кроме того, анимацию можно просматривать в замедленном виде и останавливать в любом месте, чтобы посмотреть, какие параметры объектов были именно в этой точке времени.

Максим Голов, iOS-разработчик red_mad_robot

Экспорт из Aninix

Анимацию из Aninix можно выгрузить в .GIF, .MP4, .PNG, WebM и Lottie. При этом в Figma она импортируется только в виде .GIF.

Principle — один из самых популярных инструментов прототипирования за счёт простой функциональности, которой при этом достаточно для разработки сложных взаимодействий. В инструменте есть полезная фича — Drivers. Она позволяет проектировать анимацию элементов в зависимости от состояния другого объекта, например изменение свойств объекта в зависимости от скролла или драга.

Работа в Principle на Mac / Daniel Hooper

Слабое место Principle — отсутствие отдельного инструмента для передачи анимации в разработку. Экспортировать макеты можно только в. GIF или. MP4 — это означает, что программистам придётся установить приложение для отображения всех настроек, деталей и характеристик анимации.

Protopie по логике построения анимации похож на код — есть триггер и множество изменений свойств со своими продолжительностью, задержкой и изингом. Также в инструменте есть большое количество условий и переменных — дизайнеру нужно самостоятельно замерять положения объектов и строить зависимости. Это намного облегчает работу именно разработчиков.

Пример работы в Protopie / ProtoPie

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

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

Кристина Широкова, дизайнер интерфейсов red_mad_robot

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

Готовые решения

Иногда к инструментам для анимации можно и не прибегать — существуют библиотеки решений с открытым кодом, а также каталоги готовых анимаций, которые без проблем импортируются в код. Среди основных источников — Youtube, CodePen, Lottie, Rive и реальные сайты и приложения.

YouTube

На YouTube можно найти много интересных эффектов с разбором кода. Такой подход экономит время разработчика и повышает насмотренность дизайнера.

Недавно я думала, как сделать эффект, похожий на круговые разноцветные волны, — они должны были находиться в постоянном рандомном движении. Решить задачу помог туториал по генеративной анимации от Паши Жака.

Кристина Широкова, дизайнер интерфейсов red_mad_robot

Ещё можно заглядывать на канал Design Code — там много обучающих роликов по разработке на SwiftUI, React и Flutter, проектированию в Figma, анимации и работе в Spline. Авторы разбирают как отдельные фичи, например 3D-свайп карточек с параллаксом их из ленты, так и вёрстку целых экранов и флоу. Также интересные туториалы по разработке на SwiftUI публикуют Kavsoft и AnthonyDesignCode.

Создание SwiftUI приложения для iOS 15 / DesignCode

CodePen

CodePen — веб-редактор кода HTML, CSS и JavaScript, который позволяет экспериментировать с кодом прямо в браузере. Находками и решениями можно поделиться с комьюнити — это напоминает Dribbble, только для разработчиков.

Для дизайнеров CodePen представляет большой каталог интересных эффектов и анимаций с открытым для просмотра и копирования кодом — разработчику нужна будет только ссылка на pen, чтобы оценить, реально ли сделать похожий эффект. Проекты можно быстро копировать и менять под свои настройки — цвет, отступы, скругления, контент и все атрибуты движения. Решения подойдут для веба, но для мобильной анимации платформу можно использовать как базу референсов.

Пример работы в CodePen

Lottie

Lottie — библиотека для iOS-, Android- и веб-разработки, которая позволяет рендерить анимацию и проигрывать её в приложении в реальном времени. Каждый макет — файл, который можно изменить и переиспользовать в других проектах. Кроме того, c помощью плагина в Figma Lottie-файлы можно вставлять сразу в дизайн в виде. GIF — они будут воспроизводиться в режиме прототипа.

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

Пример кода Lottie / Will Brett Design

Rive

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

Подход заключается в рендере файлов на облачных серверах — разработчик просто вставляет в код ссылку на анимацию, которая лежит в профиле Rive. А так как ссылка остаётся постоянной, то все изменения в дизайне автоматически транслируются в рабочее приложение или на сайт, куда встроена анимация. Решение поддерживается на разных платформах и языках и значительно облегчает и ускоряет загрузку приложения.

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

Влад Марков, iOS-разработчик red_mad_robot

Пример работы в Rive

В Rive также есть комьюнити, как в Figma или CodePen, откуда можно брать готовые анимации.

Реальные сайты и приложения

В случае с существующими сайтами и приложениями действует простой принцип: если кто-то так сделал, значит, это можно повторить. Такой подход может значительно уменьшить время работы дизайнера, но в плане разработки это лотерея.

Красивые готовые сайты с анимациями можно посмотреть на Awwwards, Godly или hoverstat.

Пример анимации для пропуска перехода/ Junni

Овервью

При передаче анимации в разработку важно помнить о трёх основных правилах:

  1. Чтобы анимация в релизе совпала с анимацией у дизайнера в голове, разработчику нужно знать все атрибуты движения — триггер, эффект, тайминг и изинг. При этом есть исключения, когда движение можно описать словами.
  2. Библиотеки анимаций и готовые решения — отличный способ сократить рабочее время дизайнера и ресурсы программиста. YouTube, CodePen, реальные сайты — иногда этого достаточно, чтобы понять друг друга.
  3. Во многих программах для анимации есть встроенные механизмы для передачи файлов в разработку — это также неплохая возможность сэкономить пару лишних часов или нервных клеток.

Если было полезно читать, то заглядывай в телеграм-канал Кристины — там она рассказывает о том, как работает анимация в интерфейсах, разбирает на примерах, как нужно и не нужно делать, делится своим опытом и показывает красивые референсы.

6868
19 комментариев

спасибо за статью, очень интересная

3
Ответить

Спасибо! ❤️

Ответить

Супер полезно! 🔥

2
Ответить

Коля, спасибо!

2
Ответить

Материал — топ!

2
Ответить

❤️

1
Ответить

Сколько материала и полезных рекомендаций! Ребята, спасибо 🖤

2
Ответить