Zum Hauptinhalt springen
Mobil Anleitungen

Lottie React Native

Unsere umfassende Anleitung zeigt Ihnen, wie Sie Lottie React Native verwenden. Es werden Expo- und bare Workflows, Animationensteuerungen, Leistungsanpassungen und die besten Praktiken für 2026 abgedeckt.

Lottie React Native

Sie sind wahrscheinlich in einer von zwei Situationen. Entweder Sie haben einen Designer, der Ihnen einen Lottie-JSON überreicht und fragt: "Können wir das heute in die App bringen?", oder Sie haben es bereits eingerichtet und bemerkt, dass die Animation in der Entwicklung funktioniert, aber sich teuer anfühlt, sobald sich Realgeräte, Startzeit und Release-Builds einmischen.

Das ist, wo Lottie React Native interessant wird. Die grundlegende Demo ist einfach. Eine Produktionsreife Implementierung ist es nicht. Der Unterschied liegt meist darin, wie Sie es installieren, wie Sie die Wiedergabe steuern und ob Sie Animationen wie unschädliche Assets oder als Teil Ihres Leistungsbudgets behandeln.

Inhaltsübersicht

Weshalb Lottie für React Native-Anwendungen unerlässlich ist.

Wenn Sie versucht haben, ein poliertes Produktanimation von Hand in React Native nachzubilden, wissen Sie bereits den Schmerz. Kleine Bewegungsdetails verwandeln sich in eine Menge von Zeitlogiken, Interpolations und Plattform-Sonderheiten. Die Animation mag nah dran sein, aber "nah" ist normalerweise nicht das, was der Designer geliefert hat.

Lottie änderte dieses Workflow. Airbnb hat Lottie 2016 öffentlich zugänglich gemacht, und diese Veröffentlichung änderte die mobile Animation, indem sie es den Designern ermöglichte, Animationen direkt zu liefern, anstatt die Ingenieure dazu zu zwingen, sie Frame für Frame neu zu erstellen. In einigen Unternehmen reduzierte sich die Kosten für die Entwicklung von mobilen Anwendungen um bis zu 40%. nach Angaben vonAirbnb’s Lottie-Übersicht Airbnb Lottie-Übersicht.

Design und Ingenieurskunst stoppen, dasselbe Schlachtfeld zu kämpfen

A key benefit of Lottie React Native isn’t just “pretty animations in JSON.” It’s the separation of concerns. Designers work in After Effects and export with Bodymovin. Developers render the output with native-backed playback instead of translating motion into custom code.

Das zählt, weil sich die Arbeit mit Animationen schnell ausbreitet. Ein einzelner feierlicher Zustandsanimation kann sich auf die Design-Überprüfung, Produkt-Überprüfung, das Android-Verhalten, das iOS-Verhalten, die Barrierefreiheit und die Startleistung auswirken. Lottie reduziert die Oberfläche.

Praktische Regel: Verwenden Sie Lottie, wenn die Animation Teil des Produkt-Erlebnisses ist, nicht wenn Sie nur eine einfache Opazität oder eine Übersetzungsübergang benötigen.

Es gibt auch einen Nutzererlebnisaspekt. Bewegung gibt Feedback, bestätigt Aktionen und macht die Ladezustände weniger tot. Wenn Ihr Team ernsthaft über Politur, Retention oder Vertrauen in der Schnittstelle nachdenkt, ist Animation Teil dieser Diskussion. Die breitere Diskussion zum App-Nutzererlebnis endet in der Regel an einem Punkt: schnelles Feedback schlägt statische Bildschirme.

Wo Lottie am besten passt

Lottie React Native funktioniert am besten für:

  • Gekennzeichnete Mikrointeraktionen wie Likes, Speichern, Häkchen und Kauf-Erfolgszustände
  • Einführungsillustrationen die sich ohne das Versenden von Videos anfühlen müssen
  • Beladung und leere Zustände wo statische UI unvollendet wirkt
  • Funktionsunterrichtung als Produkt Bewegung ohne Einbindung von GIFs oder MP4s möchte

