Ответ вслух Middle Анимации и жесты спрашивают часто обновлено

Анимации в React Native

Вопрос

Как вы выбираете способ реализации анимации в React Native?

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

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

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

Коротко

Образцовый ответ: «Первым делом думаю, на каком потоке пойдут кадры. Если на JS-потоке, любая загрузка данных даст рывок.

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

  • Главный критерий: на каком потоке считаются кадры

  • Простые `transform`/`opacity`: Animated с native driver или Reanimated

  • Анимации раскладки и связанные с жестами: Reanimated + Gesture Handler

  • Появление и удаление элементов: layout animations

  • Сложные иллюстрации: Lottie или Rive

  • Проверка на слабом устройстве в release

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

  • Почему нельзя анимировать width через native driver?
  • Как показать значение анимации в тексте?
  • Как отложить тяжёлую работу до конца анимации?

Разбор

Образцовый ответ: «Первым делом думаю, на каком потоке пойдут кадры. Если на JS-потоке, любая загрузка данных даст рывок. Для простых эффектов вроде появления и сдвига хватает Animated с native driver, но он умеет только transform и opacity. Всё, что связано с жестами, раскладкой или сложной логикой, делаю на Reanimated: shared values и useAnimatedStyle считаются на UI-потоке, а жесты через Gesture Handler тоже обрабатываются там. Для появления и удаления элементов использую layout animations. Анимации от дизайнеров проигрываю через Lottie. Проверяю на недорогом Android в release, потому что в debug всё медленнее»

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

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