Lottie for iOS

Version Carthage Compatible SwiftPM License Platform Swift Versions

请访问 airbnb.io/lottie 查看文档、常见问题解答、帮助、示例等。

Lottie 是一个跨平台库,适用于 iOS、macOS、tvOS、visionOS、AndroidWeb,它能够以极少的代码原生实时渲染基于矢量的动画和艺术作品。

Lottie 加载并渲染以 bodymovin JSON 格式导出的动画和矢量。Bodymovin JSON 可以使用 After Effects 中的 bodymovin、Sketch 中的 Lottie Sketch Export 以及 Haiku 创建和导出。

设计师可以创建并发布精美的动画,而无需工程师费力地手动重新创建它们。由于动画由 JSON 提供支持,因此它们尺寸非常小,但复杂性却可以很高!动画可以播放、调整大小、循环播放、加速、减速、反向播放,甚至可以交互式地进行拖动。Lottie 还可以仅播放或循环动画的一部分,可能性是无限的!动画甚至可以在运行时以各种方式更改!更改颜色、位置或任何可设置关键帧的值!

以下只是 Lottie 功能的一小部分示例

Example1 Example2

Example3

Abcs

安装 Lottie

Lottie 支持 Swift Package ManagerCocoaPodsCarthage(动态和静态)。

Github 仓库

您可以拉取 Lottie Github 仓库 并包含 Lottie.xcodeproj 以构建动态或静态库。

Swift Package Manager

要使用 Swift Package Manager 安装 Lottie,您可以按照 Apple 发布的教程,使用 Lottie 仓库的 URL 和当前版本。

  1. 在 Xcode 中,选择“File” → “Add Packages...”
  2. 输入 https://github.com/airbnb/lottie-spm.git

或者您可以将以下依赖项添加到您的 Package.swift

.package(url: "https://github.com/airbnb/lottie-spm.git", from: "4.5.0")

当使用 Swift Package Manager 时,我们建议使用 lottie-spm 仓库,而不是主要的 lottie-ios 仓库。 lottie-ios 的主 Git 仓库有点大(300+ MB),并且 Swift Package Manager 总是下载包含所有 Git 历史记录的完整仓库。 lottie-spm 仓库要小得多(小于 500kb),因此可以更快地下载。

lottie-spm 仓库不下载 Lottie 的完整 Git 历史记录并从源代码构建它,而只是包含指向 最新 lottie-ios 版本(通常约为 8MB)中包含的预编译 XCFramework 的指针。 如果您希望直接在项目中包含 Lottie 源代码,您可以通过引用 https://github.com/airbnb/lottie-ios.git 来直接依赖于主 lottie-ios 仓库。

CocoaPods

将 pod 添加到您的 Podfile

pod 'lottie-ios'

然后运行

pod install

将 cocoapod 安装到您的项目后,使用以下命令导入 Lottie

import Lottie

Carthage

将 Lottie 添加到您的 Cartfile

github "airbnb/lottie-ios" "master"

然后运行

carthage update

在您的应用程序目标的“General”选项卡下的“Linked Frameworks and Libraries”部分中,从 carthage update 生成的 Carthage/Build/iOS 目录中拖放 lottie-ios.framework。

Swift 版本支持

Lottie 支持 Swift / Xcode 版本,最低版本为 Apple 允许提交到 App Store 的版本。 您可以在 Swift Package Index 上查看 Lottie 支持的 Swift 版本的最新信息

Swift Versions

隐私

Lottie 不收集任何数据。 我们提供此通知是为了帮助您填写 App 隐私详情。 我们还提供了一个 隐私清单,可以包含在您的应用中。

安全

我们在 GitHub 上为每个版本分发 XCFramework 包。 在 Lottie 4.4.0 及更高版本中,这些 XCFramework 包包含 代码签名。 这些包在名称 "Lottie iOS" 下自签名,并具有以下指纹

89 2F 1B 43 04 7B 50 53 8F 2F 46 EA D9 29 00 DD 3D 48 11 F358 21 78 C0 61 A5 FB 20 F1 11 CB 26

在 Xcode 中,您可以通过选择 Lottie.xcframework 并确认它显示以下信息来验证这一点

Code Signature in Xcode

贡献

我们始终感谢来自社区的贡献。 要对项目进行更改,您可以克隆仓库并打开 Lottie.xcworkspace。 此工作区包括

所有包含新功能或错误修复的拉取请求,如果影响动画的渲染方式,则应包含验证所包含更改的快照测试用例。

该项目还包括在我们的 Rakefile 中定义的几个有用的命令。 要使用这些命令,您需要安装 Bundler

$ sudo gem install bundle
$ bundle install

例如,所有 Swift 代码都应按照 Airbnb Swift Style Guide 格式化。 进行更改后,您可以使用 SwiftFormatSwiftLint 通过运行 bundle exec rake format:swift 自动重新格式化代码。 其他有用的命令包括

$ bundle exec rake build:all # builds all targets for all platforms
$ bundle exec rake build:package:iOS # builds the Lottie package for iOS
$ bundle exec rake test:package # tests the Lottie package
$ bundle exec rake format:swift # reformat Swift code based on the Airbnb Swift Style Guide