# Lottie for Android: one Gradle dependency, and a README that stops there

> lottie-android parses the json that Bodymovin exports from After Effects and renders it on device. The library installs with a single Gradle line, but the README carries no usage code, Compose ships as a separate artifact, and the last push was 2026-02-15.

**airbnb/lottie-android** — Render After Effects animations natively on Android and iOS, Web, and React Native

- Repository: https://github.com/airbnb/lottie-android
- Website: http://airbnb.io/lottie/
- Stars: 35,734 · Forks: 5,423
- Language: Java
- License: Apache-2.0
- Published: 2026-08-17 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/airbnb-lottie-android

## The input is a Bodymovin json, not a GIF or an MP4

Lottie is a mobile library for Android and iOS. It parses Adobe After Effects animations that Bodymovin exports as json and renders them natively on the device, so the motion travels inside the app as data rather than as a recording of the finished animation. The repository is written in Java and builds two Gradle modules, lottie/ and lottie-compose/, off the master branch.

The boundary sits at the input format. Bodymovin is the After Effects exporter that produces the json Lottie reads, and the README names no other input, no converter and no fallback path. A team whose assets arrive as a GIF, an MP4 or a PNG sequence has no documented way in: the animation has to be rebuilt in After Effects and exported before there is anything for the library to render. The alternative the project itself names is an engineer recreating the animation by hand, which the README frames as the chore designers no longer have to hand back to engineering.

## Gradle is the only supported build configuration

Adding the library is one line in your build.gradle file, and the version is yours to supply:

```groovy
dependencies {
  implementation 'com.airbnb.android:lottie:$lottieVersion'
}
```

$lottieVersion is a variable you define. The README gives no value for it, and instead points at a Maven Central badge for com.airbnb.android/lottie to show the current release. The versions that have shipped are v6.7.1 on 2025-10-31, v6.7.0 on 2025-10-27 and v6.6.10 on 2025-10-02, so pin one of those rather than guessing.

Gradle is the only supported build configuration. No Maven coordinates, no AAR download and no manual setup step appear in the README, which closes the door on any other build system without a workaround. That same restraint is why this file cannot get you a first screen: there is no XML layout, no Kotlin call and no Compose example anywhere in it. The API lives at airbnb.io/lottie, the documentation, FAQ, help and examples page the README points to.

## lottie-compose ships under its own version and changelog

Jetpack Compose support is a second artifact, com.airbnb.android:lottie-compose, with its own stable version badge and its own page at airbnb.io/lottie/#/android-compose. Alongside it the repository keeps a lottie-compose/ module, a sample-compose/ app, a CHANGELOG_COMPOSE.md sitting next to the main CHANGELOG.md, and an issue-repro-compose/ project used for reproductions.

Two release streams means two things to settle before a Compose upgrade. The main changelog says nothing about the Compose artifact, so an entry in it tells you nothing about what changed there. And the README does not say whether the two artifacts are versioned in lockstep, which is exactly the question a team pinning both in one app needs answered before it locks a version catalog. The dependency line above names only the core library, so a Compose project adds a second artifact this README never shows you.

## 2.8.0 was the floor and pre androidx projects fall below it

From 2.8.0 onward the library only supports projects that have been migrated to androidx, and the README links Google's own migration guide for the work. Anything older than 2.8.0 predates the requirement.

For an app still on the Android support library that is a hard ceiling: no 6.x release is available without migrating first, and the README documents no legacy branch, no support library artifact and no backport path. Read it as a scheduling constraint rather than a dead end, because the migration has to land before Lottie can. The README also links a Play Store listing under com.airbnb.lottie, and it says nothing about which Lottie version that app ships, so the listing settles nothing about the ceiling above.

## Contributing means an Android Studio Canary build

Because development has started for Lottie Compose, the README says Gradle and the Android Gradle Plugin are kept up to date with the latest canaries, and that this requires Android Studio Canary builds, which install side by side with stable versions. Anyone planning to send a pull request is signing up for a toolchain that moves under them rather than one that is pinned.

