Lottie: mi ez, animációk és hogyan működik mobil platformokon

Szerző: IT Sectr Megjelenés: 2026-05-04 Olvasási idő: 8 perc

A Lottie egy könyvtár az Adobe After Effects animációinak megjelenítéséhez mobilos és webes alkalmazásokban. Az animációk JSON formátumba exportálódnak a Bodymovin plugin segítségével, és natívan játszódnak le iOS, Android, Flutter és Web platformokon minőségveszteség nélkül. Az Airbnb Design — Lottie adatai szerint a könyvtárat több mint 100 000 alkalmazás használja, nehéz videofájlokat és GIF-eket váltva fel könnyű vektoros formátummal.

Főbb pontok

  • Lottie — Airbnb könyvtár After Effects animációk megjelenítéséhez mobil platformokon és weben.
  • Bodymovin — plugin az After Effectshez, amely JSON formátumba exportálja az animációkat.
  • JSON séma A Lottie rétegeket, alakzatokat, kulcskockákat és interpolációs görbéket ír le.
  • iOS integráció — LottieView a Swift Package Managerből SwiftUI és UIKit számára.
  • Android integráció — LottieAnimationView XML-ben Gradle függőségen keresztül.

Mi az a Lottie és hogyan működik

Lottie — egy nyílt forráskódú könyvtár, amelyet az Airbnb hozott létre 2015-ben vektoros animációk valós idejű megjelenítésére. A fejlesztő létrehozza az animációt az Adobe After Effectsben, exportálja a Bodymovin pluginon keresztül JSON-ba, és a Lottie lejátszza ezt a JSON-t a cél eszközön, értelmezve a rétegeket, alakzatokat, átlátszóságot és animációs görbéket.

Ellentétben a videofájlokkal vagy GIF-ekkel, a Lottie nem függ a képernyő felbontásától — az animáció vektorosan jelenik meg és ugyanúgy néz ki bármilyen DPI-jű eszközön. A JSON-animáció mérete átlagosan 5-10-szer kisebb, mint egy egyenértékű GIF vagy videó, ami kritikus a korlátozott adatforgalmú mobilalkalmazásoknál.

Az Airbnb Engineering szerint a Lottie bevezetése 80%-kal csökkentette az animációk méretét az alkalmazásban a Precomposed videóhoz képest, miközben a képkockasebesség 60 FPS maradt az összes támogatott eszközön. Ma a Lottie támogatott iOS, Android, Flutter, React Native, Web (HTML Canvas és SVG) és asztali platformokon.

A Lottie teljesítményét a natív megjelenítés biztosítja: iOS-en a Core Animation CALayerrel, Androidon — saját Canvas renderelő C++-ban JNI-n keresztül. Ez lehetővé teszi összetett animációk lejátszását tucatnyi réteggel kockaveszteség nélkül még középkategóriás eszközökön is. A WebView megoldásokkal (GIF, APNG, videó) ellentétben a Lottie nem hoz lére külön folyamatot a megjelenítéshez, és nem fogyaszt többletmemóriát a kockák dekódolásához.

Használja a Lottie-t töltőjelzőkhöz, mikro-interakciós ikonokhoz, onboarding képernyőkhöz és ünnepi promóciós animációkhoz, ahol a simaság és a kis méret fontos.

A Lottie ökoszisztéma tartalmaz hivatalos lejátszókat nyolc platformhoz, LottieFiles szerkesztőt a böngészőben történő előnézethez és egy piacteret ezer kész animációval. A fejlesztő letöltheti a JSON-t, integrálhatja a projektbe, és beállíthatja a színeket és sebességet a tervezési rendszerhez anélkül, hogy megnyitná az After Effects-t. A LottieFiles SDK-t is biztosít a gyorsított integrációhoz, lehetővé téve az animációk betöltését AIR linken keresztül, ami lehetővé teszi az animációk frissítését az eszközökön anélkül, hogy új alkalmazásverziót kellene közzétenni az App Store-ban vagy a Google Play-ben.

A Lottie JSON formátum és Bodymovin

A Lottie JSON séma — egy nyílt szabvány a vektoros animáció leírására, három szintből áll: kompozíció (composition), rétegek (layers) és alakzatok (shapes). A kompozíció metaadatokat tartalmaz: vászonméret, képkockasebesség és időtartam.

JSON struktúra

A JSON gyökérobjektum tartalmazza a layers mezőt — az animációs rétegek tömbjét. Minden réteg lehet alakzat (Shape Layer), kép (Image Layer), szöveg (Text Layer) vagy előkompozíció (PreComp Layer). Minden réteghez transzformációs tulajdonságok vannak meghatározva: pozíció, méretarány, forgatás és átlátszóság kulcskockákhoz kötve.

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] }
        }]
    }]
}

