Releases: airbnb/lottie-ios
3.4.1
General
New features
- Added
configuration: LottieConfiguration = .shared
option to moreAnimationView
initializers (#1654) AnimatedSwitch
andAnimatedButton
are now accessibility elements by default (#1637, #1639)
Bug fixes
- Fixed issue where
LottieLogger.shared.assertionFailure
would unexpectedly crash in-O
/ release builds (#1665) - Fixed Carthage support on macOS (#1641)
Core Animation rendering engine
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: #1627
New features
- Added support for mixed
isHold
/!isHold
keyframes (#1644) - Added support for gradients with alpha values (#1634, #1640)
- Added support for negative speed values (#1660)
Bug fixes
3.4.0
New features
-
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)
Bug fixes
- Improved performance of Gradient Fill layers (#1558)
- Fixed Carthage support (#1496)
- Avoid automatic animations for rapid opacity changes (#1397)
- Fixed GroupNode empty transform issue (#1372)
- Fixed nil host warning when data url is base64 encoded (#1524)
- Fixed issue where frame parameter was ignored in
AnimationView.init(frame:)
initializer (#1527) - Fixed issue with Polygon rendering (#1537)
- Fixed issue where
layer(for: keypath)
could unexpectedly return nil (#1587) - Improved performance of
BundleImageProvider
by caching images (#1590) - Improved performance of
InvertedMatteLayer
(#1388)
3.3.0
Full Changelog: 3.2.3...3.3.0
- Increased minimum deployment target to iOS 11
- Added Swift Package Manager support for macOS and tvOS (#1428)
- Added parsing support for layers with no index (
ind
) property (#1433) AnimatedSwitch
andAnimatedButton
are nowopen
instead offinal
(#1431)- Fixed issue where shape layers could render at a low resolution (#1436)
- Fixed issue where
AnimationView
'stransform
could animate incorrectly (#1395)
Known issues:
3.3.0
doesn't support Carthage (#1448, fixed onmaster
and in future releases)
3.2.3
3.2.2 Release
A few fixes here including:
- Removing Swift warnings
- Performance fixes
3.2.1 Release
Various Bug Fixes
3.2.0 Release
Various bug fixes and improvements
3.1.9 release
- Add isAnimationPlaying to CompatibleAnimationView
- change id accessor from internal to public
- Updates to Text Rendering
- fix: empty layerID causes crash
- Rewrite Text Rendering to support Line Height + Added Font Provider
- fixed #944 Images from Assets.xcassets are not loading
- Work Around Xcode 12 Beta 1 Compilation Issues
- Add isAnimationQueued to determine if animation will start when this view is added to a window
- Changed ACL for animationView to public in AnimatedControl
3.1.8 Release
Fixes a compile error introduced with 3.1.7 release
3.1.6 Release
- Swift 5 (Thanks https://github.com/airbnb/lottie-ios/commits?author=thejohnlima !)
- Gradient Value Provider support (Thanks https://github.com/airbnb/lottie-ios/commits?author=enriquebk !)
- Precomp clipping fix
- Swift packages fixes
- Layout bug fix (Thanks https://github.com/airbnb/lottie-ios/commits?author=MariuszWisniewski )
- Crashing remove observer bug fix (Thanks https://github.com/airbnb/lottie-ios/commits?author=zenangst )