LeanTween — библиотека для Unity, позволяющая управлять анимацией объектов. Этот обзор подробно рассматривает её дизайн кода и архитектуру, выявляя серьёзные недостатки.
Проблемы дизайна и архитектуры
LeanTween позиционируется как библиотека для анимации объектов, перемещения их по кривым, изменения цвета и других визуальных параметров. Хотя LeanTween формально выполняет свои задачи и заявляет о пятикратном ускорении по сравнению с аналогами, это утверждение не подтверждено доказательствами. Даже если оно верно, работа с библиотекой крайне затруднена из-за ужасного дизайна.
Основная проблема — структура библиотеки: LeanTween — статический класс, содержащий весь код в одном файле. Это снижает читаемость и затрудняет сопровождение кода, приводя к неразберихе из-за закомментированного и условного кода. Использование статического класса, возможно, объясняется стремлением к оптимизации, но вряд ли существенно влияет на производительность. Стиль кода нечитабелен.
Пример использования и проблемы интерфейса
В качестве примера рассмотрим вращение объекта и изменение его альфа-канала с помощью методов LeanTween. Понимание методов и их назначения затруднено, необходимо постоянно обращаться к документации, интерфейс неинтуитивен.
LeanTween использует паттерн Fluent Interface (цепочки вызовов методов), призванный упрощать создание сложных анимаций. Однако реализация неудачна: многие методы ведут себя непредсказуемо, документация неполна и не всегда соответствует действительности. Например, метод setAxis, заявленный как изменяющий направление анимации, не работает для всех типов анимаций. Документация, генерируемая из комментариев в коде, неполна и непонятна.
Кастомные кривые и секвенции
Использование кастомных анимационных кривых затруднено. Секвенции анимаций, позволяющие создавать сложные многоэтапные анимации, также реализованы неудачно. Отсутствует ясный механизм для параллельного выполнения анимаций и синхронизации их завершения. Документация по секвенциям практически отсутствует.
Отсутствие обновлений и заключение
Репозиторий LeanTween не обновлялся с конца 2018 года, что указывает на прекращение разработки. В заключение, рекомендуем использовать более качественные альтернативы. Несмотря на заявленную высокую производительность, LeanTween имеет отвратительный дизайн и неудобный API. Выбор библиотеки только из-за скорости без проверки удобства и качества может привести к серьёзным проблемам в разработке. LeanTween подходит только для простых задач и не годится для больших проектов.