A kulcskockák (Keyframes) időbélyegek, értékek és Bezier-görbék tömbjeivel vannak megadva az interpolációhoz. A Bodymovin automatikusan konvertálja az After Effects görbéit a Lottie által érthető formátumba, megtartva az időzítést és az ease függvényeket kockapontossággal.

Bodymovin — export plugin

Bodymovin — egy bővítmény az Adobe After Effectshez, amely a kompozíciót Lottie JSON fájlba exportálja. A plugin támogatja az After Effects legtöbb funkcióját: alakzatok, maszkok, effektek, szövegrétegek és követés. A korlátozások a 3D rétegekre és néhány pluginre vonatkoznak — ezek nem exportálódnak, és az animáció 2D-re egyszerűsítését igénylik.

Lottie integráció iOS-en

iOS-en a Lottie a Swift Package Manageren, CocoaPods-on vagy Carthage-en keresztül integrálódik. A fő osztály — LottieView SwiftUI-hoz és LottieAnimationView UIKit-hez. A lottie-ios csomag támogatja az animációkat a bundle-ből, hálózatról és Data objektumokból.

LottieView SwiftUI-ban

LottieView — egy View komponens SwiftUI-hoz, amely elfogadja a JSON fájl nevét a bundle-ből vagy egy URL-t a hálózatról történő betöltéshez. Az animáció automatikusan lejátszódik a megadott sebességgel és ismétlésszámmal.

swift
import Lottie

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

UIKit esetén a LottieAnimationView használatos konfigurációval az Interface Builderen keresztül vagy programozottan. A View támogatja az összes animációs állapotot: play, pause, stop, valamint egy folyamatjelző sávot az adatok betöltéséhez. A LottieAnimationView beágyazható UITableViewCell-be vagy UICollectionViewCell-be animált ikonokhoz listákban — görgetéskor a cella animációja szünetel, a képernyőn való megjelenéskor pedig folytatódik, ami CPU és GPU erőforrásokat takarít meg.

A modern iOS fejlesztés aktívan használja a Lottie-t a SwiftUI-val kombinálva animált onboarding képernyők és interaktív elemek létrehozásához: a képernyő görgetésekor az animáció elŔrehaladása szinkronizálódik a görgetési pozícióval a ScrollViewReader segítségével. Ez parallaxis hatást hoz lére, ahol az animáció folyamatosan követi a felhasználó ujjának mozgását, növelve az elköteleződést nehéz videofájlok használata nélkül.

Lejátszás kezelése

A Lottie lejátszó iOS-en API-t biztosít a lejátszáshoz egy adott kockától egy adott kockáig, a kitöltés/körvonal színének megváltoztatásához KeyPath-eken keresztül, és események figyeléséhez a LottieAnimationDelegate-on keresztül. Szüneteltetheti az animációt görgetéskor, és folytathatja megálláskor a teljesítmény optimalizálása érdekében.

Lottie integráció Androidon

Androidon a Lottie a com.airbnb.android:lottie Gradle függőségen keresztül csatlakozik. A fő komponens — LottieAnimationView, amely elhelyezhető az XML elrendezésben mint egy szokásos View, és konfigurálható attribútumokon keresztül vagy programozottan.

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

Az XML elrendezésben a LottieAnimationView attribútumokon keresztül konfigurálható: lottie_rawRes (hivatkozás a JSON-ra a res/raw-ban), lottie_autoPlay, lottie_loop. Betöltés a hálózatról támogatott a lottie_url-en vagy programozottan a setAnimationFromUrl-en keresztül. A Lottie Android verziója saját Canvas renderelőt használ, függetlenül a hardveres gyorsítástól.

Betöltés RawRes-ből és hálózatról

Statikus animációkhoz a JSON a res/raw-ba kerül, és a RawRes-en keresztül hivatkoznak rá. Dinamikus animációkhoz a Lottie betölti a JSON-t URL-ből vagy Data objektumból egy folyamatjelző visszahívással, amely a betöltés százalékát mutatja. A Lottie győrűtár automatikusan elmenti a betöltött animációkat a memóriába, hogy elkerülje az újratöltést ismételt megjelenítéskor.

A Lottie Androidon támogatja az animációt RecyclerView-ban a LottieAnimationView-n keresztül, amely közvetlenül a lista elemébe van ágyazva. A teljesítmény optimalizálása érdekében ajánlott a setAnimation használata késleltetett betöltéssel, és az animáció kikapcsolása a nem látható elemeknél a RecyclerView.OnChildAttachStateChangeListener visszahíváson keresztül. Ez megakadályozza az FPS csökkenését hosszú listák animált ikonokkal történő görgetésekor.

