A Swift library that simplifies Core Animation with SpriteKit-like builders for CALayer animations.
Animo is a Swift library that simplifies Core Animation by providing a SpriteKit-like builder API for CALayer animations. It reduces verbose CAAnimation code with a declarative syntax, automatic type conversion, and built-in easing functions. The library solves the pain of manually managing CAAnimationGroups, NSValue boxing, and timing functions.
iOS and macOS developers working with Core Animation who want to write cleaner, more maintainable animation code. It's especially useful for those building complex UI animations or transitioning from SpriteKit's animation style.
Developers choose Animo because it dramatically reduces boilerplate while keeping the full power of Core Animation. Its automatic handling of type conversions and comprehensive easing functions eliminates common pain points, making animation code more readable and less error-prone.
Bring life to CALayers with SpriteKit-like animation builders
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Transforms verbose Core Animation code into a readable, chainable syntax, reducing boilerplate significantly as shown in the README comparison from 10+ lines to just a few.
Includes all easing modes from easings.net and a custom spring implementation, providing rich animation curves out of the box without external dependencies.
Handles boxing of Swift types (like CGPoint) and UIKit objects (like UIColor) automatically, eliminating manual NSValue wrapping and reducing errors.
Offers functions like group, sequence, and autoreverse for building complex animation sequences with minimal code, as demonstrated in the complex example.
Only works with Core Animation on iOS and macOS, making it unsuitable for SwiftUI, cross-platform development, or other animation frameworks without bridging complexity.
Requires external dependency management via CocoaPods, Carthage, or Git submodules, adding setup steps compared to using native Core Animation APIs directly.
As a niche library, it lacks extensive community tutorials, advanced examples, or third-party extensions, which might hinder adoption in larger teams.