Android Shimmer
Android Shimmer (스키머)
스키머는 정보가 로딩 중임을 보여 주면서도 다른 UI 요소가 렌더링되는 것을 막지 않는 컴포넌트예요. 레이아웃을 점진적으로 로딩하고 정보 구조에 대한 힌트를 주는 방법을 알려 드릴게요.
출처: 문서
본문
스키머는 정보의 한 구역이 로딩 중임을 알려 주면서, 다른 UI 요소가 렌더링되는 것을 막지 않아요.
스키머를 사용해 레이아웃을 점진적으로 로딩하고, 정보의 구조에 대한 힌트를 주세요.
Resources (리소스)
- Shimmer code
- Android guidance
Behavior (동작)
Indeterminate loading (불확정 로딩)
스키머는 불확정(indeterminate) 인디케이터예요. 프로세스가 끝나기까지 남은 시간을 전달하지 않아요. 긴 로딩 프로세스에는 피하세요. 스키머를 너무 오래 보게 되면 사용자가 뭔가 잘못됐다고 생각할 수 있답니다.
Layout (레이아웃)
스키머는 완전히 렌더링된 후 사용자가 보게 될 콘텐츠의 구조를 반영해야 해요.
최종 콘텐츠가 가변적인 동적 컴포넌트를 로딩할 때는 스키머를 사용해 일관되고 상위 수준의 정보를 전달하세요. 무엇보다 단순하게 유지하는 게 중요해요. 레이아웃이 복잡해지지 않도록 UI의 일관된 부분만 반영하세요.
예를 들어 페르소나를 로딩한다면 스켈레톤은 아바타, 제목, 부제목을 반영해야 해요. 로딩된 콘텐츠에 존재하더라도 상태 배지 같은 구체적인 부분까지 반영할 필요는 없어요.
Accessibility (접근성)
Remove Animations 설정이 활성화되어 있다면 스키머는 애니메이션을 실행하지 않아요. 그렇지 않다면 스키머가 화면에 있는 동안 animating 라벨을 추가해 TalkBack 사용자에게 무슨 일이 일어나고 있는지 알려 주세요.