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