A Swift animation library for iOS, tvOS, and macOS with a simple, declarative API.
anim is a Swift animation library for iOS, tvOS, and macOS that provides a declarative API for creating and chaining animations. It simplifies the process of building complex animation sequences by wrapping Apple's native animation systems like UIViewPropertyAnimator and NSAnimationContext, reducing boilerplate code and improving readability.
iOS, tvOS, and macOS developers who need to create smooth, complex animations in their apps and prefer a clean, chainable syntax over verbose UIKit/AppKit animation code.
Developers choose anim for its simple, declarative API that makes chaining animations and applying easing functions straightforward, while seamlessly supporting both view-based and Auto Layout animations across Apple platforms.
Swift animation library for iOS, tvOS and macOS.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a clean, chainable API using `anim`, `.then`, and `.wait`, reducing boilerplate code compared to nested UIView.animate calls, as shown in the README examples.
Handles `layoutIfNeeded()` automatically with `anim(constraintParent:)`, making constraint animations straightforward without manual calls, as demonstrated in the documentation.
Includes a variety of easing options like `.easeInOutBack`, eliminating the need to implement custom timing curves, with examples provided in the README.
Leverages `UIViewPropertyAnimator`, `UIView.animate`, or `NSAnimationContext` as appropriate, ensuring smooth animations across iOS, tvOS, and macOS, as stated in the features.
Only supports iOS, tvOS, and macOS, making it unsuitable for cross-platform projects using frameworks like Flutter or React Native, a restriction evident from its platform-specific design.
As a wrapper around native animation systems, it may introduce slight overhead compared to directly using `UIViewPropertyAnimator` or `NSAnimationContext`, though not explicitly mentioned in the README.
Focuses on basic animation chaining and easing; lacks support for more complex scenarios like physics-based animations or integrated gesture recognizers, which are not covered in the documentation.