YapAnimator alternatives and similar libraries
Based on the "Animation" category.
Alternatively, view YapAnimator alternatives based on common mentions on social networks and blogs.
-
Lottie
An iOS library to natively render After Effects vector animations -
ViewAnimator
ViewAnimator brings your UI to life with just one line -
AnimatedCollectionViewLayout
A UICollectionViewLayout subclass that adds custom transitions/animations to the UICollectionView without effecting your existing code. -
Spruce iOS Animation Library
Swift library for choreographing animations on the screen. -
Gemini
Gemini is rich scroll based animation framework for iOS, written in Swift. -
Transition
Easy interactive interruptible custom ViewController transitions -
DeckTransition
A library to recreate the iOS Apple Music now playing transition -
Motion
A library used to create beautiful animations and transitions for iOS. -
Sica
:deer: Simple Interface Core Animation. Run type-safe animation sequencially or parallelly -
Gagat
A delightful way to transition between visual styles in your iOS applications. -
TransitionableTab
TransitionableTab makes it easy to animate when switching between tab. -
AlertTransition
AlertTransition is a extensible library for making view controller transitions, especially for alert transitions. -
YetAnotherAnimationLibrary
Designed for gesture-driven animations. Fast, simple, & extensible! -
SwipeTransition
Allows trendy transitions using swipe gesture such as "swipe back anywhere". -
SPPerspective
Widgets iOS 14 animation with 3D and dynamic shadow. Customisable transform and duration. -
TheAnimation
Type-safe CAAnimation wrapper. It makes preventing to set wrong type values. -
AKVideoImageView
UIImageView subclass that allows you to display a looped video and dynamically switch it. -
Wobbly
(Animate CSS) animations for iOS. An easy to use library of iOS animations. As easy to use as an easy thing. -
AGInterfaceInteraction
library performs interaction with UI interface -
Poi
Poi makes you use card UI like tinder UI .You can use it like tableview method. -
Disintegrate
Disintegration animation inspired by THAT thing Thanos did at the end of Avengers: Infinity War. -
VariousViewsEffects
Various view's effects for iOS, written in Swift. Allows you to animate views nicely with easy to use extensions. Currently supported animations: Glass Break, Explode, Snowflakes. Every animation is randomized. -
MagicKit
An Advanced and Flexible Framework for Building Engaging Transitions.
Appwrite - The open-source backend cloud platform
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of YapAnimator or a related project?
README
[YapAnimatorLogo](Docs/header.gif)
YapAnimator is your fast and friendly physics-based animation system. YapAnimator was built with ease-of-use in mind, keeping you sane and your designer very, very happy. All animations are interruptable, include completion blocks, and allow you to apply forces to them (e.g. adding the velocity from a gesture in a transition). We've included Animatable
protocol conformance for some commonly animated types (CG
types), but it's really easy to add conformance to any other type. You can animate anything that you can represent and compose with an array of Double
s — view properties, music volume, morphing between bezier paths, colors, smoothing brush strokes, the list goes on… use your imagination!
Why use YapAnimator?
Because it's insanely easy to use and makes beautiful animations, that's why. There are other physics-based animation systems out there (e.g. UIKit's spring animations, Facebook's Pop), but they still require writing too much code, bookkeeping, and hand-holding for our taste. YapAnimator represents a distilled n-th iteration of code that we've been using in our own apps for years. We find it invaluable in our day-to-day and think that you will too.
Built-in Extensions
YapAnimator comes with a handy extension bolted on to CALayer
and UIView
/NSView
, providing one-liner animations under the animatedLayer
and animated
properties, respectively.
[CircleAnimationExample](Docs/squirclemorph.gif)
func handle(gesture: UIPanGestureRecognizer) {
if gesture.state == .began {
squircle.animated.cornerRadius.animate(to: squircle.bounds.width / 2.0)
squircle.animated.rotationZ.animate(to: .pi)
else if gesture.state == .changed {
squircle.animated.position.instant(to: gesture.location(in: nil))
} else if gesture.state == .ended {
squircle.animated.position.animate(to: self.view.center)
squircle.animated.cornerRadius.animate(to: 0)
squircle.animated.rotationZ.animate(to: 0)
}
}
Custom Animators
Creating a custom animator is straightforward:
initialValue
This sets the initial value of the animator and informs it what type it will be animating.willBegin
Called just before motion starts. Return the actual value of the property that you'll be animating. This allows the animator to sync up with that value in case it was changed outside of the scope of the animator. (optional)eachFrame
Called each frame of the animation — this is typically where you'd apply the animator'scurrent.value
to the property that you're animating. You can also use it to check values to trigger other actions / animations.
frameAnimator = YapAnimator(initialValue: square.frame, willBegin: { [unowned self] in
return self.square.frame
}, eachFrame: { [unowned self] (animator) in
self.square.frame = animator.current.value
})
[SquareFrameExample](Docs/squareframe.gif)
frameAnimator.bounciness = 1.5
frameAnimator.animate(to: square.frame.insetBy(dx: -50, dy: -50), completion: { animator, wasInterrupted in
if !wasInterrupted {
// animate back to the original value
animator.animate(to: animator.current.value.insetBy(dx: 50, dy: 50))
}
})
Questions?
Feel free to ask your question in an issue. We will respond there, and amend this read me/start a wiki if the answer seems like it would benefit others.
Credits
YapAnimator is owned and maintained by Yap Studios.