Was es nicht löst, sind alle Animationen. Für grundlegende Bildschirmübergänge sind oft die eigenen Animationstools von React Native einfacher. Für sehr große oder hochinteraktive Bewegungssysteme kann die JSON-Formatierung ein Kompromiss anstatt ein Gewinn werden. Dieser Kompromiss wird wichtiger, sobald man in die Produktion kommt, was ist, wo sich die meisten Tutorials zu früh beenden.

Einstellung Ihrer Lottie-Entwicklungsumgebung

Der Installationsweg hängt von einer Entscheidung ab: Expo-gesteuerte Workflow oder Bare React NativeVerwirre die mentalen Modelle nicht. Die meisten Einstellungsprobleme entstehen, wenn Entwickler einen Workflow für Bare React Native innerhalb von Expo befolgen oder annehmen, dass Expo jede native Details abstrahiert.

Ein Flussdiagramm, das die Einrichtungsschritte für Lottie-Animationen in Expo- und Bare-React-Native-Projekten zeigt.

Wählen Sie den Workflow, bevor Sie installieren

Wenn Ihr App in Expo läuft und Sie den schnellsten Setup wollen, bleiben Sie auf dem Expo-Path, solange Sie nicht wissen, dass Sie native Arbeit benötigen. Wenn Sie in einem Bare-App sind oder bereits auf native Module angewiesen sind, die direkten Kontrolle benötigen, installieren Sie es als normale native Abhängigkeit und validieren Sie beide iOS- und Android-Builds sofort.

A lot of teams underestimate how much easier debugging becomes when you keep your setup aligned with the project type. That’s also why many teams building custom native integrations move early to an Expo-Entwicklungsklienten-Workflow anstatt bis das App schwerer zu ändern wird.

Expo verwaltetes Setup

Für Expo-gesteuerte Apps, halten Sie es einfach.

  1. Neustarten Sie Metro

    npx expo install lottie-react-native
  2. Neustart Metro

    npx expo start -c
  3. Überprüfen Sie auf Gerät oder Simulator Start with a local JSON file and render a very small animation first. Don’t debug a large asset and a new install at the same time.

Präferieren Sie lokale Dateien zuerst:

  • Benutze lokale Dateien zuerst: Präferieren Sie lokale Dateien zuerst: Remote-Animation-Debugging fügt Netzwerk-Rauschen hinzu, wenn Sie nur versuchen, die Bibliothek zu beweisen.
  • Testen Sie die Veröffentlichungsverhalten früh: Entwicklungsmodus kann Probleme mit der Zeit und Leistung verbergen.
  • Überprüfen Sie die Asset-Pfade: Fehlplatzierte JSON-Dateien sind eine der häufigsten Ursachen für „es renderiert nichts“.

Expo ist der schnellste Weg zu „es funktioniert“. Das bedeutet nicht, dass es der schnellste Weg zu „es skalieren“ ist.

Bare React Native-Einrichtung

In einer leeren Projektinstallation und Validierung von native Abhängigkeiten sofort.

  1. Installieren Sie das Paket

    npm install lottie-react-native
  2. Installieren Sie iOS-Pods

    cd ios && pod install && cd ..
  3. Rebauen Sie die App

    npx react-native run-ios

    oder

    npx react-native run-android

Hier ist der Teil, den viele Schnellstartanleitungen auslassen: Nach der Installation führen Sie eine vollständige native Rekonstruktion durch, bevor Sie entscheiden, dass etwas kaputt ist. Hot Reload kann nicht retten, wenn eine native Abhängigkeit nicht korrekt in die App kompiliert wurde.

Bare Workflow-Überprüfungen sparen Zeit

Verwenden Sie diesen kurzen Checkliste, bevor Sie fortfahren:

Überprüfen Warum es wichtig ist
Nach der Installation neu erstellen Nativmodule benötigen eine frische Kompilierung
Ausführen pod install iOS wird nicht zuverlässig sein ohne es
Verwenden Sie zunächst eine einfache lokale JSON-Datei Isoliert Installationsprobleme von Asset-Problemen
Testen Sie beide Plattformen frühzeitig Android und iOS können aus unterschiedlichen Gründen scheitern

Wenn das Paket sauber installiert, aber Ihre erste Animation nicht erscheint, handelt es sich in der Regel nicht um ein Installationsproblem. Es handelt sich in der Regel um den Asset-Pfad, die Komponentengröße oder die Wiedergabe-Konfiguration.

