Animo alternatives and similar libraries
Based on the "Animation" category.
Alternatively, view Animo alternatives based on common mentions on social networks and blogs.
-
lottie-ios
An iOS library to natively render After Effects vector animations -
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. -
Gemini
Gemini is rich scroll based animation framework for iOS, written in Swift. -
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! -
Presentation
:bookmark_tabs: Presentation helps you to make tutorials, release notes and animated pages. -
DKChainableAnimationKit
Easy to read and write chainable animations in Swift. -
Fluid Slider
:octocat:💧 A slider widget with a popup bubble displaying the precise value selected. Swift UI library made by @Ramotion -
Sica
:deer: Simple Interface Core Animation. Run type-safe animation sequencially or parallelly -
ChainPageCollectionView
A custom View with fancy collectionView animation -
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 -
FlightAnimator
Advanced Natural Motion Animations, Simple Blocks Based Syntax -
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 -
DSGradientProgressView
A simple animated progress bar in Swift -
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. -
Walker
Each step you take reveals a new horizon. You have taken the first step today. -
Poi
Poi makes you use card UI like tinder UI .You can use it like tableview method. -
DottedProgressBar
Simple and powerful animated progress bar with dots -
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.
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 Animo or a related project?
README
Animo
Bring life to CALayers with SpriteKit-like animation builders.
Why use Animo?
Because declaring CAAnimation
s (especially with CAAnimationGroup
s) 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
NSValue
s! Animo will do that for you for:Int8
Int16
Int32
Int64
UInt8
UInt16
UInt32
UInt64
Int
UInt
CGFloat
Double
Float
CGPoint
CGSize
CGRect
CGAffineTransform
CGVector
CATransform3D
UIEdgeInsets
UIOffset
NSRange
- No need to bother between
CGColor
andUIColor
! Animo automatically converts the following types for you so you can just use UIKit objects all the time:UIColor
→CGColor
UIImage
→UIImage
UIBezierPath
→CGPath
- Don't bother type-casting
M_PI
anymore 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.