Lottie: qué es, animaciones y cómo funciona en plataformas móviles

Autor: IT Sectr Publicado: 2026-05-04 Tiempo de lectura: 8 min

Lottie es una librería de código abierto para renderizar animaciones de Adobe After Effects en aplicaciones móviles y web. Las animaciones se exportan a formato JSON mediante el plugin Bodymovin y se reproducen de forma nativa en iOS, Android, Flutter y Web sin pérdida de calidad. Según Airbnb Design — Lottie, la librería se usa en más de 100 000 aplicaciones, reemplazando archivos de video pesados y GIF por un formato vectorial ligero.

Puntos clave

  • Lottie — librería de Airbnb para renderizar animaciones de After Effects en plataformas móviles y web.
  • Bodymovin — plugin de After Effects que exporta animaciones a formato JSON.
  • Esquema JSON de Lottie describe capas, formas, fotogramas clave y curvas de interpolación.
  • Integración en iOS — LottieView desde Swift Package Manager para SwiftUI y UIKit.
  • Integración en Android — LottieAnimationView en XML mediante dependencia Gradle.

Qué es Lottie y cómo funciona

Lottie es una librería de código abierto creada por Airbnb en 2015 para renderizar animaciones vectoriales en tiempo real. El desarrollador crea una animación en Adobe After Effects, la exporta mediante el plugin Bodymovin a JSON, y Lottie reproduce ese JSON en el dispositivo de destino interpretando capas, formas, transparencia y curvas de animación.

A diferencia de los archivos de video o GIF, Lottie es independiente de la resolución — la animación se renderiza vectorialmente y se ve igual en dispositivos con cualquier DPI. Una animación JSON es en promedio de 5 a 10 veces más pequeña que un GIF o video equivalente, lo cual es crítico para aplicaciones móviles con ancho de banda limitado.

Según Airbnb Engineering, la adopción de Lottie redujo el tamaño de las animaciones en la aplicación en un 80% en comparación con las secuencias de video Precomposed, manteniendo 60 FPS en todos los dispositivos compatibles. Hoy, Lottie es compatible con iOS, Android, Flutter, React Native, Web (HTML Canvas y SVG) y plataformas de escritorio.

El rendimiento de Lottie proviene del renderizado nativo: en iOS usa Core Animation con CALayer, en Android — su propio renderizador Canvas en C++ mediante JNI. Esto permite reproducir animaciones complejas con docenas de capas sin pérdida de fotogramas incluso en dispositivos de gama media. A diferencia de las soluciones basadas en WebView (GIF, APNG, video), Lottie no crea un proceso separado para el renderizado ni consume memoria adicional para la decodificación de fotogramas.

Use Lottie para indicadores de carga, iconos con microinteracciones, pantallas de onboarding y animaciones promocionales festivas donde importan la fluidez y el tamaño reducido.

El ecosistema de Lottie incluye reproductores oficiales para ocho plataformas, el editor LottieFiles para vista previa en el navegador y un mercado con miles de animaciones listas. El desarrollador puede descargar un JSON, integrarlo en un proyecto y ajustar colores y velocidad según el sistema de diseño sin abrir After Effects. LottieFiles también proporciona un SDK para integración acelerada con la capacidad de cargar animaciones mediante un enlace AIR, lo que permite actualizar animaciones en dispositivos sin publicar una nueva versión de la aplicación en App Store o Google Play.

Formato JSON de Lottie y Bodymovin

El esquema JSON de Lottie es un estándar abierto para describir animaciones vectoriales, que consta de tres niveles: composición, capas y formas. La composición contiene metadatos: tamaño del lienzo, frecuencia de fotogramas y duración.

Estructura del JSON

El objeto JSON raíz contiene el campo layers — un array de capas de animación. Cada capa puede ser una Shape Layer (capa de forma), Image Layer (capa de imagen), Text Layer (capa de texto) o PreComp Layer (precomposición). Para cada capa se definen propiedades de transformación: posición, escala, rotación y opacidad vinculadas a fotogramas clave.

