Animo alternatives and similar libraries
Based on the "Animation" category.
Alternatively, view Animo alternatives based on common mentions on social networks and blogs.
-
SkeletonView
☠️ An elegant way to show users that something is happening and also prepare them to which contents they are awaiting -
IBAnimatable
Design and prototype customized UI, interaction, navigation, transition and animation for App Store ready Apps in Interface Builder with IBAnimatable. -
AnimatedCollectionViewLayout
A UICollectionViewLayout subclass that adds custom transitions/animations to the UICollectionView without effecting your existing code. -
Presentation
:bookmark_tabs: Presentation helps you to make tutorials, release notes and animated pages. -
EasyAnimation
A Swift library to take the power of UIView.animateWithDuration(_:, animations:...) to a whole new level - layers, springs, chain-able animations and mixing view and layer animations together! -
Fluid Slider
:octocat:💧 A slider widget with a popup bubble displaying the precise value selected. Swift UI library made by @Ramotion -
ZoomTransitioning
ZoomTransitioning provides a custom transition with image zooming animation and swiping the screen edge. -
navigation-toolbar
:octocat: Navigation toolbar is a slide-modeled UI navigation controller made by @Ramotion -
CAROUSEL
List a collection of items in a horizontally scrolling view. A scaling factor controls the size of the items relative to the center. -
Garland View
:octocat: ≡ GarlandView seamlessly transitions between multiple lists of content. Swift UI library made by @Ramotion -
SPPerspective
Widgets iOS 14 animation with 3D and dynamic shadow. Customisable transform and duration. -
Numbers Animation
Numbers animation allows you to click on different numbers and accordingly it will animate numbers in a cool way. It has a very attractive UI and is very easy to use. -
SwiftMicroInteractions
easy-to-use micro-interactions combining haptic feedback, sounds, and animations for iOS apps. -
CircularReveal
CircularReveal is a SwiftUI modifier that allows presenting views with a circular animation
SaaSHub - Software Alternatives and Reviews
* 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 Animo or a related project?
README
Animo
Bring life to CALayers with SpriteKit-like animation builders.

Why use Animo?
Because declaring CAAnimations (especially with CAAnimationGroups) is very verbose and tedious.
Animo turns this:
let positionAnimation = CABasicAnimation(keyPath: "position")
positionAnimation.fromValue = NSValue(CGPoint: fromPoint)
positionAnimation.toValue = NSValue(CGPoint: toPoint)
let colorAnimation = CABasicAnimation(keyPath: "backgroundColor")
colorAnimation.fromValue = fromColor.CGColor
colorAnimation.toValue = toColor.CGColor
let animationGroup = CAAnimationGroup()
animationGroup.animations = [positionAnimation, colorAnimation]
animationGroup.fillMode = kCAFillModeForwards
animationGroup.removedOnCompletion = false
animationGroup.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
someView.layer.addAnimation(animationGroup, forKey: "animationGroup")
to this:
someView.layer.runAnimation(
Animo.group(
Animo.move(from: fromPoint, to: toPoint, duration: 1),
Animo.keyPath("backgroundColor", from: fromColor, to: toColor, duration: 1),
timingMode: .EaseInOut,
options: Options(fillMode: .Forwards)
)
)
Feature List
- All timing modes from http://easings.net/ are implemented.
- Choose how to mix your animations with grouping utilities:
group(...)sequence(...)autoreverse(...)wait(...)replay(...)andreplayForever(...)
- No need to box native types and struct types in
NSValues! Animo will do that for you for:Int8Int16Int32Int64UInt8UInt16UInt32UInt64IntUIntCGFloatDoubleFloatCGPointCGSizeCGRectCGAffineTransformCGVectorCATransform3DUIEdgeInsetsUIOffsetNSRange
- No need to bother between
CGColorandUIColor! Animo automatically converts the following types for you so you can just use UIKit objects all the time:UIColor→CGColorUIImage→UIImageUIBezierPath→CGPath
- Don't bother type-casting
M_PIanymore and just use Degrees-to-Radians (and vice-versa) extensions forCGFloat,Double, andFloat!
Here's a slightly complex animation that showcases what else you can do with Animo:
someView.layer.runAnimation(
Animo.sequence( // Runs a list of animations in sequence
Animo.wait(1), // Waits for a certain interval before running the next animation
Animo.replayForever( // Replays the animation endlessly
Animo.sequence(
Animo.move( // Moves the layer's position
by: CGPoint(x: 100, y: 200), // "by", "from", and "to" arguments are supported
duration: 2,
timingMode: .Spring(damping: 1) // simplistic spring function that doesn't rely on physics
),
Animo.rotateDegrees( // Rotates the layer (degrees and radians variants are supported)
by: -180,
duration: 1,
timingMode: .EaseInOutBack
),
Animo.autoreverse( // Auto-reverses the animation
Animo.keyPath(
"cornerRadius", // Any custom KVC key is supported as well!
to: 10,
duration: 1,
timingMode: .EaseInOutBack
)
),
Animo.group( // Runs multiple animations together
Animo.scaleX(
by: 2,
duration: 1,
timingMode: .EaseInOutBack
),
Animo.scaleY(
by: 0.5,
duration: 1,
timingMode: .EaseInOutBack
)
),
Animo.wait(1),
Animo.move(
by: CGPoint(x: -100, y: -200),
duration: 2,
timingMode: .EaseInOutBack
),
Animo.rotateDegrees(
by: 180,
duration: 1,
timingMode: .EaseInOutBack
),
Animo.group(
Animo.scaleX(
to: 1,
duration: 1,
timingMode: .EaseInOutBack
),
Animo.scaleY(
to: 1,
duration: 1,
timingMode: .EaseInOutBack
)
)
)
)
)
)
Install with CocoaPods
Add
pod 'Animo'
to your Podfile and run pod install
Install with Carthage
Add
github "eure/Animo" >= 1.2.0
to your Cartfile and run carthage update
Install as Git Submodule
Run
git submodule add https://github.com/eure/Animo.git <destination directory>
To install as a framework:
Drag and drop Animo.xcodeproj to your project.
To include directly in your app module:
Add all .swift files to your project.
License
Animo is released under an MIT license. See the LICENSE file for more information.
*Note that all licence references and agreements mentioned in the Animo README section above
are relevant to that project's source code only.