
Lottie는 After Effects 애니메이션을 실시간으로 렌더링하는 iOS, Android 및 React Native 라이브러리입니다. 평소, gif, css 애니메이션을 사용한 결과물보다 더욱더 만족스러운 퀄리티를 만들어 낼 수 있다는 장점을 가지고 있습니다. 또 다른 장점으로는 디자이너가 원하는 완성된 결과물을 바로 적용하기 때문에, 개발자가 애니메이션에 구현에 대한 시간과 노력을 절약할 수 있습니다. 애니메이션에 대한 모든 정보가 JSON 파일로 저장되기 때문에 특별한 프로그램 설치가 필요없습니다.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47import React, { useState } from 'react';
import Lottie from 'react-lottie';
import ThumbsUp from '../lottie/thumbs-up.json';
const lottieOptions = {
  animationData: ThumbsUp,   
  loop: false,        
  autoplay: false,   
  rendererSettings: {
    className: 'add-class', // svg에 적용
    preserveAspectRatio: 'xMidYMid slice'
  }
};
const ThumbsUpComponent = () => {
	const [isStopped, SetIsStopped] = useState(false);
	const [isPaused, SetIsPaused] = useState(true);
	const onStop = () => {
		SetIsStopped(!isStopped)
	};
	const onPause = () => {
		SetIsPaused(!isPaused)
	};
	return (
		<div className="thumbs-up">
			<Lottie
				options={lottieOptions}
				isStopped={isStopped}
				isPaused={isPaused}
				isClickToPauseDisabled={false}
				style={{width: '300px', height: '300px'}} // svg의 부모 div에 적용
				eventListeners={[
					{
						eventName: 'complete',
						callback: () => console.log('the animation completed'),
					},
				]}
			/>
			<button onClick={onPause}>Play/Pause</button>
		</div>
	)
}
export default ThumbsUpComponent;
그럼 어떤 단점을 가지고 있을까요? 오로지 After Effect으로 생성이 가능하기 때문에 진입장벽이 있을 수 있습니다. 애니메이션 오브젝트에만 생성 가능하며, 전체 화면의 트렌지션효과는 적용이 불가능합니다.
