Rams MCP · The full engine, now in your coding agent
airbnb on GitHub

airbnb/lottie-ios

Reviewed against Rams quality heuristics: accessibility, color, typography, spacing, components, motion, UX, and craft.

12 files reviewed·July 29, 2026

View on GitHub

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.

Or get a design review on every pull requestInstall Rams