Ihr erster Lottie-Animation anzeigen

Die erste funktionierende Animation sollte langweilig sein. Lokale Datei. Fixierte Größe. Autoplay an. Schleifen optional. Fangen Sie nicht mit bedingter Wiedergabe, Remote-JSON oder einer stark verschachtelten Animationsexport an.

Ein modernes Entwicklungsarbeitsplatz mit einem Laptop, das code anzeigt, und einem Monitor, der eine mobile Animationen-App zeigt.

Eine lokale Animation hinzufügen

Erstellen Sie einen Asset-Ordner, wenn Sie keinen haben:

assets/
  animations/
    success.json

Bleiben Sie bei einfachen Namen. Vermeiden Sie Leerzeichen, ungewöhnliche Punktation und Ordner mit vielen Ebenen von Verzeichnissen. Sie möchten require() Pfade, die offensichtlich sind.

Wenn Sie Lottie für eine erste brandgemäße Ladebildschirm oder eine Übergabe nach dem Starten verwenden, denken Sie sorgfältig darüber nach, bevor Sie eine große Animation in den Startpfad legen. Das ist besonders wahr, wenn Sie auch Ihre React Native Splash-Screen-Verhalten anpassen.

Mit LottieView rendern

Erstellen Sie eine dedizierte Komponente anstatt sie direkt in einem großen Bildschirm-Datei einzufügen:

import React from 'react';
import { View, StyleSheet } from 'react-native';
import LottieView from 'lottie-react-native';

export function SuccessAnimation() {
  return (
    <View style={styles.container}>
      <LottieView
        source={require('../assets/animations/success.json')}
        autoPlay
        loop={false}
        style={styles.animation}
      />
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    alignItems: 'center',
    justifyContent: 'center',
  },
  animation: {
    width: 220,
    height: 220,
  },
});

Drei nützliche Dinge tun es:

  • Es beweist, dass die Bibliothek korrekt rendern kann
  • Es beweist, dass der Asset-Pfad korrekt aufgelöst wird
  • Es gibt Ihnen einen isolierten Ort, an dem Sie die Wiedergabe und Größe später anpassen können

Eine Handvoll Falle zeigt sich sofort, wenn Sie die Grundlagen überspringen:

  • Keine Breite oder Höhe: Die Animation kann existieren, aber unsichtbar sein.
  • Schlecht require() Path: Metropolitan findet das Datei nicht.
  • Ungültige Export: Einige JSON-Dateien sind technisch gültig, aber enthalten Funktionen, die auf dem Mobilgerät nicht wie erwartet verhalten.

Behalten Sie die erste Rendern lokal und deterministisch. Sie testen die Integration, nicht die Architektur.

Ein besserer ersten Bildschirmtest

Setzen Sie das Komponenten auf einer einfachen Bildschirm mit einem neutralen Hintergrund:

import React from 'react';
import { SafeAreaView, StyleSheet } from 'react-native';
import { SuccessAnimation } from './src/SuccessAnimation';

export default function App() {
  return (
    <SafeAreaView style={styles.screen}>
      <SuccessAnimation />
    </SafeAreaView>
  );
}

const styles = StyleSheet.create({
  screen: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#fff',
  },
});

Wenn dies in beiden iOS- und Android-Emulatoren funktioniert, haben Sie den ersten echten Hürden überwunden. Von dort aus ist der nächste Schritt nicht darin, mehr Animationen hinzuzufügen. Es geht darum, zu lernen, wann Sie deklarative Eigenschaften verwenden und wann Sie direkt mit Referenzen die Kontrolle übernehmen.

Meisterung der Lottie-Animation-Steuerung

Die meisten Lottie-React-Native-Fehler zeigen sich, wenn die Animation auf den Zustand reagieren muss. Autoplay ist einfach. 'Spielen Sie diesen Abschnitt, wenn der Benutzer ein Produkt mag, umkehren Sie, wenn er es nicht mag, und stottern Sie nicht, wenn das Komponenten neu gerendert wird' ist, wo es sich verkompliziert.

Eine Vergleichstabelle, die deklarative versus imperative Animationsteuerungsmethoden in Lottie erklärt, mit ihren spezifischen Einsatzfällen.

