An iOS library to natively render After Effects vector animations
APACHE-2.0 License
Bot releases are hidden (Show)
Published by calda about 2 years ago
Note: Lottie 3.4.0 added a new rendering engine powered by Core Animation. Please try it out and let us know if you encounter any issues! It will be enabled by default in a future version of Lottie. More information is available in this announcement: https://github.com/airbnb/lottie-ios/discussions/1627
fillMode
support to GradientFill
shape items (https://github.com/airbnb/lottie-ios/pull/1702).swift-version
file (https://github.com/airbnb/lottie-ios/pull/1674)assertionFailure
to warn
(https://github.com/airbnb/lottie-ios/pull/1680)isAnimationPlaying
would be incorrect when using LottieLoopMode.playOnce
(https://github.com/airbnb/lottie-ios/pull/1682)InvertedMatteLayer
s wouldn't animate when using Main Thread rendering engine (https://github.com/airbnb/lottie-ios/pull/1684)LayerModel.hidden
and ShapeItem.hidden
flags (https://github.com/airbnb/lottie-ios/pull/1689)MaskMode.none
(https://github.com/airbnb/lottie-ios/pull/1693)RenderingEngineOption.automatic
now falls back to the Main Thread rendering engine when attempting to apply Trim
to Fill
(unsupported by Core Animation rendering engine) (https://github.com/airbnb/lottie-ios/pull/1706)AnimationView.play(fromFrame:toFrame:)
with fromFrame: nil
(https://github.com/airbnb/lottie-ios/pull/1707)AnimationKeypath
s were not applied correctly by Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/1715)GradientFill
/ GradientStroke
would be cut off when using Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/1721)Published by calda about 2 years ago
configuration: LottieConfiguration = .shared
option to more AnimationView
initializers (https://github.com/airbnb/lottie-ios/pull/1654)AnimatedSwitch
and AnimatedButton
are now accessibility elements by default (https://github.com/airbnb/lottie-ios/pull/1637, https://github.com/airbnb/lottie-ios/pull/1639)LottieLogger.shared.assertionFailure
would unexpectedly crash in -O
/ release builds (https://github.com/airbnb/lottie-ios/pull/1665)Reminder: Lottie 3.4.0 added a new rendering engine powered by Core Animation. Please try it out and let us know if you encounter any issues! It will be enabled by default in a future version of Lottie. More information is available in this announcement: https://github.com/airbnb/lottie-ios/discussions/1627
isHold
/ !isHold
keyframes (https://github.com/airbnb/lottie-ios/pull/1644)ShapeLayer
with no Group
s would fail to render (https://github.com/airbnb/lottie-ios/pull/1646)LottieBackgroundBehavior
would unexpectedly be applied even when the animation was paused (#1653)Published by calda over 2 years ago
Added a new animation rendering engine powered by Core Animation (lean more)
When using the new rendering engine, Lottie animations now always smoothly regardless of the amount of work being done on the app’s main thread. This significantly improves animation performance while also eliminating CPU overhead.
The Core Animation rendering engine is currently opt-in, configured by a feature flag (LottieConfiguration.renderingEngine
). In a future major version of Lottie, we plan on enabling the new rendering engine by default.
Due to limitations of Core Animation, not all Lottie animation features are supported by the new rendering engine. Lottie includes a RenderingEngineOption.automatic
option, which detects if an animation can be played correctly using the new rendering engine and otherwise falls back to the legacy main thread rendering engine:
// Can be enabled globally:
// - Use the Core Animation rendering engine if possible,
// otherwise fall back to using the Main Thread rendering engine
LottieConfiguration.shared.renderingEngine = .automatic
// Or when initializing your Animation View:
let animationView = AnimationView(
animation: ...,
configuration: LottieConfiguration(renderingEngine: .automatic))
If you encounter any compatibility issues when using RenderingEngineOption.automatic, please file an issue with a copy of your animation json.
Added new dictionary-based Animation decoding implementation (#1561)
2x faster than the existing Codable
decoding implementation
There may be some compatibility issues with this implementation, so it is currently opt-in, configured by a feature flag (LottieConfiguration.decodingStrategy
):
// Can be enabled globally:
LottieConfiguration.shared.decodingStrategy = .dictionaryBased
// Or when initializing your Animation View:
let animationView = AnimationView(
animation: ...,
configuration: LottieConfiguration(decodingStrategy: .dictionaryBased))
If you encounter any compatibility issues with this new decoding implementation, please file an issue with a copy of your animation json.
Added LottieLogger
type that allows for customizing how Lottie outputs log messages (#1474)
Add keyframe animation support to ValueProviders
API (#1491)
Added support for loading images stored in Asset Catalogs (#1511)
Added support for accessing the original value of an AnimationKeypath (#1559)
Added support for loading animations with “.json” file extension in name (#1561)
AnimationView.init(frame:)
initializer (#1527)layer(for: keypath)
could unexpectedly return nil (#1587)BundleImageProvider
by caching images (#1590)InvertedMatteLayer
(#1388)Published by calda almost 3 years ago
Full Changelog: https://github.com/airbnb/lottie-ios/compare/3.2.3...3.3.0
ind
) property (#1433)AnimatedSwitch
and AnimatedButton
are now open
instead of final
(#1431)AnimationView
's transform
could animate incorrectly (#1395)Known issues:
3.3.0
doesn't support Carthage (#1448, fixed on master
and in future releases)Published by buba447 over 3 years ago
Adds a fix for a bug that caused precomposition layers to have zero sized bounds. This bug furth broke alpha inverted masks in precomposition layers.
Published by buba447 over 3 years ago
A few fixes here including:
Published by buba447 over 3 years ago
Various Bug Fixes
Published by buba447 over 3 years ago
Various bug fixes and improvements
Published by buba447 almost 4 years ago
Published by buba447 over 4 years ago
Fixes a compile error introduced with 3.1.7 release
Published by buba447 over 4 years ago
Published by buba447 almost 5 years ago
Various improvements and bug fixes.
Published by thedrick almost 5 years ago
This fixes a few bugs as well as adds support for animationSpeed setting on AnimatedControl
Published by buba447 about 5 years ago
viewportFrame
setNodeIsEnabled(isEnabled:, keypath:)
Published by buba447 about 5 years ago
Published by buba447 over 5 years ago
Minor improvements and bug fixes.
Published by buba447 over 5 years ago
Adds support for swift 5.
Published by buba447 over 5 years ago
Various bug fixes / Improvements
Published by buba447 over 5 years ago
Published by buba447 over 5 years ago
Added fix for content mode.