On this page
Overview
Lottie for iOS renders Bodymovin JSON and .lottie vector animations natively on iOS, macOS, tvOS, and visionOS. Animations can play, loop, change speed, scrub interactively, and have keyframable values replaced at runtime.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Play, loop, scrub, and modify vector animations at runtime
Animations exported as Bodymovin JSON can be played over selected ranges, looped, sped up, reversed, and scrubbed interactively. Keyframable properties such as colors and positions can also be changed at runtime.
Sources: [2]
Use the lightweight lottie-spm path for signed release XCFrameworks
The official README recommends the lottie-spm repository for SwiftPM. It avoids downloading the large source repository history and points to the precompiled XCFramework from the release; XCFrameworks from 4.4.0 onward are code-signed.
Sources: [2]
Best fit
Fits onboarding, empty states, and micro-interactions sourced from design animation assets
It is useful when product teams want to ship animations created in After Effects or compatible tools without engineers recreating each frame manually. Both SwiftUI and UIKit integration paths are available.
Sources: [2]
Before adoption
Version 4.6.1 requires iOS 13+ and Swift tools 6.0 and includes a ZIP extraction security fix
Package.swift declares iOS 13, macOS 10.15, tvOS 13, and visionOS 1.0 as minimum platforms. Release 4.6.1 updates the embedded ZIPFoundation to 0.9.20 to prevent symlink path traversal during ZIP extraction, making 4.6.1 or newer the appropriate baseline when upgrading from 4.6.0 or earlier.
Official sources
- [1]airbnb/lottie-ios — GitHub repository(2026-10-06)
- [2]Lottie for iOS 4.6.1 — README(2026-10-06)
- [3]Lottie for iOS 4.6.1 — Package.swift(2026-10-06)
- [4]Lottie for iOS 4.6.1 release(2026-10-06)
- [5]Lottie Apache-2.0 license(2026-10-06)
Supplemental curator note
Lottie fits iOS applications that ship designer-authored onboarding and micro-interactions. Version 4.6.1 includes a ZIPFoundation path-traversal fix, so applications on 4.6.0 or older should prioritize upgrading.
Try it in 3 steps
- 1
Add Lottie 4.6.1 with SwiftPM
Pin the reviewed release through the lightweight lottie-spm repository recommended by the README. iOS 13+ is required.
.package(url: "https://github.com/airbnb/lottie-spm.git", exact: "4.6.1") - 2
Load an animation from the app bundle
Load a Bodymovin animation such as Loading.json from the bundle as a LottieAnimation.
import Lottie let animation = LottieAnimation.named("Loading") - 3
Loop it with LottieAnimationView
Attach the animation to a view, loop playback, and confirm that the asset renders natively.
let animationView = LottieAnimationView(animation: animation) animationView.loopMode = .loop animationView.play()
Growth
Growth trends · Last 30 days
26,894 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 2
- Open PRs
- 1
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- animation
- bodymovin
- ios-animation
- ios
- transition-animation
- keyframes
- ios-transition
- custom-transitions
- swift
- Stars
- 26,894
- Forks
- 3,839
- Watchers
- 457
- Open issues
- 44
- Contributors
- 242
- Owner type
- Organization
- Primary language
- Swift
- License
- Apache-2.0
- Repository last updated
- Sep 28, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- React Native126,797 Stars
4 shared tag(s) · 2 shared category(s)
native mobile UI with React, stable 0.87.1, and a framework-first path
C++ - Moya15,353 Stars
3 shared tag(s) · 2 shared category(s) · Same language
define API endpoints as typed targets and unify networking, stubs, and plugins
Swift - GRDB8,676 Stars
3 shared tag(s) · 2 shared category(s) · Same language
use SQLite through Swift records, query interfaces, observation, and migrations
Swift - Starscream8,641 Stars
3 shared tag(s) · 2 shared category(s) · Same language
connect RFC 6455 WebSockets in Swift and handle text, binary, TLS/WSS, and compression events
Swift - DeviceKit4,733 Stars
3 shared tag(s) · 2 shared category(s) · Same language
augment UIDevice with value-typed device models, simulator detection, battery state, and hardware capabilities
Swift - Apollo iOS4,037 Stars
3 shared tag(s) · 2 shared category(s) · Same language
generate type-safe Swift models from GraphQL and combine queries with normalized caching
Swift
Report incorrect information
Tell us if any listing information is incorrect or outdated.