Swiftpack.co - Swift Packages by airbnb

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.

Packages published by airbnb

airbnb/lottie-ios 4.1.2
An iOS library to natively render After Effects vector animations
⭐️ 23,691
🕓 2 weeks ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
4.1.2
2 weeks ago
> **Note** > Starting in Lottie 4.0, the Core Animation rendering engine is now enabled by default. > Learn more about this change: **[Announcing Lottie 4.0 for iOS](https://medium.com/airbnb-engineering/announcing-lottie-4-0-for-ios-d4d226862a54)** on the Airbnb Tech Blog 4.1.2 fixes an issue where the [lottie-spm](https://github.com/airbnb/lottie-spm) package would fail to build in some environments: https://github.com/airbnb/lottie-spm/pull/5#issuecomment-1398991609, https://github.com/airbnb/lottie-ios/issues/1926#issuecomment-1398866563 ## 4.1.0 release notes We've added a new way to integrate Lottie into your project using Swift Package Manager. We now provide a separate [lottie-spm](https://github.com/airbnb/lottie-spm) repo that is much smaller than the main lottie-ios repo (~500kb instead of ~300mb). Learn more about this change [here](https://github.com/airbnb/lottie-ios#swift-package-manager). ### Improvements and bug fixes * Made DotLottieAnimation attributes optional to simplify Manifest file (https://github.com/airbnb/lottie-ios/pull/1844) * Fix heap buffer overflow in CGColor+RGB extensions (https://github.com/airbnb/lottie-ios/pull/1858) * Add support for display P3 color space (https://github.com/airbnb/lottie-ios/pull/1857) * Add some missing utility to CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1881) * Fix issue where ShapeTransform could incorrectly affect stroke width (https://github.com/airbnb/lottie-ios/pull/1872) * Fix issue where empty trim item would take precedence over non-empty trim item (https://github.com/airbnb/lottie-ios/pull/1875) * Fix issue where some top-level shape items would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1874) * Fix frame setting issue for CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1878) * Gradient Fill Layer: Support strokes (https://github.com/airbnb/lottie-ios/pull/1818) * Change veryLargeRect size to fix issue with masks (https://github.com/airbnb/lottie-ios/pull/1884) * Fix issue where Fill following other Fill would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1888) * Fix issue where negative `scale.x` values didn't render correctly on iOS 14 (https://github.com/airbnb/lottie-ios/pull/1894) * Fix issue where `LottieAnimationView.currentFrame` would be incorrect after playing animation with `LottieLoopMode.playOnce` (https://github.com/airbnb/lottie-ios/pull/1897) * Fix issue where shape items could be applied in incorrect order (https://github.com/airbnb/lottie-ios/pull/1899) * Fix issue where stroke and fill could be rendered in incorrect order (https://github.com/airbnb/lottie-ios/pull/1903) * Fix issue where `play(fromProgress: 1, toProgress: 0)` animation would not actually play (https://github.com/airbnb/lottie-ios/pull/1908) * Add support for skew animations (https://github.com/airbnb/lottie-ios/pull/1917)
4.1.1
2 weeks ago
> **Note** > Starting in Lottie 4.0, the Core Animation rendering engine is now enabled by default. > Learn more about this change: **[Announcing Lottie 4.0 for iOS](https://medium.com/airbnb-engineering/announcing-lottie-4-0-for-ios-d4d226862a54)** on the Airbnb Tech Blog 4.1.1 fixes an issue where the [lottie-spm](https://github.com/airbnb/lottie-spm) package could not be embedded into iOS app builds (#1925), which could cause apps to crash (#1926). ## 4.1.0 release notes We've added a new way to integrate Lottie into your project using Swift Package Manager. We now provide a separate [lottie-spm](https://github.com/airbnb/lottie-spm) repo that is much smaller than the main lottie-ios repo (~500kb instead of ~300mb). Learn more about this change [here](https://github.com/airbnb/lottie-ios#swift-package-manager). ### Improvements and bug fixes * Made DotLottieAnimation attributes optional to simplify Manifest file (https://github.com/airbnb/lottie-ios/pull/1844) * Fix heap buffer overflow in CGColor+RGB extensions (https://github.com/airbnb/lottie-ios/pull/1858) * Add support for display P3 color space (https://github.com/airbnb/lottie-ios/pull/1857) * Add some missing utility to CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1881) * Fix issue where ShapeTransform could incorrectly affect stroke width (https://github.com/airbnb/lottie-ios/pull/1872) * Fix issue where empty trim item would take precedence over non-empty trim item (https://github.com/airbnb/lottie-ios/pull/1875) * Fix issue where some top-level shape items would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1874) * Fix frame setting issue for CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1878) * Gradient Fill Layer: Support strokes (https://github.com/airbnb/lottie-ios/pull/1818) * Change veryLargeRect size to fix issue with masks (https://github.com/airbnb/lottie-ios/pull/1884) * Fix issue where Fill following other Fill would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1888) * Fix issue where negative `scale.x` values didn't render correctly on iOS 14 (https://github.com/airbnb/lottie-ios/pull/1894) * Fix issue where `LottieAnimationView.currentFrame` would be incorrect after playing animation with `LottieLoopMode.playOnce` (https://github.com/airbnb/lottie-ios/pull/1897) * Fix issue where shape items could be applied in incorrect order (https://github.com/airbnb/lottie-ios/pull/1899) * Fix issue where stroke and fill could be rendered in incorrect order (https://github.com/airbnb/lottie-ios/pull/1903) * Fix issue where `play(fromProgress: 1, toProgress: 0)` animation would not actually play (https://github.com/airbnb/lottie-ios/pull/1908) * Add support for skew animations (https://github.com/airbnb/lottie-ios/pull/1917)
4.1.0
2 weeks ago
> **Note** > Starting in Lottie 4.0, the Core Animation rendering engine is now enabled by default. > Learn more about this change: **[Announcing Lottie 4.0 for iOS](https://medium.com/airbnb-engineering/announcing-lottie-4-0-for-ios-d4d226862a54)** on the Airbnb Tech Blog We've added a new way to integrate Lottie into your project using Swift Package Manager. We now provide a separate [lottie-spm](https://github.com/airbnb/lottie-spm) repo that is much smaller than the main lottie-ios repo (~500kb instead of ~300mb). Learn more about this change [here](https://github.com/airbnb/lottie-ios#swift-package-manager). ### Improvements and bug fixes * Made DotLottieAnimation attributes optional to simplify Manifest file (https://github.com/airbnb/lottie-ios/pull/1844) * Fix heap buffer overflow in CGColor+RGB extensions (https://github.com/airbnb/lottie-ios/pull/1858) * Add support for display P3 color space (https://github.com/airbnb/lottie-ios/pull/1857) * Add some missing utility to CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1881) * Fix issue where ShapeTransform could incorrectly affect stroke width (https://github.com/airbnb/lottie-ios/pull/1872) * Fix issue where empty trim item would take precedence over non-empty trim item (https://github.com/airbnb/lottie-ios/pull/1875) * Fix issue where some top-level shape items would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1874) * Fix frame setting issue for CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1878) * Gradient Fill Layer: Support strokes (https://github.com/airbnb/lottie-ios/pull/1818) * Change veryLargeRect size to fix issue with masks (https://github.com/airbnb/lottie-ios/pull/1884) * Fix issue where Fill following other Fill would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1888) * Fix issue where negative `scale.x` values didn't render correctly on iOS 14 (https://github.com/airbnb/lottie-ios/pull/1894) * Fix issue where `LottieAnimationView.currentFrame` would be incorrect after playing animation with `LottieLoopMode.playOnce` (https://github.com/airbnb/lottie-ios/pull/1897) * Fix issue where shape items could be applied in incorrect order (https://github.com/airbnb/lottie-ios/pull/1899) * Fix issue where stroke and fill could be rendered in incorrect order (https://github.com/airbnb/lottie-ios/pull/1903) * Fix issue where `play(fromProgress: 1, toProgress: 0)` animation would not actually play (https://github.com/airbnb/lottie-ios/pull/1908) * Add support for skew animations (https://github.com/airbnb/lottie-ios/pull/1917)
4.0.1
8 weeks ago
4.0.1 fixes an issue in 4.0.0 where the install could fail due to issues with Git LFS: #1830, #1834. We now publish `xframework` binaries as a part of our release process: https://github.com/airbnb/lottie-ios/discussions/1807#discussioncomment-4346438 ## Major changes in Lottie 4.0 Learn more about this release: **[Announcing Lottie 4.0 for iOS](https://medium.com/airbnb-engineering/announcing-lottie-4-0-for-ios-d4d226862a54)** on the Airbnb Tech Blog * The new Core Animation rendering engine ([first introduced in Lottie 3.4.0](https://github.com/airbnb/lottie-ios/discussions/1627)) is now enabled by default for supported animations. * Specifically, `LottieConfiguration.shared.renderingEngine` now defaults to `.automatic` instead of `.mainThread`. Animations that use features which are not supported by the Core Animation rendering engine will automatically fall back to using the original Main Thread rendering engine. * When using the Core Animation rendering engine, Lottie animations now always animate 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. * If you encounter any compatibility issues when using `RenderingEngineOption.automatic`, please file an issue with a copy of your animation json. * `DecodingStrategy.dictionaryBased` is now enabled by default * The new dictionary-based decoding implementation is 2x faster than the previous `Codable` decoding implementation * If you encounter any compatibility issues with this new decoding implementation, please file an issue with a copy of your animation json. * Backwards compatibility typealiases for `Animation`, `AnimationView`, `Color`, `Vector1D`, `Vector2D`, and `Vector3D`, which were introduced in [Lottie 3.5.0](https://github.com/airbnb/lottie-ios/releases), have been removed to resolve conflicts with types in Apple frameworks. These types are now named `LottieAnimation`, `LottieAnimationView`, `LottieColor`, `LottieVector1D`, `LottieVector2D`, and `LottieVector3D`. * The default `LottieBackgroundBehavior` used by `LottieAnimationView` is now `.pauseAndRestore` instead of `pause`. * Lottie for iOS now supports the [dotLottie file format](https://dotlottie.io/). * The library's minimum-supported Swift version is now Swift 5.5. XCFramework checksum: b6d8b0b81975d91965b8bb00cffb0eae4b3d94538b6950a90bc1366afd5d4239
4.0.0
9 weeks ago
Learn more about this release: **[Announcing Lottie 4.0 for iOS](https://medium.com/airbnb-engineering/announcing-lottie-4-0-for-ios-d4d226862a54)** on the Airbnb Tech Blog ## Major changes * The new Core Animation rendering engine ([first introduced in Lottie 3.4.0](https://github.com/airbnb/lottie-ios/discussions/1627)) is now enabled by default for supported animations. * Specifically, `LottieConfiguration.shared.renderingEngine` now defaults to `.automatic` instead of `.mainThread`. Animations that use features which are not supported by the Core Animation rendering engine will automatically fall back to using the original Main Thread rendering engine. * When using the Core Animation rendering engine, Lottie animations now always animate 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. * If you encounter any compatibility issues when using `RenderingEngineOption.automatic`, please file an issue with a copy of your animation json. * `DecodingStrategy.dictionaryBased` is now enabled by default * The new dictionary-based decoding implementation is 2x faster than the previous `Codable` decoding implementation * If you encounter any compatibility issues with this new decoding implementation, please file an issue with a copy of your animation json. * Backwards compatibility typealiases for `Animation`, `AnimationView`, `Color`, `Vector1D`, `Vector2D`, and `Vector3D`, which were introduced in [Lottie 3.5.0](https://github.com/airbnb/lottie-ios/releases), have been removed to resolve conflicts with types in Apple frameworks. These types are now named `LottieAnimation`, `LottieAnimationView`, `LottieColor`, `LottieVector1D`, `LottieVector2D`, and `LottieVector3D`. * The default `LottieBackgroundBehavior` used by `LottieAnimationView` is now `.pauseAndRestore` instead of `pause`. * Lottie for iOS now supports the [dotLottie file format](https://dotlottie.io/). * The library's minimum-supported Swift version is now Swift 5.5. ## Full changelog * Use `RenderingEngineOption.automatic` by default by @calda in https://github.com/airbnb/lottie-ios/pull/1764 * Fix issue where inverted mask layer was clipped incorrectly by @calda in https://github.com/airbnb/lottie-ios/pull/1763 * Bump to 4.0.0, remove backwards compatibility typealiases by @calda in https://github.com/airbnb/lottie-ios/pull/1768 * Update `LottieBackgroundBehavior.default` from `.pause` to `.pauseAndRestore` for Main Thread rendering engine by @calda in https://github.com/airbnb/lottie-ios/pull/1770 * Adds ability to not play the frame of the end marker (#1758) by @lennartstolz in https://github.com/airbnb/lottie-ios/pull/1772 * Change LottieAnimationHelpers default animation cache to LRUAnimationCache.shared (#1773) by @pejato in https://github.com/airbnb/lottie-ios/pull/1778 * Update LottieConfiguration to use DecodingStrategy.dictionaryBased by default by @marcelofabri in https://github.com/airbnb/lottie-ios/pull/1777 * Allow customizing default AnimationCacheProvider by @marcelofabri in https://github.com/airbnb/lottie-ios/pull/1779 * Replace LRUAnimationCache with a thread-safe NSCache-based cache by @marcelofabri in https://github.com/airbnb/lottie-ios/pull/1783 * Update minimum Swift version to 5.5 by @calda in https://github.com/airbnb/lottie-ios/pull/1787 * Adds .lottie file load capability to LottieAnimation by @eharrison in https://github.com/airbnb/lottie-ios/pull/1785 * Add Rounded Corners by @johnny-duo in https://github.com/airbnb/lottie-ios/pull/1795 * Add rounded corner support to Core Animation rendering engine by @calda in https://github.com/airbnb/lottie-ios/pull/1796 * Add support for animating `startPoint` and `endPoint` of radial gradients by @calda in https://github.com/airbnb/lottie-ios/pull/1798 * Update Core Animation rendering engine to use device RGB color space by @calda in https://github.com/airbnb/lottie-ios/pull/1801 * added mask to bounds flag by @BugorBN in https://github.com/airbnb/lottie-ios/pull/1814 * Add completion callbacks to LottieAnimationView DotLottie initializers by @calda in https://github.com/airbnb/lottie-ios/pull/1810
3.5.0
17 weeks 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 Lottie 4.0, which we plan on releasing later this month. More information is available in this announcement: https://github.com/airbnb/lottie-ios/discussions/1627 ### Lottie 3.5.0 This version renames several public types, to resolve conflicts with types in Apple frameworks (https://github.com/airbnb/lottie-ios/issues/1420): - `Lottie.Animation` has been renamed to `LottieAnimation`, to resolve a conflict with [`SwiftUI.Animation`](https://developer.apple.com/documentation/swiftui/animation) - `Lottie.Color` has been renamed to `LottieColor`, to resolve a conflict with [`SwiftUI.Color`](https://developer.apple.com/documentation/swiftui/color) - `Lottie.Vector3D` has been renamed to `LottieVector3D`, to resolve a conflict with [`Spatial.Vector3D`](https://developer.apple.com/documentation/spatial/vector3d?changes=latest_major) For consistency with these new names, we have also renamed the following public types: - `Lottie.AnimationView` has been renamed to `LottieAnimationView` - `Lottie.Vector1D` has been renamed to `LottieVector1D` - `Lottie.Vector2D` has been renamed to `LottieVector2D`. For backwards compatibility Lottie 3.5.0 includes `typealias`es for the old names, which map to the new names. These `typealias`es are marked as deprecated and include fix-its to update call-sites to the new name. ### Lottie 4.0 We plan on releasing **Lottie 4.0** in the next few weeks. In Lottie 4.0 we will remove the compatibility typealiases (for `Animation`, `AnimationView`, `Color`, etc) , so code using the old names will no longer compile. This will resolve the naming conflicts with SwiftUI types. Consider updating to Lottie 3.5.0 first, applying the fix-its recommended by the deprecation warnings, and then update to Lottie 4.0 once it is released (Lottie 4.0 will no longer include deprecation warnings with fix-its). Thank you for bearing with us through this transition process! Lottie 4.0 will also make the new Core Animation rendering engine ([added in Lottie 3.4.0](https://github.com/airbnb/lottie-ios/discussions/1627)) the default rendering engine option. As mentioned above, please try out the new rendering engine if you haven't yet and let us know if you encounter any issues! We've been hard at work fixing issues reported by the community. ### Known issues If your application has a storyboard that references `AnimationView`, it may crash when using Lottie 3.5.0 (https://github.com/airbnb/lottie-ios/issues/1771). The fix for this issue is to update all references of `AnimationView` to `LottieAnimationView` and update all references of `Animation` to `LottieAnimation`. This should be resolved in Lottie 4.0, where code using the old names will no longer compile.
3.4.4
17 weeks 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 Lottie 4.0, which we plan on releasing later this month. More information is available in this announcement: https://github.com/airbnb/lottie-ios/discussions/1627 ## What's Changed * Updated Main Thread rendering engine to use `warn` (`print`) instead of `assertionFailure` when detecting unsupported usage of repeaters (https://github.com/airbnb/lottie-ios/pull/1754) * Fixed issue where manually-interpolated shape animations would ignore time remapping (https://github.com/airbnb/lottie-ios/pull/1757) * Added marker duration support (https://github.com/airbnb/lottie-ios/pull/1749) * Updated `animationDidSet` to be `open` (https://github.com/airbnb/lottie-ios/pull/1746) * Updated `AnimatedSwitch` and `AnimatedButton` to allow overrides of begin/end tracking in subclasses (https://github.com/airbnb/lottie-ios/pull/1747) * Added `animateUpdateWhenChangingAnimation` flag to `AnimatedControl` (https://github.com/airbnb/lottie-ios/pull/1750)
3.4.3
23 weeks 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 ## New Features * Updated Core Animation rendering engine to support `TextProvider`s (https://github.com/airbnb/lottie-ios/pull/1723) * Updated Core Animation rendering engine to support time stretch in pre-comp layers (https://github.com/airbnb/lottie-ios/pull/1726) * Updated `Animation.loadedFrom` method to support using a custom `URLSession` (https://github.com/airbnb/lottie-ios/pull/1733) ## Bug fixes * Fixed performance issue with line dash patterns (https://github.com/airbnb/lottie-ios/pull/1736) * Fixed race condition in Core Animation rendering engine's `playbackState` property (https://github.com/airbnb/lottie-ios/pull/1727) * Fixed issue where Core Animation rendering engine would ignore `hidden` flag on some shape items (https://github.com/airbnb/lottie-ios/pull/1728) * Fixed issue where Core Animation rendering engine would ignore `CAGradientLayer` locations / color stops (https://github.com/airbnb/lottie-ios/pull/1734) * Fixed issue where Core Animation rendering engine would not render alpha gradient (https://github.com/airbnb/lottie-ios/pull/1737)
3.4.2
25 weeks 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 ## New features * Added support for Repeater shape items to Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/1688) * Added support for inverted matte layers to Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/1712) * Added `fillMode` support to `GradientFill` shape items (https://github.com/airbnb/lottie-ios/pull/1702) * Added support for non-integer animation widths/heights (https://github.com/airbnb/lottie-ios/pull/1694) ## Bug fixes * Fixed CocoaPods installation issue by removing `.swift-version` file (https://github.com/airbnb/lottie-ios/pull/1674) * Changeed default behavior when bundle image is not found from `assertionFailure` to `warn` (https://github.com/airbnb/lottie-ios/pull/1680) * Fixed issue where `isAnimationPlaying` would be incorrect when using `LottieLoopMode.playOnce` (https://github.com/airbnb/lottie-ios/pull/1682) * Fixed regression where `InvertedMatteLayer`s wouldn't animate when using Main Thread rendering engine (https://github.com/airbnb/lottie-ios/pull/1684) * Core Animation rendering engine now respects `LayerModel.hidden` and `ShapeItem.hidden` flags (https://github.com/airbnb/lottie-ios/pull/1689) * Fixed where strokes would not appear under certain conditions (https://github.com/airbnb/lottie-ios/pull/1691) * Core Animation rendering engine now supports animating multiple properties of shape bezier paths (https://github.com/airbnb/lottie-ios/pull/1690) * Core Animation rendering engine now correctly Ignores masks with `MaskMode.none` (https://github.com/airbnb/lottie-ios/pull/1693) * Fixed issue where Core Animation engine would render negative stroke offsets incorrectly (https://github.com/airbnb/lottie-ios/pull/1698) * Improved shape fill behavior for overlapping shapes when using Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/1699) * Fixed issue that caused text layer descenders to be cut off when using some fonts https://github.com/airbnb/lottie-ios/pull/1697 * `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) * Fixed bug in `AnimationView.play(fromFrame:toFrame:)` with `fromFrame: nil` (https://github.com/airbnb/lottie-ios/pull/1707) * Fixed issue where some spatial keyframes would be ignored by Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/1714) * Fixed issue where certain `AnimationKeypath`s were not applied correctly by Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/1715) * Fixed issue where stroke with dash pattern could unexpectedly be rendered as pills instead of circles (https://github.com/airbnb/lottie-ios/pull/1718) * Fixed issue where large `GradientFill` / `GradientStroke` would be cut off when using Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/1721)
3.4.1
28 weeks ago
## General ### New features - Added `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) ### Bug fixes - Fixed issue where `LottieLogger.shared.assertionFailure` would unexpectedly crash in `-O` / release builds (https://github.com/airbnb/lottie-ios/pull/1665) - Fixed Carthage support on macOS (https://github.com/airbnb/lottie-ios/pull/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: https://github.com/airbnb/lottie-ios/discussions/1627 ### New features - Added support for mixed `isHold` / `!isHold` keyframes (https://github.com/airbnb/lottie-ios/pull/1644) - Added support for gradients with alpha values (https://github.com/airbnb/lottie-ios/pull/1634, https://github.com/airbnb/lottie-ios/pull/1640) - Added support for negative speed values (https://github.com/airbnb/lottie-ios/pull/1660) ### Bug fixes - Fixed issue where `ShapeLayer` with no `Group`s would fail to render (https://github.com/airbnb/lottie-ios/pull/1646) - Fixed issue where some shape fills would be applied incorrectly (https://github.com/airbnb/lottie-ios/pull/1647) - Fixed issue where `LottieBackgroundBehavior` would unexpectedly be applied even when the animation was paused (#1653)
iOS macOS tvOS
airbnb/MagazineLayout v1.6.11
A collection view layout capable of laying out views in vertically scrolling grids and lists.
⭐️ 3,132
🕓 26 weeks ago
iOS tvOS
airbnb/HorizonCalendar v1.16.0
A declarative, performant, iOS calendar UI component that supports use cases ranging from simple date pickers all the way up to fully-featured calendar apps.
⭐️ 2,270
🕓 1 week ago
iOS
airbnb/epoxy-ios 0.9.0
Epoxy is a suite of declarative UI APIs for building UIKit applications in Swift
⭐️ 962
🕓 15 weeks ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
0.9.0
15 weeks ago
### Changed - Remove all of the `EpoxyableView` flavors of `MeasuringUIViewRepresentable` in favor of a single shared `SwiftUIUIView` that supports a generic `Storage`, which has the added benefit of fixing some Xcode preview crashes. ### Fixed - Improved double layout pass heuristics for views that have intrinsic size dimensions below 1 or for views that have double layout pass subviews that aren't horizontally constrained to the edges. - Fixed `HGroupItem` and `VGroupItem` not respecting some properties of the style that is passed in. - Improved sizing of intrinsically sized `UIView`s in SwiftUI with no intrinsic metric size proposals. - Add extra logic for mitigating proposed sizes that match previous intrinsic size for hosted `UIView`s in SwiftUI.
0.8.0
27 weeks ago
### Added - Added `SwiftUIMeasurementContainer` for calculating the ideal height of a `UIView` for wrapping for SwiftUI usage. - Added `MeasuringUIViewRepresentable` as a convenience API for measuring a `UIView` within a `UIViewRepresentable` using an enclosing `SwiftUIMeasurementContainer`. - Added a method to `CollectionViewReorderingDelegate` to check the reordering destination is expected. - Added the ability to pass a `CollectionViewConfiguration` to the `CollectionViewController` initializers. - Added additional sizing behaviors to `SwiftUIMeasurementContainer` for sizing `UIView`s hosted in a SwiftUI `View`. - Added a static `swiftUIView(…)` method to `UIView` for hosting UIKit views that aren't `EpoxyableView`s while still leveraging the layout helpers. - Added support for calling `configure { _ in }` on the SwiftUI `View` resulting from a `swiftUIView(…)` invocation to perform additional configuration of the `UIView` instance. - Added `LayoutGroupUpdateAnimation` for customizing `Group` animated updates. - Added support for `WillDisplay` callbacks to be added to type-erased `AnyBarModel` types. ### Fixed - Fixed sizing of reused `EpoxySwiftUIHostingController`s on iOS 15.2+. - Fixed crash in `ScrollToItemHelper` caused by `preferredFrameRateRanges` on devices running iOS 15.0 (this issue is not present in devices on 15.1+) - Fixed an ambiguous layout issue when using `LayoutSpacer` without a `fixedWidth` or `fixedHeight`. - Gracefully support cases where a `SwiftUIMeasurementContainer` with an `intrinsicSize` `SwiftUIMeasurementContainerStrategy` has an intrinsic size that exceeds the proposed size by compressing rather than overflowing, which could result in broken layouts. - Fixed intrinsic size invalidation triggered by a SwiftUI view from within a collection view cell by invalidating the enclosing collection view layout. - Fixed an issue where `EpoxyLogger.shared.assertionFailure` and `EpoxyLogger.shared.assert` would unexpectedly crash in release builds. ### Changed - Updated name of `Spacer` to `LayoutSpacer` to avoid name conflict with SwiftUI's `Spacer` - Updated to have Swift 5.4 as the minimum supported Swift version (previously Swift 5.3). - Updated `HGroupView` and `VGroupView` to have `insetsLayoutMarginsFromSafeArea = false` by default - Gated an old autoresizing-mask-related bug workaround to only run on iOS versions 13 and below - The `swiftUIView(…)` methods now default to an automatic sizing behavior that makes a best effort at sizing the view based on heuristics, rather than defaulting to intrinsic height and proposed width.
0.7.0
1 year ago
### Added - Added a weak reference from `TopBarContainer` / `BottomBarContainer` to their parent bar installer - Added a `BarInstallerConfiguration` type to allow both global and per-instance configuration of bar installers. - Added an `applyBars` closure to `BarInstallerConfiguration` to allow consumers to configure _when_ bars are applied to the underlying `BarContainer` by a bar installer, e.g. to defer bar model updates that might conflict with an in-flight shared element transition. - Support for hitting 120 FPS on iPhone ProMotion displays when programmatically scrolling to an item in a collection view. - Added `itemModel(…)`, `barModel(…)` methods to host a SwiftUI `View` within an Epoxy container and the `swiftUIView(…)` method to host an `EpoxyableView` within a SwiftUI `View` - Added a SwiftUI environment value for requesting size invalidation of the containing Epoxy collection view cell. ### Fixed - Fixes an issue that could cause `CollectionView` scroll animation frames to have an incorrect content offset when paired with a non-zero `adjustedContentInset`. - Fixes an issue that could cause `VGroupView` and `HGroupView` to grow too tall when nested in containers that give them a larger height than their natural height. - Fixes a bug in the `KeyboardPositionWatcher` that would consider an even slightly offscreen view as having a keyboard overlap when the keyboard is dismissed, resulting in incorrect keyboard offsets. - Fixes an issue when mutating state synchronously does not pick up the current SwiftUI transaction. - Fixes a bug where the `avoidsKeyboard` parameter would be disregarded in a `BottomBarInstaller` initializer. ### Changed - Removed the default bar installer behavior where bar model updates were deferred while a view controller transition is in progress.
0.6.0
1 year ago
### Added - Added an `insetMargins` property to `TopBarContainer` and `BottomBarContainer` that configures whether or not the container sets layout margins derived from the `safeAreaInsets` of its `viewController`. ### Fixed - Fixed incorrect assertion logging when accessing an item with an invalid index path. - Mitigated a `EXC_BAD_ACCESS` crash that caused by a bad `nonnull` bridge in `CollectionViewCell`. - Fixed an issue where styles were not being used in the `diffIdentifier` calculation of `GroupItems`. ### Changed - The `SectionModel` initializer now requires a `dataID` to make it harder to have sections with duplicate identity that causes a runtime warning and potentially unexpected diffing behavior.
0.5.0
1 year ago
### Added - Added an `UpdateStrategy` to `CollectionView` to allow specifying that it should update using non- animated `performBatchUpdates(…)`, which can be more performant and behave more predictably than `reloadData()`. - Added `reflowsForAccessibilityTypeSizes` and `forceVerticalAccessibilityLayout` properties to `HGroup.Style`. ### Fixed - Improved `CollectionView` logic for deciding when to `reloadData(…)` over `performBatchUpdates(…)` in specific scenarios. - Fixed an issue where the `accessibilityAlignment` property of `HGroup` was not being respected. - Fixed an issue where `accessibilityAlignment` and `horizontalAlignment` would overwrite one another - Break a temporary retain cycle in `.system` presentation style ### Changed - `CollectionViewConfiguration.usesBatchUpdatesForAllReloads` now defaults to `true`. - Changed `CollectionViewConfiguration` from an immutable `class` to a `struct` to make it easier to modify an existing configuration.
0.4.0
1 year ago
### Added - Added an example with text field to show how can we use `avoidsKeyboard` feature - Add EpoxyLayoutGroups, a declarative API for creating components ### Fixed - `AnyItemModel` is selectable when there are no `DidSelect` callbacks on the underlying model
0.3.0
1 year ago
### Added - Added support for `Array` and `Optional` expressions to model result builders - Added support for `Optional` expressions to `PresentationModel` result builders - Made `AnyItemModel` and `AnySupplementaryItemModel` conform to `DidChangeStateProviding`, `DidChangeStateProviding` and `SetBehaviorsProviding` - Made `AnyItemModel`, `AnySupplementaryItemModel`, and `AnyBarModel` conform to `StyleIDProviding` - Adds a `keyboardContentInsetAdjustment` property to `UIScrollView` with the amount that the that its `contentInset.bottom` has been adjusted to accommodate for the keyboard by a `KeyboardPositionWatcher` - Made `ItemSelectionStyle` conform to `Hashable` - `ReuseIDStore` has a new method to vend a previously registered reuse ID, `registeredReuseID(for:)` ### Fixed - Bar installers gracefully handle redundant calls to install/uninstall - `CollectionView` more gracefully handles styleID mutations after registration ### Changed - `ReuseIDStore.registerReuseID(for:)` has been renamed to `ReuseIDStore.reuseID(byRegistering:)`
0.2.0
1 year ago
### Added - Added result builders for `SectionModel`, `ItemModel`, `BarModel`, `PresentationModel`, and `NavigationModel` - Added initializers and methods to `CollectionViewController` that take an array of `ItemModel`s and transparently wrap them in a `SectionModel` for consumers. ### Changed - Updated public let properties of public structs with memberwise initializers to be public var - `BarStackView` now handles selection of bar models and can be used as an `EpoxyableView` - The cases of `BarStackView.ZOrder` have been renamed to be more semantically accurate - Enables `CollectionView` prefetching by default, as the issues preventing it from being enabled by default are now resolved in recent iOS versions - Support animated moves in `BarStackView` - Fixed ordering when inserting and removing bar models - Crossfade between bars of the same view type with different style IDs in `BarStackView`
iOS
airbnb/ResilientDecoding 1.1.0
This package makes your Decodable types resilient to decoding errors and allows you to inspect those errors.
⭐️ 560
🕓 2 weeks ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
1.1.0
2 years ago
- Simplified error reporting - Fixed a bug with URL decoding - Enabled custom types to report errors via `ResilientDecodingErrorReporter`
1.0
2 years ago
# Resilient Decoding hits 1.0! ### API-breaking changes: * `flushReportedErrors()` now vends an `ErrorDigest` instead of `[Error]`. ### Added functionality: * `ErrorDigest` can be used to pretty-print reported errors _after_ checking whether any errors were encountered. * `Resilient` properties now provide an `outcome` via the projected value (`$property.outcome`) which is similar to `$property.error` but also communicates non-error events, like a missing key for an optional value. * `Resilient` can now be applied to `Dictionary`, which behaves similarly to `Array` (elements are omitted as errors are encountered)
iOS macOS watchOS tvOS
airbnb/lottie-spm 4.1.2
Swift Package Manager support for Lottie, an iOS library to natively render After Effects vector animations
⭐️ 45
🕓 2 weeks ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
4.1.2
2 weeks ago
> **Note** > Starting in Lottie 4.0, the Core Animation rendering engine is now enabled by default. > Learn more about this change: **[Announcing Lottie 4.0 for iOS](https://medium.com/airbnb-engineering/announcing-lottie-4-0-for-ios-d4d226862a54)** on the Airbnb Tech Blog 4.1.2 fixes an issue where the [lottie-spm](https://github.com/airbnb/lottie-spm) package would fail to build in some environments: https://github.com/airbnb/lottie-spm/pull/5#issuecomment-1398991609, https://github.com/airbnb/lottie-ios/issues/1926#issuecomment-1398866563 ## 4.1.0 release notes We've added a new way to integrate Lottie into your project using Swift Package Manager. We now provide a separate [lottie-spm](https://github.com/airbnb/lottie-spm) repo that is much smaller than the main lottie-ios repo (~500kb instead of ~300mb). Learn more about this change [here](https://github.com/airbnb/lottie-ios#swift-package-manager). ### Improvements and bug fixes * Made DotLottieAnimation attributes optional to simplify Manifest file (https://github.com/airbnb/lottie-ios/pull/1844) * Fix heap buffer overflow in CGColor+RGB extensions (https://github.com/airbnb/lottie-ios/pull/1858) * Add support for display P3 color space (https://github.com/airbnb/lottie-ios/pull/1857) * Add some missing utility to CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1881) * Fix issue where ShapeTransform could incorrectly affect stroke width (https://github.com/airbnb/lottie-ios/pull/1872) * Fix issue where empty trim item would take precedence over non-empty trim item (https://github.com/airbnb/lottie-ios/pull/1875) * Fix issue where some top-level shape items would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1874) * Fix frame setting issue for CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1878) * Gradient Fill Layer: Support strokes (https://github.com/airbnb/lottie-ios/pull/1818) * Change veryLargeRect size to fix issue with masks (https://github.com/airbnb/lottie-ios/pull/1884) * Fix issue where Fill following other Fill would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1888) * Fix issue where negative `scale.x` values didn't render correctly on iOS 14 (https://github.com/airbnb/lottie-ios/pull/1894) * Fix issue where `LottieAnimationView.currentFrame` would be incorrect after playing animation with `LottieLoopMode.playOnce` (https://github.com/airbnb/lottie-ios/pull/1897) * Fix issue where shape items could be applied in incorrect order (https://github.com/airbnb/lottie-ios/pull/1899) * Fix issue where stroke and fill could be rendered in incorrect order (https://github.com/airbnb/lottie-ios/pull/1903) * Fix issue where `play(fromProgress: 1, toProgress: 0)` animation would not actually play (https://github.com/airbnb/lottie-ios/pull/1908) * Add support for skew animations (https://github.com/airbnb/lottie-ios/pull/1917)
4.1.1
2 weeks ago
> **Note** > Starting in Lottie 4.0, the Core Animation rendering engine is now enabled by default. > Learn more about this change: **[Announcing Lottie 4.0 for iOS](https://medium.com/airbnb-engineering/announcing-lottie-4-0-for-ios-d4d226862a54)** on the Airbnb Tech Blog 4.1.1 fixes an issue where the [lottie-spm](https://github.com/airbnb/lottie-spm) package could not be embedded into iOS app builds (airbnb/lottie-ios#1925), which could cause apps to crash (airbnb/lottie-ios#1925). ## 4.1.0 release notes We've added a new way to integrate Lottie into your project using Swift Package Manager. We now provide a separate [lottie-spm](https://github.com/airbnb/lottie-spm) repo that is much smaller than the main lottie-ios repo (~500kb instead of ~300mb). Learn more about this change [here](https://github.com/airbnb/lottie-ios#swift-package-manager). ### Improvements and bug fixes * Made DotLottieAnimation attributes optional to simplify Manifest file (https://github.com/airbnb/lottie-ios/pull/1844) * Fix heap buffer overflow in CGColor+RGB extensions (https://github.com/airbnb/lottie-ios/pull/1858) * Add support for display P3 color space (https://github.com/airbnb/lottie-ios/pull/1857) * Add some missing utility to CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1881) * Fix issue where ShapeTransform could incorrectly affect stroke width (https://github.com/airbnb/lottie-ios/pull/1872) * Fix issue where empty trim item would take precedence over non-empty trim item (https://github.com/airbnb/lottie-ios/pull/1875) * Fix issue where some top-level shape items would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1874) * Fix frame setting issue for CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1878) * Gradient Fill Layer: Support strokes (https://github.com/airbnb/lottie-ios/pull/1818) * Change veryLargeRect size to fix issue with masks (https://github.com/airbnb/lottie-ios/pull/1884) * Fix issue where Fill following other Fill would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1888) * Fix issue where negative `scale.x` values didn't render correctly on iOS 14 (https://github.com/airbnb/lottie-ios/pull/1894) * Fix issue where `LottieAnimationView.currentFrame` would be incorrect after playing animation with `LottieLoopMode.playOnce` (https://github.com/airbnb/lottie-ios/pull/1897) * Fix issue where shape items could be applied in incorrect order (https://github.com/airbnb/lottie-ios/pull/1899) * Fix issue where stroke and fill could be rendered in incorrect order (https://github.com/airbnb/lottie-ios/pull/1903) * Fix issue where `play(fromProgress: 1, toProgress: 0)` animation would not actually play (https://github.com/airbnb/lottie-ios/pull/1908) * Add support for skew animations (https://github.com/airbnb/lottie-ios/pull/1917)
4.1.0
2 weeks ago
> **Note** > Starting in Lottie 4.0, the Core Animation rendering engine is now enabled by default. > Learn more about this change: **[Announcing Lottie 4.0 for iOS](https://medium.com/airbnb-engineering/announcing-lottie-4-0-for-ios-d4d226862a54)** on the Airbnb Tech Blog We've added a new way to integrate Lottie into your project using Swift Package Manager. We now provide a separate [lottie-spm](https://github.com/airbnb/lottie-spm) repo that is much smaller than the main lottie-ios repo (~500kb instead of ~300mb). Learn more about this change [here](https://github.com/airbnb/lottie-ios#swift-package-manager). ### Improvements and bug fixes * Made DotLottieAnimation attributes optional to simplify Manifest file (https://github.com/airbnb/lottie-ios/pull/1844) * Fix heap buffer overflow in CGColor+RGB extensions (https://github.com/airbnb/lottie-ios/pull/1858) * Add support for display P3 color space (https://github.com/airbnb/lottie-ios/pull/1857) * Add some missing utility to CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1881) * Fix issue where ShapeTransform could incorrectly affect stroke width (https://github.com/airbnb/lottie-ios/pull/1872) * Fix issue where empty trim item would take precedence over non-empty trim item (https://github.com/airbnb/lottie-ios/pull/1875) * Fix issue where some top-level shape items would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1874) * Fix frame setting issue for CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1878) * Gradient Fill Layer: Support strokes (https://github.com/airbnb/lottie-ios/pull/1818) * Change veryLargeRect size to fix issue with masks (https://github.com/airbnb/lottie-ios/pull/1884) * Fix issue where Fill following other Fill would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1888) * Fix issue where negative `scale.x` values didn't render correctly on iOS 14 (https://github.com/airbnb/lottie-ios/pull/1894) * Fix issue where `LottieAnimationView.currentFrame` would be incorrect after playing animation with `LottieLoopMode.playOnce` (https://github.com/airbnb/lottie-ios/pull/1897) * Fix issue where shape items could be applied in incorrect order (https://github.com/airbnb/lottie-ios/pull/1899) * Fix issue where stroke and fill could be rendered in incorrect order (https://github.com/airbnb/lottie-ios/pull/1903) * Fix issue where `play(fromProgress: 1, toProgress: 0)` animation would not actually play (https://github.com/airbnb/lottie-ios/pull/1908) * Add support for skew animations (https://github.com/airbnb/lottie-ios/pull/1917)
4.0.1
2 weeks ago
4.0.1 fixes an issue in 4.0.0 where the install could fail due to issues with Git LFS: #1830, #1834. We now publish `xframework` binaries as a part of our release process: https://github.com/airbnb/lottie-ios/discussions/1807#discussioncomment-4346438 This is also the first release available through the [lottie-spm repo](https://github.com/airbnb/lottie-spm). > **Note** > There's a known issue where lottie-spm 4.0.1 only supports Swift 5.7 / Xcode 14. This will be resolved in lottie-spm 4.1.0. ## Major changes in Lottie 4.0 Learn more about this release: **[Announcing Lottie 4.0 for iOS](https://medium.com/airbnb-engineering/announcing-lottie-4-0-for-ios-d4d226862a54)** on the Airbnb Tech Blog * The new Core Animation rendering engine ([first introduced in Lottie 3.4.0](https://github.com/airbnb/lottie-ios/discussions/1627)) is now enabled by default for supported animations. * Specifically, `LottieConfiguration.shared.renderingEngine` now defaults to `.automatic` instead of `.mainThread`. Animations that use features which are not supported by the Core Animation rendering engine will automatically fall back to using the original Main Thread rendering engine. * When using the Core Animation rendering engine, Lottie animations now always animate 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. * If you encounter any compatibility issues when using `RenderingEngineOption.automatic`, please file an issue with a copy of your animation json. * `DecodingStrategy.dictionaryBased` is now enabled by default * The new dictionary-based decoding implementation is 2x faster than the previous `Codable` decoding implementation * If you encounter any compatibility issues with this new decoding implementation, please file an issue with a copy of your animation json. * Backwards compatibility typealiases for `Animation`, `AnimationView`, `Color`, `Vector1D`, `Vector2D`, and `Vector3D`, which were introduced in [Lottie 3.5.0](https://github.com/airbnb/lottie-ios/releases), have been removed to resolve conflicts with types in Apple frameworks. These types are now named `LottieAnimation`, `LottieAnimationView`, `LottieColor`, `LottieVector1D`, `LottieVector2D`, and `LottieVector3D`. * The default `LottieBackgroundBehavior` used by `LottieAnimationView` is now `.pauseAndRestore` instead of `pause`. * Lottie for iOS now supports the [dotLottie file format](https://dotlottie.io/). * The library's minimum-supported Swift version is now Swift 5.5.
iOS macOS tvOS

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics