본문 바로가기
iOS/이슈

[iOS Issue] Lottie 리소스 용량 관련 이슈

by Sky Titan 2022. 4. 16.
728x90
 

Json files is taking more time to load(Approximately 1.7 secounds) · Issue #1224 · airbnb/lottie-ios

Hi Folks, Here in my current application am using the Lottie json files for animations, json file size is 1.2mb. which is loading quite good in lottie preview website. When i'm integrating the ...

github.com

 내가 겪은 이슈와 거의 동일한 이슈인 것 같다.

 1.2mb의 json파일을 로딩하는데 1개를 로드할 때는 1.7초, 3개를 로드할 때는 2.8초가 걸렸으며 user입장에선 화면이 멈춘 것으로 보일 수 있다는 내용인데,

 

 내가 사용했던 json파일도 mb단위들이었고 1개를 사용하는 화면에서도 로드시간이 상당히 느려서 순간 크래시가 발생한 줄 알았다.

 그리고 list에서 AnimationView를 사용해서 5개 이상의 animation 파일들을 로드해올 때는 아예 메모리 이슈로 앱이 다운되버렸다.

 

Solution

 사실 명확한 솔루션이랄 게 없다... 그냥 리소스 파일의 용량을 줄이는 수 밖에 없는 거 같다.

 테스트해보았을 때, 1mb이상 넘어가면 확실히 문제가 생기는 것 같고, 내 생각엔 500kb 미만으로는 줄여야할 것 같다는 생각이다.

 

 코드 레벨에서 그나마 최적화를 해보자면, AnimationView를 사용 시 animation 인스턴스를 AnimationView를 사용하기 전에, 즉 앱을 호출했을 때 등의 경우에 미리 비동기적으로 생성을 해놓고, 필요할 때 지정해서 사용하는 방식이 그나마 UX적으로 블로킹이 덜 되게 하는 방법인 것 같다.

 이렇게 하려면 AnimationView를 xib에서 추가 시, xib에서 animationName을 지정하지 않고 필요한 경우 미리 animation 인스턴스를 생성해놓고 지정해서 쓰는 것을 권장한다는 걸로 솔루션이 귀결되기도 한다.

 

 또한 동일한 animation 리소스를 사용한다면 여러 개의 animation 인스턴스를 생성하지 않고 하나만 생성하고 같이 사용하는 것도 하나의 방법일 것 같다.

728x90

댓글