The release path in the repository is a row of shell scripts at the top level: version.sh next to versions.properties, upload_release.sh, sign.sh, deploy_snapshot.sh and update-baseline-profiles.sh. The README does not say what arguments they take or what order they run in, so a contributor has to read the scripts before touching a release. Performance work has the same shape. app-benchmark/, benchmark/, baselineprofile/ and snapshot-tests/ all exist, yet no numbers and no run instructions are published, so there is no published figure to design a budget against.

## The sample module is where the wiring is actually visible

The sample app is the only complete wiring in the repository. sample/build.gradle shows a module consuming the library, sample/lint-baseline.xml and the top level lint.xml carry the lint configuration, sample/proguard-multidex-rules.pro is there for builds that shrink or hit multidex, sample/src/ holds the code, and sample/screenshots/ is there for images. Two more projects, issue-repro/ and issue-repro-compose/, exist only to reproduce reported bugs.

Read those before writing a screen of your own, because the README will not get you there. It carries no API reference, no usage snippet beyond the dependency line, and no statement about fallback frames, cache invalidation or rolling back an animation at runtime. A top level directory named After Effects Samples and a DESIGNER_NOTES.md sit alongside the Gradle files, which is where the designer handover is described, and the README explains neither of them.

## Apache-2.0, six sponsors, and a last push on 2026-02-15

The repository carries an Apache-2.0 licence, and the funding appeal printed next to it is a request rather than a licence condition. The README says Lottie is improved on nights and weekends, asks teams shipping it in an app to consider sponsoring, and names Lottiefiles, Lottielab, Airbnb, Stream Chat, Emerge Tools and Coinbase as lead sponsors. Volunteer labour with corporate money behind it is not the same thing as a support commitment from those companies.

The calendar is flatter than the sponsor list. Three releases landed inside October 2025, then the last push to the repository was 2026-02-15, with the default branch still named master and the project not archived. No release schedule is published anywhere in the README. A team that needs a specific fix, or an app that has pinned lottie-compose, should confirm the artifact and the airbnb.io/lottie Compose page still match the version it depends on before shipping against it.

## Conclusion

Adopt lottie-android when a designer already exports Bodymovin json from After Effects, the app is on androidx, and the build is Gradle. Skip it for GIF or video assets, for a support library project, and for React Native, which has its own port. Before pinning, check which artifact you actually need: the last three releases were v6.7.1 on 2025-10-31, v6.7.0 on 2025-10-27 and v6.6.10 on 2025-10-02, and the last push to the repository was 2026-02-15.

## FAQ

### What is Lottie used for?

Lottie parses Adobe After Effects animations exported as json with Bodymovin and renders them natively on mobile, for Android and iOS. Documentation, FAQ, help and examples are published at airbnb.io/lottie.

### How do I use Lottie on Android?

Add implementation 'com.airbnb.android:lottie:$lottieVersion' to the dependencies block of your build.gradle file and supply the version yourself. Gradle is the only supported build configuration, and the README sends you to airbnb.io/lottie for the API.

### Does Lottie for Android work with Jetpack Compose?

It ships as a separate artifact, com.airbnb.android:lottie-compose, with its own stable version badge and its own page at airbnb.io/lottie/#/android-compose. The repository keeps a lottie-compose/ module, a sample-compose/ app and a CHANGELOG_COMPOSE.md.

### Do I have to migrate my app to androidx before using Lottie?

From 2.8.0 onward Lottie only supports projects migrated to androidx, and the README links Google's migration guide. An app still on the Android support library has to complete that migration before it can take a current release.

### What licence is lottie-android under, and is the sponsorship request part of it?

The repository carries an Apache-2.0 licence. The README separately asks teams that ship Lottie in an app to consider sponsoring the project, and names Lottiefiles, Lottielab, Airbnb, Stream Chat, Emerge Tools and Coinbase as lead sponsors.

## Sources

- [Official documentation](http://airbnb.io/lottie/)
- [Official README](https://github.com/airbnb/lottie-android#readme)
- [Project repository](https://github.com/airbnb/lottie-android)
- [Release notes](https://github.com/airbnb/lottie-android/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/airbnb-lottie-android
