airbnb/lottie-ios
Reviewed against Rams quality heuristics: accessibility, color, typography, spacing, components, motion, UX, and craft.
12 files reviewed·July 29, 2026
Top fix
Keep enforcing strict layer separation as new renderers are added
More findings
- Public API surface stays minimal with no leaked internals
- No debug scaffolding or dead code found across reviewed files
Verdict
A rendering library with zero visual opinions of its own, and that restraint is exactly the point. The only risk is invisible: nothing here forces future contributors to keep the API this clean.
Files Rams reviewed
Sources/Private/EmbeddedLibraries/EpoxyCore/Views/ViewType.swift
Example/Example/AnimationListView.swift
Example/Example/AnimationPreviewView.swift
Example/Example/ControlsDemoView.swift
Example/Example/LottieViewLayoutDemoView.swift
Example/Example/SwiftUIInteroperabilityDemoView.swift
Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/EpoxyableView+SwiftUIView.swift
Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/SwiftUIView.swift
Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/UIView+SwiftUIView.swift
Sources/Private/EmbeddedLibraries/EpoxyCore/SwiftUI/UIViewConfiguringSwiftUIView.swift
script/test-carthage/CarthageTest/ContentView.swift
Example/Example/LottieSwitchRow.swift
Working well
- The rendering-engine and loop-mode menus use native `Menu`/`Picker`-style option lists with a checkmark on the selected value, which gives VoiceOver correct selection semantics for free instead of hand-rolling toggle buttons.
- Using .frame(maxWidth:) / .frame(maxHeight:) / .resizable() / automatic sizing side by side in one HStack is a clear, minimal way to demonstrate layout modes for a component library.
- Using List with navigationTitle is the idiomatic SwiftUI pattern for a settings/demo catalog screen, giving free large-title collapse and correct safe-area handling.
- Using @ViewBuilder content in the generic Demo wrapper keeps the show/hide toggle reusable across both demo sections without duplicating layout code.
Scored July 29, 2026 with Rams Engine v0.0.3 · Engine changelog
This page is an automated design review of airbnb/lottie-ios’s UI code: 12 files read against 258 versioned rules covering accessibility, color, typography, spacing, components, UX, motion, and craft. The score is out of 100; any confirmed critical issue caps it at 59.
More design scores
Score your own repo.
Free on public repos, no account. The same engine that scored this page reads your UI code and mints a score page like this one.
Public repos only. The full engine reviews the UI code and mints a public score page — we email you the link too. Already-scored repos open instantly.