$ show yapstudios/YapAnimator
YapAnimator is a physics-based animation library for iOS, tvOS, and macOS, written in Swift 3.1. It provides a generic `YapAnimator<T>` class that animates any value conforming to the `Animatable` protocol by decomposing it into an array of doubles and applying spring physics integration with a fixed 1/240s timestep. The library includes a convenience layer (`YapAnimatedLayer`) attached to `CALayer` via associated objects, enabling one-liner animations of layer properties like position, bounds, opacity, transform, etc. The core engine runs on a display link (CADisplayLink on iOS/tvOS, CVDisplayLink on macOS) and manages all active animators. The repository is explicitly archived and no longer maintained, with Swift 3.0/3.1 dependencies and no updates since 2017.
The LLM identified 1 files worth highlighting for reuse:
Defines the `Animatable` protocol that allows any type to be animated by decomposing it into an array of `Double` components. Provides default `zero()` implementation and conformance for common types: `Float`, `Double`, `CGFloat`, `CGPoint`, `CGSize`, `CGRect`, `CGVector`, `CATransform3D`, `UIColor`/`NSColor`. This protocol is self-contained, requires only Foundation and QuartzCore imports, and can be extracted for use in any animation or interpolation system that needs to manipulate arbitrary values as arrays of doubles.