// the find
airbnb/lottie-ios
An iOS library to natively render After Effects vector animations
Airbnb's native iOS renderer for Lottie/Bodymovin JSON animations exported from After Effects (also Sketch, Haiku). Aimed at teams where designers ship motion graphics without an engineer hand-rolling UIView/CALayer animations — useful for onboarding flows, loading states, icon transitions, etc.
Two rendering backends (legacy main-thread node graph plus a newer CoreAnimationLayer path) means you can pick raw CPU rendering vs. native CALayer animations depending on your performance needs. Ships signed, prebuilt XCFrameworks per release with a documented fingerprint, and a separate near-empty lottie-spm shim repo so SPM consumers aren't forced to clone 300+ MB of git history just to get an ~8MB binary. Runtime customization (color, position, any keyframable value via ValueProviders) is a real differentiator over just dropping in a static Lottie file. Ships a PrivacyInfo.xcprivacy manifest already wired for App Store privacy declarations.
Running two separate rendering engines side by side is a real maintenance and correctness burden — CompatibilityTracker.swift exists specifically to track which After Effects features aren't supported on the CoreAnimation path, so the same JSON can render differently (or silently degrade) depending on which engine picks it up. Snapshot tests are pinned to a specific simulator (iPhone 8), which is the kind of hard environment coupling that rots CI over time. Contributing requires a Ruby/Bundler toolchain on top of Swift tooling just to run SwiftFormat/SwiftLint via Rake — an odd second ecosystem for a pure-Swift library. The vendored EmbeddedLibraries (ZipFoundation, a trimmed EpoxyCore, LRUCache) are copy-pasted rather than real dependencies, so security fixes upstream in those projects won't reach you automatically.