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 3.4.3
An iOS library to natively render After Effects vector animations
⭐️ 23,133
🕓 4 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.
3.4.3
4 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
6 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
9 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)
3.4.0
11 weeks ago
### New features * Added a **new animation rendering engine** powered by **Core Animation** ([lean more](https://github.com/airbnb/lottie-ios/discussions/1627)) * 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`](https://github.com/airbnb/lottie-ios/blob/master/Sources/Public/LottieConfiguration.swift#L22)). 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`](https://github.com/airbnb/lottie-ios/blob/master/Sources/Public/LottieConfiguration.swift#L35) 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: ```swift // 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)](https://github.com/airbnb/lottie-ios/pull/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`](https://github.com/airbnb/lottie-ios/blob/master/Sources/Public/LottieConfiguration.swift#L25)): ```swift // 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 blend mode support (#1585)](https://github.com/airbnb/lottie-ios/pull/1585) * [Added `LottieLogger` type that allows for customizing how Lottie outputs log messages (#1474)](https://github.com/airbnb/lottie-ios/pull/1474) * [Add keyframe animation support to `ValueProviders` API (#1491)](https://github.com/airbnb/lottie-ios/pull/1491) * [Added support for loading images stored in Asset Catalogs (#1511)](https://github.com/airbnb/lottie-ios/pull/1511) * [Added support for accessing the original value of an AnimationKeypath (#1559)](https://github.com/airbnb/lottie-ios/pull/1559) * [Added support for loading animations with “.json” file extension in name (#1561)](https://github.com/airbnb/lottie-ios/pull/1561) ### Bug fixes * [Improved performance of Gradient Fill layers (#1558)](https://github.com/airbnb/lottie-ios/pull/1558) * [Fixed Carthage support (#1496)](https://github.com/airbnb/lottie-ios/pull/1496) * [Avoid automatic animations for rapid opacity changes (#1397)](https://github.com/airbnb/lottie-ios/pull/1397) * [Fixed GroupNode empty transform issue (#1372)](https://github.com/airbnb/lottie-ios/pull/1510) * [Fixed nil host warning when data url is base64 encoded (#1524)](https://github.com/airbnb/lottie-ios/pull/1524) * [Fixed issue where frame parameter was ignored in `AnimationView.init(frame:)` initializer (#1527)](https://github.com/airbnb/lottie-ios/pull/1527) * [Fixed issue with Polygon rendering (#1537)](https://github.com/airbnb/lottie-ios/pull/1537) * [Fixed issue where `layer(for: keypath)` could unexpectedly return nil (#1587)](https://github.com/airbnb/lottie-ios/pull/1587) * [Improved performance of `BundleImageProvider` by caching images (#1590)](https://github.com/airbnb/lottie-ios/pull/1590) * [Improved performance of `InvertedMatteLayer` (#1388)](https://github.com/airbnb/lottie-ios/pull/1388)
3.3.0
41 weeks ago
**Full Changelog**: https://github.com/airbnb/lottie-ios/compare/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` and `AnimatedButton` are now `open` instead of `final` (#1431) - Fixed issue where shape layers could render at a low resolution (#1436) - Fixed issue where `AnimationView`'s `transform` could animate incorrectly (#1395) Known issues: - *`3.3.0` doesn't support Carthage* (#1448, fixed on `master` and in future releases)
3.2.3
1 year 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.
3.2.2 Release
1 year ago
A few fixes here including: - Removing Swift warnings - Performance fixes
3.2.1 Release
1 year ago
Various Bug Fixes
3.2.0 Release
1 year ago
Various bug fixes and improvements
3.1.9 release
1 year ago
- 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
iOS macOS tvOS
airbnb/MagazineLayout v1.6.11
A collection view layout capable of laying out views in vertically scrolling grids and lists.
⭐️ 3,099
🕓 7 weeks ago
iOS tvOS
airbnb/HorizonCalendar v1.14.1
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,174
🕓 5 weeks ago
iOS
airbnb/epoxy-ios 0.8.0
Epoxy is a suite of declarative UI APIs for building UIKit applications in Swift
⭐️ 918
🕓 8 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.8.0
8 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
41 weeks 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.
⭐️ 554
🕓 37 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
1 year 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

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