내가 겪은 이슈와 거의 동일한 이슈인 것 같다.
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 인스턴스를 생성하지 않고 하나만 생성하고 같이 사용하는 것도 하나의 방법일 것 같다.
'iOS > 이슈' 카테고리의 다른 글
[iOS Issue] status bar 클릭 시 scrollView가 top으로 이동하는 현상 (0) | 2022.05.25 |
---|---|
[iOS Issue] constraint으로 animate 하기 전, layoutIfNeeded를 꼭 호출해야함 (0) | 2022.05.21 |
[iOS Issue] iOS15에서 소리만 실행되는 notification은 실행 불가 (0) | 2022.04.09 |
[iOS Issue] Webview에서 URL link가 실행되지 않는 이슈 (0) | 2022.03.28 |
[iOS Issue] UIView.animate에서 constraint 변경 동작 안함 (0) | 2022.03.05 |
댓글