{"id":14277,"url":"\/distributions\/14277\/click?bit=1&hash=17ce698c744183890278e5e72fb5473eaa8dd0a28fac1d357bd91d8537b18c22","title":"\u041e\u0446\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0442\u0440\u044b \u0431\u0435\u043d\u0437\u0438\u043d\u0430 \u0438\u043b\u0438 \u0437\u043e\u043b\u043e\u0442\u044b\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u044f","buttonText":"\u041a\u0430\u043a?","imageUuid":"771ad34a-9f50-5b0b-bc84-204d36a20025"}

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

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

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

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

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

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

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

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

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

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

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

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

Интерфейсная анимация — это комплексное решение, которое влияет на восприятие приложения пользователем и затрагивает большинство свойств объектов на экране. Обычно передача макетов в разработку требует от дизайнера использования решений со встроенными инструментами для экспорта. Это может быть 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

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

Кристина Широкова, дизайнер интерфейсов red_mad_robot
Примеры подписей в 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. Во многих программах для анимации есть встроенные механизмы для передачи файлов в разработку — это также неплохая возможность сэкономить пару лишних часов или нервных клеток.

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

0
19 комментариев
Написать комментарий...
Аллоизий Могарыч

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

Ответить
Развернуть ветку
Design by redmadrobot

Спасибо! ❤️

Ответить
Развернуть ветку
Ник Строганов

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

Ответить
Развернуть ветку
Design by redmadrobot

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

Ответить
Развернуть ветку
Настя Смирнова

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

Ответить
Развернуть ветку
Design by redmadrobot

❤️

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

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

Ответить
Развернуть ветку
Design by redmadrobot

Рады, что полезно!

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

Классно, что много кейсов и инструментов разобрано

Ответить
Развернуть ветку
Design by redmadrobot

Жень, спасибо!

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

очень крутая статья! особенно про кейсы использования разных инструментов ✨

Ответить
Развернуть ветку
Design by redmadrobot

Настя, рады! Старались собрать максимум пользы без воды)

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

Rive на тестах для swift UI провалился. Пока сырой, не тратьте время.

Ответить
Развернуть ветку
Азамат office-health.app

его дуа лингва использует. А это уже о многом говорит )

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

я попросила протестировать его и девелоперы зарубили. А вот Aninix рекомендую!

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

Забыли Haiku Animator - https://www.haikuanimator.com

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

его уже некоторое время не поддерживают к сожалению

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

Спасибо за материал, очень полезно!

Ответить
Развернуть ветку
Борат Язь

@Инспектор у нас тут боты с хвалебными комментами. Побанить бы их и автора за одно.

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