Lottie-animációk testreszabása és kezelése

A Lottie hatékony API-t biztosít a kész animációk testreszabásához anélkül, hogy módosítaná az eredeti After Effects fájlt. Ez lehetővé teszi egyetlen animáció hozzáigazítását különböző témákhoz, színekhez és alkalmazásméretekhez.

Szín változtatása KeyPath-en keresztül

A kitöltés és körvonal színei futási időben megváltoztathatók a KeyPath-en keresztül — egy sztring útvonalon az animációs elemhez. Például a kosár ikon színének pirosról kékre váltásához elég megtalálni a KeyPath-jét és alkalmazni egy új értéket. Ez kiküszöböli annak szükségességét, hogy ugyanazon animáció több verzióját tároljuk különböző színsémákhoz.

Sebesség és elŔrehaladás kezelése

Minden Lottie-animáció vezérelhető sebesség (animationSpeed), elŔrehaladás (setProgress) és kockatartomány (play(fromFrame:toFrame:)) szerint. Az elŔrehaladás mód lehetővé teszi az animáció szinkronizálását a görgető gesztussal: minél távolabb van görgetve a képernyő, annál elŔrehaladottabb az animáció — ez népszerű technika onboarding és parallaxis effektekhez.

ParaméterLeírásPélda érték
animationSpeedA lejátszási sebesség szorzója2.0 — kétszer gyorsabb
loopModeAz animáció ismétlési módja.loop, .repeat(3), .playOnce
progressKocka kézi vezérlése 0.0 és 1.0 között0.5 — 50% animáció
play(from:to:)Kockatartomány lejátszásaplay(from: 0, to: 30)

Gyakran Ismételt Kérdések

Miben különbözik a Lottie a GIF-től és videótól?

A Lottie vektoros formátumot használ, amely nem függ a felbontástól, és 5-10-szer kevesebb helyet foglal, mint a GIF. Ellentétben a videóval, a Lottie támogatja az átlátszó hátteret, a színek futási időben történő változtatását és bármilyen méretet minőségveszteség nélkül, ami ideálissá teszi adaptív interfészekhez.

Hogyan csökkenthető a Lottie-fájl mérete?

Használja a lottie-image-compressor eszközt a JSON tömörítéséhez kockaveszteség nélkül. Optimalizálja az eredeti animációt az After Effectsben: csökkentse a kulcskockák számát, kerülje a raszterképek használatát vektoros rétegek helyett és egyszerűsítse az összetett maszkokat.

Támogatja a Lottie a szövegrétegeket?

Igen, a Lottie támogatja az After Effects szövegrétegeit, beleértve a betűtípusokat, méretet, színt és igazítást. A szöveg dinamikusan módosítható futási időben néhány platformon, azonban összetett, különböző betűtípusú szöveghez jobb natív UI komponenseket használni.

Használható a Lottie logókhoz?

Igen, a Lottie kiválóan alkalmas animált logókhoz. A vektoros formátum élességet garantál bármilyen képernyőn — az Apple Watch-tól a 4K monitorig. Márkaváltáskor a logó színei frissíthetők a KeyPath-en keresztül anélkül, hogy újra exportálná az animációt.

Támogatja a Lottie az interaktív animációkat?

A tiszta Lottie nem támogat interaktív triggereket a JSON-on belül. Az interaktivitás érdekében az animáció szegmensekre van osztva, amelyeket a kód indít el gombnyomáskor vagy görgetéskor. Az elŔrehaladás mód lehetővé teszi az animáció gesztushoz kötését parallaxis effektek létrehozásához.

Összefoglalás

  • Lottie — vektoros animáció az After Effectsből, natívan lejátszva az összes mobil platformon.
  • Bodymovin — After Effects plugin, amely kompozíciókat exportál nyílt Lottie JSON formátumba.
  • A JSON kompozíciót, rétegeket, alakzatokat és kulcskockákat tartalmaz Bezier-görbékkel a sima interpolációhoz.
  • iOS-en integráció a LottieView-n (SwiftUI) vagy LottieAnimationView-n (UIKit) keresztül a Swift Package Managerből.
  • Androidon — LottieAnimationView XML-ben vagy LottieComposable Jetpack Compose-hoz.
  • A KeyPath lehetővé teszi a kitöltés/körvonal színeinek futási időben történő megváltoztatását anélkül, hogy újra exportálná az animációt az After Effectsből.
  • A Lottie 5-10-szer kompaktabb, mint a GIF, támogatja az átlátszóságot és bármilyen méretet minőségveszteség nélkül.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is