[ 모바일 & 앱/Flutter & Dart ]
[Flutter/Mobile] Unity 개발자가 본 Flutter 렌더링 파이프라인: RepaintBoundary와 ValueNotifier로 캘린더 위젯 프레임 드랍(Jank) 방어하기
2026-11-13 21:35:54
TL;DRFlutter에서 월간 캘린더 셀을 터치할 때 발생하는 프레임 드랍(Jank)은 상위 위젯의 setState() 호출로 인해 42개 날짜 셀의 RenderObject 전체가 markNeedsPaint() 루프를 타기 때문입니다.Unity 6 (Unity 6.3) 게임 엔진의 컴포넌트 격리 멘탈 모델을 선언형 UI에 적용하여, 날짜 셀에 RepaintBoundary를 부여해 GPU 래스터 레이어 캐시를 확보했습니다.상태 전달을 캘린더 전체 리빌드가 아닌 단일 셀 단위의 ValueNotifier 구독으로 전환하여, UI 스레드 렌더링 시간을 14.8ms에서 1.8ms로 87.8% 단축하고 60fps를 실측 검증했습니다.1. 문제 현상: 날짜 하나를 눌렀을 뿐인데 왜 화면이 튀는가?쿠고랑의 캘린더 퍼..