Работал ли с анимациями в Android

Ответ

Да, работал. Использовал как стандартные средства (ViewPropertyAnimator, ObjectAnimator, ValueAnimator), так и более сложные подходы (Lottie, MotionLayout).

Пример простой анимации:

view.animate()
    .alpha(0f)
    .scaleX(0.5f)
    .scaleY(0.5f)
    .setDuration(300L)
    .start()

MotionLayout удобен для сложных переходов между состояниями. Lottie применял для векторных анимаций из After Effects.

Нюансы:

  • Учитывать производительность (избегать анимаций в onDraw)
  • Останавливать анимации в onPause/onStop
  • Использовать Hardware Accelerated для плавности

Ответ 18+ 🔞

Ну вот, ёпта, сидишь такой на собеседовании, а тебе выкатывают: «А анимации делал?». Ну, бля, конечно делал, а как же! Не пальцем же, сука, деланные, в рот меня чих-пых.

Работал, да. Всё, что можно, перепробовал — от этих ваших стандартных штук, вроде ViewPropertyAnimator, до всяких замудрённых MotionLayout и Lottie. Последние — это вообще отдельная песня, когда дизайнер приносит какую-то пиздопроебибну из After Effects, а ты должен это впихнуть в приложение.

Вот, смотри, самый простой пример, чтобы не париться:

view.animate()
    .alpha(0f)
    .scaleX(0.5f)
    .scaleY(0.5f)
    .setDuration(300L)
    .start()

Всё, бля, элементарно. Нажал — и видюшка растворяется и сжимается. Красота.

А вот MotionLayout — это уже для серьёзных пацанов. Когда у тебя там целая сцена, и нужно плавно перетекать из одного состояния в другое, с кучей связей и ограничений. Удобная штука, но иногда так настроишь, что сам от себя охуеваешь, глядя на XML.

Ну и Lottie — это вообще магия какая-то. Кинул JSON-файл, вызвал пару методов — и у тебя на экране уже какая-нибудь мартышлюшка пляшет. Но, бля, тоже не без подводных камней.

А теперь самое важное, ёбаный насос, нюансы, без которых всё накроется медным тазом:

  • Производительность, сука! Это святое. Ни в коем случае не лезь с анимациями в onDraw() — убьёшь FPS нахер. Все вычисления — заранее.
  • Убирай за собой! Как только активити уходит на паузу или останавливается — ВСЕ анимации должны быть остановлены. Иначе будут в фоне ресурсы жрать, а потом пользователь придёт и скажет, что приложение — говно.
  • Жёсткое ускорение (Hardware Accelerated) — твой лучший друг для плавности. Без него анимации будут дёргаться, как судороги, и доверия ебать ноль к такому софту.

Вот так-то, чувак. Анимация — это не просто кнопочку моргнуть, это целая наука, чтобы и красиво было, и не тормозило.