Анимации во Flutter
Вопрос
Расскажите, какие бывают анимации во Flutter и как вы выбираете подход.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Неявные: `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 ошибок.