js
const animationData = {
    "v": "5.5.2",
    "fr": 60,
    "w": 200,
    "h": 200,
    "layers": [{
        "ty": 4,
        "nm": "Circle",
        "shapes": [{
            "ty": "el",
            "p": { "k": [100, 100] }
        }]
    }]
}

Los fotogramas clave (Keyframes) se definen como arrays con marcas de tiempo, valores y curvas Bezier para interpolación. Bodymovin convierte automáticamente las curvas de After Effects a un formato compatible con Lottie, conservando el ritmo y las funciones de easing con precisión de fotograma.

Bodymovin — plugin de exportación

Bodymovin es una extensión de Adobe After Effects que exporta una composición a un archivo JSON de Lottie. El plugin admite la mayoría de las funciones de After Effects: formas, máscaras, efectos, capas de texto y tracking. Las limitaciones afectan a las capas 3D y algunos plugins — no se exportan y requieren simplificar la animación a 2D.

Integración de Lottie en iOS

En iOS, Lottie se integra mediante Swift Package Manager, CocoaPods o Carthage. Las clases principales son LottieView para SwiftUI y LottieAnimationView para UIKit. El paquete lottie-ios incluye soporte para animaciones desde el bundle, la red y objetos Data.

LottieView en SwiftUI

LottieView es un componente View para SwiftUI que acepta un nombre de archivo JSON del bundle o una URL para carga desde la red. La animación se reproduce automáticamente a la velocidad y número de repeticiones especificados.

swift
import Lottie

LottieView(animation: LottieAnimation
    .named("loading_spinner"))
    .loopMode(.loop)
    .animationSpeed(1.5)
    .frame(width: 100, height: 100)

Para UIKit, se usa LottieAnimationView, configurable mediante Interface Builder o programáticamente. La vista admite todos los estados de animación: play, pause, stop, así como una barra de progreso para carga de datos. LottieAnimationView se puede integrar en UITableViewCell o UICollectionViewCell para iconos animados en listas — al hacer scroll, la animación se pausa y al aparecer la celda en pantalla se reanuda, ahorrando recursos de CPU y GPU.

El desarrollo moderno de iOS usa activamente Lottie con SwiftUI para crear pantallas de onboarding animadas y elementos interactivos: al hacer scroll, el progreso de la animación se sincroniza con la posición del scroll mediante ScrollViewReader. Esto crea un efecto de paralaje donde la animación sigue continuamente el movimiento del dedo del usuario, aumentando la participación sin usar archivos de video pesados.

Control de reproducción

El reproductor Lottie en iOS proporciona una API para la reproducción desde un fotograma específico a otro, cambiar colores de relleno/trazo mediante KeyPaths y escuchar eventos a través de LottieAnimationDelegate. Se puede pausar la animación durante el scroll y reanudarla al detenerse para optimizar el rendimiento.

Integración de Lottie en Android

En Android, Lottie se añade mediante la dependencia Gradle com.airbnb.android:lottie. El componente principal es LottieAnimationView, que se puede colocar en el diseño XML como una View normal y configurar mediante atributos o programáticamente.

kotlin
@Composable
fun LoadingAnimation() {
    val composition by rememberLottieComposition(
        spec = LottieCompositionSpec.RawRes(R.raw.loading)
    )
    LottieAnimation(
        composition = composition,
        iterations = LottieConstants.IterateForever
    )
}

En el diseño XML, LottieAnimationView se configura mediante atributos: lottie_rawRes (referencia al JSON en res/raw), lottie_autoPlay, lottie_loop. La carga desde la red se admite mediante lottie_url o programáticamente con setAnimationFromUrl. La versión de Android de Lottie usa su propio renderizador Canvas, independiente de la aceleración por hardware.

Carga desde RawRes y red

Para animaciones estáticas, el JSON se coloca en res/raw y se referencia mediante RawRes. Para animaciones dinámicas, Lottie carga el JSON desde una URL o un objeto Data con un callback de progreso que muestra el porcentaje de descarga. La caché de Lottie guarda automáticamente las animaciones cargadas en memoria para evitar recargas al renderizar de nuevo.

