설정,

settings.gradle.kts 설정

dependencyResolutionManagement {
  repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
  repositories {
    google()
    mavenCentral()
    maven { url=uri("https://jitpack.io") }
    maven { url=uri ("https://oss.sonatype.org/content/repositories/snapshots/") }
  }
}

maven { url=uri ("https://oss.sonatype.org/content/repositories/snapshots/") }를 추가

libs.versions.toml 에서

[versions]
lottieCompose = "6.6.0"
[libraries]
lottie-compose = { module = "com.airbnb.android:lottie-compose", version.ref = "lottieCompose" }

build.gradle.kts(모듈단위)

dependencies {
...
  // lottie
  implementation (libs.lottie.compose)
  }

사용

// compose
// 선언
val composition by rememberLottieComposition(
    LottieCompositionSpec.Url("https://lottie.host/4add9811-6ad1-4021-9a41-b72f1f9e014a/eqSh7vm4jN.lottie")
  )
  val lottieAnimatable = rememberLottieAnimatable()
  LaunchedEffect(composition) {
    lottieAnimatable.animate(
      composition = composition,
      iterations = LottieConstants.IterateForever
    )
  }
  
// 적용
LottieAnimation(
      composition = composition,
      progress = lottieAnimatable.progress,
      modifier = Modifier.fillMaxSize()
    )
    
// stop
GoogleAuthButton(signInVm) { auth: FirebaseAuth ->
        CoroutineScope(Dispatchers.Main).launch {
          lottieAnimatable.snapTo(progress = 0f)
        }
        doSigned(auth)
      }// GoogleAuthButton

중요 나갈때 stop 하지 않으면 scope 내에서 악영향을 줌.

0개의 댓글