Ответ вслух Middle Анимации обновлено

Анимации во Flutter

Вопрос

Расскажите, какие бывают анимации во Flutter и как вы выбираете подход.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «Начинаю с неявных анимаций: если нужно плавно перейти из одного состояния в другое, AnimatedContainer или AnimatedSwitcher делают всё сами, мне нужно только поменять параметр.

Что должно прозвучать в ответе

  • Неявные: `AnimatedContainer`, `AnimatedSwitcher`, `TweenAnimationBuilder` для переходов при смене параметра

  • Явные: `AnimationController` с `vsync`, `Tween`, `CurvedAnimation` для управления временем

  • Эффективная перерисовка: `*Transition`, `AnimatedBuilder` с `child`

  • Переходы между экранами: `Hero`, `PageRouteBuilder`

  • Сложные анимации от дизайнеров: Lottie, Rive

  • Освобождение контроллеров в `dispose`

Что могут спросить следом

  • Что такое Ticker?
  • Как анимировать список при добавлении элемента?
  • Как сделать анимацию, продолжающую жест?

Разбор

Образцовый ответ: «Начинаю с неявных анимаций: если нужно плавно перейти из одного состояния в другое, AnimatedContainer или AnimatedSwitcher делают всё сами, мне нужно только поменять параметр. Если нужно управлять временем: повторять, запускать в обратную сторону, связать с жестом, беру AnimationController с vsync от SingleTickerProviderStateMixin, CurvedAnimation для кривой и Tween для диапазона. Перерисовываю через FadeTransition, SlideTransition или AnimatedBuilder с child, чтобы не строить весь экран каждый кадр. Для переходов между экранами Hero. Если дизайнер дал сложную анимацию, проигрываю её через Lottie или Rive. И всегда освобождаю контроллер в dispose»

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.