A declarative chainable animation framework for Swift, supporting sequential and parallel animations.
Wave is a declarative animation framework for Swift that allows developers to create complex animations using a chainable syntax. It solves the problem of managing intricate animation sequences by providing a readable way to compose sequential and parallel animations for iOS and macOS apps.
iOS and macOS developers who need to implement complex, multi-step animations in their Swift applications, particularly those working with UIKit or Core Animation.
Developers choose Wave for its declarative, chainable syntax that makes complex animation sequences more readable and maintainable compared to traditional imperative animation code, while supporting both UIView and Core Animation.
:ocean: Declarative chainable animations in Swift
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 framework uses a clear syntax like .sequence([...]) and .parallel([...]), as shown in the README example, making complex animation flows easier to understand and maintain compared to imperative code.
Allows chaining sequences and parallels, enabling precise control over timing and order of multiple animations, which simplifies creating intricate animation workflows.
Compatible with both high-level UIView animations and lower-level Core Animation, providing flexibility for different use cases without locking into a single approach.
Built to be extended with custom animation types, as mentioned in the features, allowing developers to add new behaviors and tailor the framework to specific needs.
The framework is built for UIView and Core Animation, with no evident support for SwiftUI's native animation system, making it less suitable for modern SwiftUI-based apps.
The README provides only a basic usage example without comprehensive API documentation or tutorials, which could hinder adoption and troubleshooting for complex scenarios.
Adding Wave as a dependency introduces external code that might conflict with other libraries or require updates, compared to using built-in Apple frameworks with less maintenance risk.