Use props when playback is simple

Für nicht-interaktive Wiedergabe sind Eigenschaften ausreichend.

<LottieView
  source={require('../assets/animations/loading.json')}
  autoPlay
  loop
  speed={1}
/>

Dieser Stil ist gut für:

  • Ladeindikatoren
  • passive Einführungsillustrationen
  • dekorative Leerräume

Es ist deklarativ und lesbar. Der Komponenten wird geladen, die Wiedergabe beginnt und React bleibt im Auge. Wenn die Animation logik vollständig durch Eigenschaften beschrieben werden kann, bleibt sie da.

Ein weiterer deklarativere Fall ist progresswo Sie die Animationsebene an einen anderen Wert binden. Das funktioniert gut, wenn die Bewegung einen externen Fortschrittsquellen widerspiegeln soll, aber es ist weniger bequem für einmalige Auslöseereignisse.

Hier ist ein schneller visueller Vergleich, bevor wir zu Referenzen übergehen:

Verwenden Sie refs, wenn der Zustand die Animation steuert

Wenn der Benutzer klickt, schaltet oder eine Aktion abschließt, ist eine Referenz in der Regel die sicherere Wahl. Realweltliche Daten zeigen 68% der Entwickler, die Hybridframeworks verwenden, berichten über fehlgeschlagene Animationstrigger aufgrund falscher Referenzhandhabung in useEffect Hooks, weshalb vertrauenswürdige Muster, die sich um animation.current.play() beschäftigen, wie in dieser Capacitor-fokussierten Diskussion über fehlgeschlagene Trigger.

Dieses Problem ist nicht nur auf hybride Apps beschränkt. Es tritt auch in reinen React Native-Anwendungen auf, insbesondere wenn Entwickler Refs wiederherstellen, die Wiedergabe vor dem Mount auslösen oder Animationenaufrufe an unstabile Effekte binden.

import React, { useRef, useState } from 'react';
import { Pressable } from 'react-native';
import LottieView from 'lottie-react-native';

export function LikeButton() {
  const animationRef = useRef<LottieView>(null);
  const [liked, setLiked] = useState(false);

  const onPress = () => {
    if (!animationRef.current) return;

    if (liked) {
      animationRef.current.play(60, 0);
    } else {
      animationRef.current.play(0, 60);
    }

    setLiked(!liked);
  };

  return (
    <Pressable onPress={onPress}>
      <LottieView
        ref={animationRef}
        source={require('../assets/animations/like.json')}
        loop={false}
        autoPlay={false}
        style={{ width: 96, height: 96 }}
      />
    </Pressable>
  );
}

Eine zuverlässige geliked-und-unliked-Muster

Dieses Muster hält sich besser in der Produktion als die Aufrufung von play() innerhalb useEffect jederzeit, wenn sich der Zustand ändert.

Weshalb es funktioniert:

  • Das Ereignis besitzt den Animationstrigger: Ein Druckereignis ist ein stabiler Moment, um die Wiedergabe zu starten.
  • Der Ref bleibt lokal und persistente: useRef vermeidet unnötige Rerenderungen.
  • Der Komponente werden Autoplay-Konflikte vermieden. Sie möchten nicht, dass das Mount-Verhalten mit dem vom Benutzer ausgelösten Verhalten kämpft.

Häufige Fehler zu vermeiden:

  1. Bevorzugt vor dem Ref-Existenz-Test
    Wenn animationRef.current ist null, es wird keine Wiedergabe geben. Bewahre es.

  2. Mit autoPlay mit imperativen Steuerungen
    Wählen Sie einen Standardbesitzer für die Wiedergabe.

  3. Alles durch die Cloud useEffect
    Effekte sind nützlich, aber für UI-Aktionen fügen sie oft Timing-Probleme anstatt sie zu entfernen.

Wenn eine Animation auf einen Tap reagiert, lösen Sie sie zunächst innerhalb des Tap-Handlers aus. Greifen Sie useEffect nach, wenn die Quelle der Wahrheit außerhalb dieser Interaktion lebt.

Leistungsanpassung für Produktionsanwendungen

