Использует UIPropertyAnimator и fractionComplete для анимации, text width / text field width для работы с текстом.
Сам аватар делится на части — голова, туловище, глаза, уши и т.п., и каждую часть можно анимировать по отдельности. Сами они — векторные PDF.
У персонажа для упрощения есть несколько состояний (Нейтральное, Активное, Подглядывающее), с помощью которых можно более просто управлять анимацией.
Библиотека: https://github.com/cgoldsby/LoginCritter