안드로이드 앱에서 스크롤 화면 노출 추적하기
프론트엔드
안드로이드 앱에서 스크롤 화면 노출 추적하기
두줄요약
안드로이드 앱에서 스크롤 화면의 뷰 노출을 정확히 추적하는 방법을 다뤘습니다. Jetpack Compose와 위치 겹침 판정을 활용해 Visibility Tracker를 만든 과정을 소개했습니다.
문제 상황
- 안드로이드 앱에서 스크롤 화면의 뷰 노출을 정확히 측정해야 하는 요구
- RecyclerView 기반 노출 추적의 조기 생성 문제와 과다 이벤트 발생
- 중첩 스크롤, 삽입/삭제, 팝업 가림 등으로 인한 노출 판정의 복잡성
구조와 흐름
- Jetpack Compose의 LazyColumn, LazyRow와 visibleItemsInfo로 현재 보이는 아이템 추적 시도
- onGloballyPositioned로 각 뷰의 위치 정보를 얻어 개별 뷰 기준 판정으로 전환
- 뷰와 부모, 조상 뷰의 겹치는 영역을 비교해 완전 노출 여부를 판단하는 방식 채택
적용해볼 점
- 완전 노출뿐 아니라 노출 비율까지 확장 가능한 Visibility Tracker 오픈소스화
- 홈 최소화 복귀, 다른 화면 복귀 같은 상태 변화 대응 파라미터 제공
- 팝업 가림 같은 부모 자식 관계 밖의 가림은 아직 해결 과제로 남음
