A chainable, layer-based animation library for Swift 5 that simplifies creating sequential and grouped animations.
Anima is a chainable, layer-based animation library for Swift 5 that simplifies the creation of sequential and grouped animations on iOS. It provides a fluent API to build complex animation sequences with less code, abstracting Core Animation's CAAnimation and CAAnimationGroup complexities. The library solves the problem of verbose and error-prone animation code by offering type-safe animation key paths and a declarative syntax.
iOS developers building apps with custom, complex UI animations who want a more maintainable and readable alternative to raw Core Animation code. It's particularly useful for developers working with CALayer directly or needing fine-grained control over animation timing and grouping.
Developers choose Anima for its chainable API that dramatically reduces boilerplate, its support for both sequential and concurrent animations out of the box, and its type-safe approach that prevents runtime key-path errors. It offers a balance between high-level convenience and low-level Core Animation control.
Anima is chainable Layer-Based Animation library for Swift5.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The fluent .then() syntax allows for clear, sequential animation code, as shown in the README example where multiple animations are chained for complex sequences without nested callbacks.
Prevents runtime errors by using type-safe AnimaType enums, ensuring compile-time validation of animation properties, which is highlighted in the features section.
Implements almost all timing modes from easings.net, providing a wide range of natural motion curves to enhance animation realism without manual implementation.
Leverages CASpringAnimation for physics-based effects, making it easy to add spring animations, as noted in the features list with dedicated spring animation capabilities.
Anima is confined to CALayer animations, so it cannot directly animate UIView properties, requiring extra work for view-based animations and limiting its use in some iOS projects.
The README warns about issues when using .movePath with autoreverse and handling anchor points, indicating potential pitfalls and manual adjustments needed for complex animations.
While it abstracts boilerplate, developers still need to understand underlying Core Animation concepts like anchor points, which might not significantly reduce the learning curve for beginners.