목록 보기
스윙 iOS에서 더 개선된 애니메이션 시스템 만들기
프론트엔드

스윙 iOS에서 더 개선된 애니메이션 시스템 만들기

더스윙
더스윙
2025년 11월 5일

두줄요약

iOS 애니메이션의 예기치 않은 동작 원인을 CATransaction과 레이아웃 생명주기 관점에서 정리했습니다. CADisplayLink 기반 SWAnimation으로 진행도 제어, 취소, FPS 측정까지 확장한 사례를 소개했습니다.

핵심 내용

  • iOS에서 UIView.animate와 UIViewPropertyAnimator가 CATransaction 기반으로 동작해 예기치 않은 레이아웃 전염, 비동기 UI 변경 애니메이션, 애니메이션 가능한 속성 제한, 취소 어려움이 발생하는 문제 정리
  • CADisplayLink를 중앙 관리하는 DisplayLinkManager와 SWAnimation을 만들어 progress 기반으로 애니메이션을 직접 제어하고, Curve로 보간과 색상 계산을 일원화
  • 동일 구조를 FPSWatcher로 확장해 화면 FPS 측정과 성능 관리에도 활용

적용해볼 점

  • 애니메이션 로직을 UIKit 기본 동작에 맡기지 말고 진행도 계산과 취소 제어를 분리해 설계
  • 레이아웃 갱신과 비동기 UI 변경이 섞이는 환경에서 애니메이션 영향 범위 관리
  • CADisplayLink 기반 공통 인프라로 애니메이션과 성능 측정을 함께 운영

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...