A physics-based animation system for iOS/macOS that makes creating interruptible, force-applicable animations easy.
YapAnimator is a physics-based animation system for iOS and macOS that simplifies creating smooth, interactive animations. It solves the problem of complex animation code by offering an easy-to-use API with features like interruptibility and force application, allowing developers to animate anything from view properties to custom data types.
iOS and macOS developers looking for a flexible, physics-driven animation library to enhance user interfaces with minimal code.
Developers choose YapAnimator for its simplicity and power, as it reduces boilerplate compared to alternatives like UIKit springs or Facebook's Pop, while enabling interruptible animations and custom type support.
Your fast and friendly physics-based animation system.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Animations can be stopped and restarted smoothly without glitches, enabling responsive UIs as shown in gesture-driven examples like the squircle morph.
Supports applying velocities from gestures to animations dynamically, making it ideal for interactive transitions, as demonstrated in the pan gesture handler code snippet.
Can animate any data type by implementing the Animatable protocol with an array of Doubles, extending beyond standard CG properties to custom needs like colors or bezier paths.
Offers one-liner animations via built-in extensions for UIView and CALayer properties (e.g., .animated.cornerRadius), reducing boilerplate compared to UIKit spring animations.
The project is no longer updated, meaning no bug fixes, compatibility with newer iOS versions, or community support, as explicitly noted in the README.
Only targets iOS and macOS, excluding other Apple platforms like watchOS or tvOS, and non-Apple ecosystems, restricting its use in cross-platform projects.
Apple's built-in spring animations in SwiftUI and UIKit now cover most use cases, making YapAnimator less necessary and potentially adding unnecessary dependency overhead.