수십억 사용자를 위한 UI 및 콘텐츠

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

앱이 사용자 입력에 빠르게 반응하고 느린 실행을 보완하는(필요한 경우) 대화형 UI를 제공하도록 합니다. 언어 간의 차이점을 고려하여 현지화가 용이하도록 앱을 설계합니다. 공백, 밀도, 순서, 강조 및 단어 사용의 차이점을 고려합니다. 또한 전화의 설정에 따라 날짜, 시간 및 기타 단위가 국제화되어 표시되는지 확인합니다.

빠르고 반응성 높은 사용자 인터페이스

앱 성능에 관한 사용자의 인식은 대체로 앱의 반응성에 따라 형성됩니다. 예를 들어 사용자와의 상호작용이나 선명한 디스플레이는 고성능 앱의 두 가지 중요한 특성입니다. 이 도움말에서는 이러한 두 특성과 앱 속도 및 반응성을 구성하는 다른 측면을 최적화하는 방법을 설명합니다.

터치 가능한 모든 항목에서 터치 피드백

  • 터치 피드백은 사용자 인터페이스에 질감을 더해줍니다. 인지되는 앱 지연 시간을 최대한 줄이기 위해서는 터치 가능한 모든 항목에서 앱이 터치 피드백을 제공하도록 해야 합니다.
  • 반응형 상호작용은 사용자의 입력에 따라 즉각적이고 논리적이며 매력적인 화면 반응을 제공함으로써 앱을 더 자세히 탐색해볼 수 있도록 합니다. 반응형 상호작용을 바탕으로 앱은 정보 전달 서비스에 그치지 않고 다양한 시각 및 촉각 반응을 사용해 소통할 수 있는 환경을 제공합니다.
  • 자세한 내용은 Android 교육 과정에서 터치 피드백 맞춤설정을 참고하세요.

UI는 항상 상호작용이 필요합니다

  • 백그라운드 작업을 실행할 때 반응이 없는 앱은 느리게 느껴지며 사용자의 만족도를 떨어뜨립니다. 백그라운드 활동과 상관없이 앱이 항상 반응형 UI를 갖도록 하세요. 그러기 위해서는 네트워크 작업이나 복잡한 작업은 백그라운드 스레드에서 실행하고 UI 스레드는 가급적 유휴 상태로 유지하세요.
  • 머티리얼 디자인 앱은 콘텐츠를 로드할 때 단일 활동 표시기로 각 작업을 나타내는 방식으로 시각적 변화를 최소화합니다. 로드 표시기로 대화상자를 차단하지 않도록 하세요.
  • 빈 상태는 뷰에 표시할 콘텐츠가 없을 때 발생합니다. 이는 항목이 없는 목록이거나 반환 결과가 없는 검색일 수 있습니다. 빈 상태를 피하려면 스타터, 교육적인 콘텐츠 또는 최선의 일치 콘텐츠를 사용합니다. 이러한 옵션이 해당되지 않는 경우 비대화형 이미지와 텍스트 태그라인을 표시합니다. 이렇게 하면 사용자에게 표시할 것이 생기면 무엇이 표시되는지 알려줄 수 있습니다.
  • 자세한 내용은 Android 교육 과정에서 앱 반응성 유지를 참고하세요.

저가 기기에서 초당 60프레임 타겟팅

  • 저가 기기에서도 앱이 항상 빠르고 부드럽게 실행되도록 보장합니다.
  • 오버드로는 앱의 속도를 상당히 저하시킬 수 있으며 패스당 두 번 이상 픽셀을 그리는 경우에 발생합니다. 이러한 예 중 하나는 이미지 위에 버튼이 놓여 있는 경우입니다. 오버드로가 불가피한 경우도 있지만 이를 최소화하여 부드러운 프레임 속도를 보장해야 합니다. 최소화를 보장하려면 앱에서 GPU 오버드로 디버그를 실행합니다.
  • Android 기기는 초당 60프레임의 속도로 화면을 새로 고치므로, 약 16밀리초 이내에 앱의 화면이 업데이트되어야 합니다. 앱이 이러한 16ms의 평균에 부합하지 않는 경우 그 시점을 알아보려면 온디바이스 도구를 사용하여 앱을 프로파일링하면 됩니다.
  • 기기의 CPU와 GPU에 미치는 부담을 완화하려면 저가 기기에서 애니메이션을 줄이거나 제거합니다. 자세한 내용은 Android 교육 과정에서 레이아웃 성능 개선을 참고하세요.
  • 효율적인 뷰 계층 구조로 앱의 메모리 크기를 늘리지 않고도 앱 속도를 향상시킬 수 있습니다. 자세한 내용은 성능 및 뷰 계층 구조를 참고하세요.

시작 화면을 느리게 사용하여 앱 시작

  • 시작 화면은 사용자가 애플리케이션을 처음 실행할 때 표시되는 화면입니다. 앱을 시작할 때 빈 캔버스가 표시되어 있으면 인지되는 로드 시간이 늘어납니다. 따라서 인지되는 로드 시간을 줄이려면 자리표시자 UI 또는 브랜드 시작 화면을 사용해 보세요.
  • 자리표시자 UI는 가장 원활한 실행 전환 방식으로 앱 실행과 인앱 활동 전환 모두에 적합합니다.
  • 브랜드 시작 화면은 순간적으로 브랜드를 노출하여 UI가 콘텐츠에 초점을 둘 수 있는 여유를 제공합니다.
  • 스플래시 화면 구현에 관한 자세한 내용은 머티리얼 디자인 사양의 시작 화면 섹션을 참고하세요.
  • 느린 시작 속도를 해결하는 최선의 방법은 이를 없애는 것입니다. 시작 시간 성능에서는 앱 시작 시간을 향상시킬 수 있는 정보를 제공합니다.

사용자 인터페이스 권장사항

  • 머티리얼 디자인은 훌륭한 디자인의 원칙에 과학과 기술의 혁신과 가능성을 접목한 시각적 언어입니다. 머티리얼 디자인은 다양한 크기의 기기와 플랫폼에서 통합 환경을 허용하는 기본 단일 시스템을 제공합니다. 사용자들이 앱 사용 방법을 직관적으로 알 수 있도록 주요 머티리얼 디자인 구성요소를 사용해 보세요.
  • 즉시 사용 가능한 머티리얼 디자인 구성요소는 머티리얼 디자인 지원 라이브러리에서 이용할 수 있습니다. 이들 구성요소는 Android 2.1(API 수준 7) 이상에서 지원됩니다.

현지화

  • 사용자가 다른 나라 사람일 수 있으며 모국어가 개발자의 언어와 다를 수도 있습니다. 사용자가 읽을 수 있는 언어로 앱을 표시하지 않는다면 기회를 놓치게 됩니다. 따라서 지역의 주요 언어로 앱을 현지화해야 합니다.
  • 자세한 내용은 다양한 언어 지원에 관한 Android 교육 과정 및 현지화 체크리스트를 참고하세요.
  • Android 7.0(API 수준 24)부터 Android 프레임워크에서 ICU4J API의 하위 세트를 사용할 수 있으므로 앱을 여러 언어로 현지화하는 데 도움이 됩니다. 자세한 내용은 ICU4J Android 프레임워크 API를 참고하세요.

추가 리소스

이 주제에 관해 자세히 알아보려면 다음 추가 리소스를 참고하세요.

추가적인 주제

블로그 게시물