Lottie React Native ist eine der Bibliotheken, die sich leichtgewichtig anfühlt, bis Teams große JSON-Dateien in die App-Bundle packen und sich wundern, warum sich die Startzeit verschlechtert hat. Die Animation selbst ist nicht immer das Problem. Die Lieferstrategie ist es.

Eine Infografik, die drei wichtige Vorteile der Lottie-Performance-Optimierung darstellt: eine verringerte Bundle-Größe, verbesserte Bildraten und geringere Speicherverbrauch.

Woher Teams Schwierigkeiten bekommen

Die einfachste Fehlentscheidung ist, jede Animation direkt in JavaScript zu bündeln und sie alle zu früh zu laden. Dieses Leitfaden zum Versenden von Lottie-JSON falsch., kann die Überladung von JS-Bundles mit Assets wie Lottie-JSONs die App-Startzeiten erhöhen 40% oder mehr auf mittelgroßen Geräten, und das Verschieben von ihnen in native Assets für on-Demand-Laden ist eine kritische Optimierung.

Das passt zu dem, was viele Teams in der Praxis sehen. Der Problem ist nicht ein einzelner kleiner Erfolgsschritt. Es ist die Ansammlung:

  • Laderzustände
  • Einkaufsreaktionen
  • __CAPGO_KEEP_0__
  • leere Bildschirme
  • Dateiordner mit Lokaldateien und anderen Paketlastigen Assets.

Wenn Ihr App bereits ein Budgetproblem für die Startzeit hat, können Lottie-Dateien es schnell verschlimmern.

Was sollten Sie zuerst optimieren?

Beginnen Sie mit der Ausgabe selbst. Eine mangelhafte Animationsexportierung trägt Komplexität, die Sie später bei der Verarbeitung, im Speicher und bei der Renderstabilität bezahlen werden. Nehmen Sie keine Designerexporte ohne Weiteres an.

Verwenden Sie diesen Produktcheckliste:

  • Komprimieren Sie die JSON-Datei vor dem Versand: Kleinere Dateien sind leichter zu laden und verringern das Risiko einer Überlastung beim Start.
  • Verschieben Sie nicht-kritische Animationen aus dem JS-Bundle: Bleiben Sie bei der code-Startseite auf dem, was die App sofort benötigt.
  • Laden Sie Animationen auf Anforderung: Rendern Sie, wenn die Bildschirm oder die Aktion es benötigt.
  • Audit altes Gerät-Verhalten: Eine moderne Simulator kann teure Wiedergabe verbergen.
  • Vermeiden Sie die Verwendung großer Lottie-Dateien als Startanzeige: Wenn es nicht für die erste Interaktion kritisch ist, sollte es nicht mit der App-Startzeit konkurrieren.

Für Teams, die ernsthafte mobile Leistungsbetrieb durchführen Die AppLighter-Leitfaden zur mobilen Leistung Es ist ein nützliches Begleitlesen, da es Animationenentscheidungen in den größeren Kontext der App-Startzeit, der Rendernung und der Rahmenbedingungen der Frameworks stellt.

Eine harte Wahrheit: Eine schöne Animation, die die erste Interaktion verzögert, ist normalerweise ein Produktfehler, nicht ein Designgewinn.

Sie sollten sich auch über React Native in Isolation hinaus denken. Teams, die in hybriden Stapeln arbeiten, stoßen auf ähnliche Asset-Ladeprobleme, und die umfassendere Animationenleistungshinweise für Capacitor-Apps passen gut zu Lottie-Entscheidungen.

Localdateien gegenüber Remote-Lieferung

Localdateien sind vorhersehbar. Sie funktionieren offline, entfernen Netzwerkvariabilität und sind einfacher zu testen. Sie sind auch leicht zu überbündeln.

Remote-Lieferung hält das Binärdatei leaner, aber jetzt hat Ihre Animation Verfügbarkeit, Caching und Fallback-Bedürfnisse. Diese Kompromiss ist akzeptabel für nicht-kritische Bewegung. Es ist riskant für primäre UX-Zustände wie Kaufbestätigung oder Authentifizierungserfolg.

Ein praktischer Split funktioniert gut:

Asset-Typ Bessere Standard
Kerninteraktionsanimation Local, optimiert, nicht überdimensioniert
Gelegentliche Werbemotion Remote mit Fallback
Startpfadanimation Local nur wenn absolut notwendig
Selten genutzte Funktionen-Illustration Nachfrage-basierte Laden