Lottie para Android admite animación en RecyclerView mediante LottieAnimationView integrada directamente en los elementos de la lista. Para optimizar el rendimiento, se recomienda usar setAnimation con carga diferida y desactivar la animación para elementos fuera de pantalla mediante el callback RecyclerView.OnChildAttachStateChangeListener. Esto evita caídas de FPS al hacer scroll en listas largas con iconos animados.

Personalización y control de animaciones Lottie

Lottie proporciona una API potente para personalizar animaciones ya creadas sin modificar el archivo original de After Effects. Esto permite adaptar una misma animación a diferentes temas, colores y tamaños de aplicación.

Cambio de color mediante KeyPath

Los colores de relleno y trazo se pueden cambiar en tiempo de ejecución mediante KeyPath — una ruta de cadena a un elemento de la animación. Por ejemplo, para cambiar el color de un icono de carrito de rojo a azul, basta con encontrar su KeyPath y aplicar el nuevo valor. Esto elimina la necesidad de almacenar múltiples versiones de la misma animación para diferentes esquemas de color.

Control de velocidad y progreso

Cada animación Lottie se puede controlar por velocidad (animationSpeed), progreso (setProgress) y rango de fotogramas (play(fromFrame:toFrame:)). El modo de progreso permite sincronizar la animación con un gesto de scroll: cuanto más se desplaza la pantalla, más avanzada está la animación — una técnica popular para onboarding y efectos de paralaje.

ParámetroDescripciónEjemplo de valor
animationSpeedMultiplicador de velocidad de reproducción2.0 — dos veces más rápido
loopModeModo de repetición de animación.loop, .repeat(3), .playOnce
progressControl manual de fotograma de 0.0 a 1.00.5 — 50% de la animación
play(from:to:)Reproducir rango de fotogramasplay(from: 0, to: 30)

Preguntas frecuentes

¿En qué se diferencia Lottie de GIF y video?

Lottie usa un formato vectorial independiente de la resolución y ocupa de 5 a 10 veces menos espacio que un GIF. A diferencia del video, Lottie admite fondos transparentes, cambio de colores en tiempo de ejecución y tamaño arbitrario sin pérdida de calidad, lo que lo hace ideal para interfaces adaptativas.

¿Cómo reducir el tamaño de un archivo Lottie?

Use la herramienta lottie-image-compressor para comprimir JSON sin perder fotogramas. Optimice la animación original en After Effects: reduzca la cantidad de fotogramas clave, evite imágenes rasterizadas en lugar de capas vectoriales y simplifique las máscaras complejas.

¿Lottie admite capas de texto?

Sí, Lottie admite capas de texto de After Effects, incluyendo fuentes, tamaño, color y alineación. El texto se puede cambiar dinámicamente en tiempo de ejecución en algunas plataformas, pero para texto complejo con diferentes fuentes es mejor usar componentes nativos de UI.

¿Se puede usar Lottie para logotipos?

Sí, Lottie es excelente para logotipos animados. El formato vectorial garantiza nitidez en cualquier pantalla — desde Apple Watch hasta monitores 4K. Al cambiar la marca, los colores del logotipo se pueden actualizar mediante KeyPath sin reexportar la animación.

¿Lottie admite animaciones interactivas?

El Lottie puro no admite disparadores interactivos dentro del JSON. Para la interactividad, la animación se divide en segmentos que se lanzan mediante código al pulsar un botón o hacer scroll. El modo de progreso permite vincular la animación a un gesto para crear efectos de paralaje.

Resumen

  • Lottie — animaciones vectoriales de After Effects reproducidas de forma nativa en todas las plataformas móviles.
  • Bodymovin — plugin de After Effects que exporta composiciones al formato JSON abierto de Lottie.
  • El JSON contiene la composición, capas, formas y fotogramas clave con curvas Bezier para interpolación suave.
  • En iOS la integración es mediante LottieView (SwiftUI) o LottieAnimationView (UIKit) desde Swift Package Manager.
  • En Android la integración es mediante LottieAnimationView en XML o LottieComposable para Jetpack Compose.
  • KeyPath permite cambiar colores de relleno/trazo en tiempo de ejecución sin reexportar la animación de After Effects.
  • Lottie es de 5 a 10 veces más compacto que GIF, admite transparencia y cualquier tamaño sin pérdida de calidad.

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también