[iOS] Render Loop & Hitch(2)
2024. 2. 24. 18:31
iOS/iOS
Hitch는 Render Loop에서 제시간에 Frame을 준비하지 못했을 때 발생한다. 이러한 Hitch는 어떤 Stage에서 발생했냐에 따라, Commit Hitch, Render Hitch로 구분된다. Commit Hitches "Commit Phase"는 UI를 변경하고 업데이트된 UI Layer Tree를 Render server로 제출한다. 이때 Render Server로 제출되는 결과물을 "Commit"이라 부른다. 다음과 같이 "Event Phase"에서 touch이벤트를 통해 backgroundColor와 frame을 변경했다고 가정하자. 다음과 같이 시스템은 display 혹은 layout이 필요하다고 마킹을 하게 된다. 이후 "Commit Phase"에서 시스템에 의해 각 draw(r..
[iOS] Render Loop & Hitch(1)
2024. 2. 22. 01:05
iOS/iOS
App에서 화면 스크롤, Pop Up 등 여러 Animation이 존재한다. 이러한 Animation은 유저의 터치와 같은 이벤트에 의해서 발생하는데, App은 이러한 유저의 이벤트를 통해 변경된 UI를 화면에 Display 하는 과정을 Render Loop이라 부른다. Hitch Render Loop의 각 Cycle에서 만들어지는 화면을 "Frame"이라 부른다. Swift에서 일어나는 Animation의 경우, 만화처럼 Frame을 빠르게 교체해 실제로 연속적으로 일어난것 처럼 보이게 하는 것이다. 만약 Frame이 제때 만들어지지 않는다면 제시간에 교체하지 못하게 되어 사용자에게 버벅거리게 보일 것이다. 이처럼 다음 Frame이 늦어져, 애니메이션이 끊기는 시간을 "Hitch"라고 부른다. 이때, ..