Wenn Sie nur eine Regel aus dieser Abschnitt anwenden, verwenden Sie diese: Lottie-JSONs als Leistungskritische Assets und nicht als harmlose Dekoration behandeln.

Häufige Lottie-Probleme lösen

Wenn Lottie nicht funktioniert, ist der Grund meist ganz einfach. Falsche Pfade. Fehlende Größe. Falsche Referenztiming. Übermäßige JSON-Datei. Der schnellste Weg, es zu debuggen, ist die Reduzierung von Variablen.

Animation wird nicht auf Android gerendert

Zuerst bestätigen Sie, dass die JSON-Datei gelöst wird. Dann geben Sie dem Komponenten explizite Dimensionen.

<LottieView
  source={require('../assets/animations/success.json')}
  autoPlay
  style={{ width: 200, height: 200 }}
/>

Wenn das immer noch nicht funktioniert, tausche eine andere bekannte Animation ein. Das sagt dir, ob das Problem beim Datei- oder beim Setup-Teil liegt.

Playback ist auf älteren Geräten ruckelig

Dies deutet normalerweise auf das Asset, nicht auf das Komponenten API.

Versuchen Sie diese Lösungen:

  • Reduzieren Sie die Animation komplexität: Stellen Sie bei einem schweren Quelldatei eine leichte Export an.
  • Laden später: Konzentrieren Sie sich nicht auf die Anfangsseite.
  • Test eine komprimierte Version: Wenn das komprimierte Datei besser funktioniert, hast du den Hauptschuldigen gefunden.
  • Entfernen Sie mehrere gleichzeitige Lottie-Ansichten: Viele Animationen auf einer Seite können zu viel sein.

Der Referenzwert ist null oder play tut nichts.

Null-Referenzen bedeuten normalerweise, dass der Trigger vor dem Mount ausgelöst wird, oder das Komponenten bedingt entfernt wurden.

if (animationRef.current) {
  animationRef.current.play();
}

Bleiben Sie die Referenz stabil mit useRef, und erzeuge das animierte Komponente nicht unnötig neu. Wenn du wiederholte, ungewöhnliche Probleme in lokalen Builds debuggst, kann das Leeren veralteter Caches helfen. Ein einfacher Yarn-Cache-Pflege-Routine ist manchmal ausreichend, um falsche Asset-Verhaltensweisen während der Entwicklung zu entfernen.

Die Animation sieht falsch auf verschiedenen Bildschirmgrößen aus

Lassen Sie die Animation nicht die Layoutdefinition bestimmen. Fügen Sie sie in einen Container ein und größen Sie sie absichtlich.

  • Verwenden Sie feste Grenzen für Icons und Reaktionen
  • Verwenden Sie aspect-aware Wrapper für größere Illustrationen
  • Vermeiden Sie eine Ausdehnung auf die volle Breite, ohne die Exportkomposition zu überprüfen.

Die meisten "Lottie ist kaputt"-Berichte enden letztendlich mit Layout-Problemen, Asset-Problemen oder Timing-Problemen. Die Bibliothek tut oft genau das, was Sie gefragt haben.

Wenn Sie ein letztes Debugging-Shortcut benötigen, entfernen Sie alle fortgeschrittenen Eigenschaften, rendern Sie eine lokale Animation in einem zentrierten View und bauen Sie sie wieder auf.


Capgo helps teams ship JavaScript, asset, and config fixes to Capacitor apps without waiting on store review. If you maintain a hybrid app and need a safer way to push updates, handle staged rollouts, and recover quickly from front-end issues, Capgo ist wert, einen Blick zu werfen.

Live-Updates für Capacitor-Apps

Wenn ein Bug im Weblayer lebt, schicken Sie die Reparatur über Capgo anstatt Tage zu warten, bis die App im App-Store genehmigt ist. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Review-Verfahren bleiben.

Menschliche Unterstützung von Martin

Jetzt loslegen

Neuestes aus unserem Blog

Capgo bietet Ihnen die besten Einblicke, die Sie benötigen, um eine wirklich professionelle Mobilanwendung zu erstellen.