Wear OS 개발 원칙

Wear OS는 Android를 기반으로 하므로 여러 Android 권장사항이 Wear OS에도 적용됩니다. 그러나 Wear OS는 손목에 최적화되어 있으므로 둘 사이에는 몇 가지 차이점이 있습니다.

개발 시간을 최적화하려면 Wear OS 앱을 빌드하기 전에 아래 원칙을 검토하세요.

참고: 새로운 Wear OS 품질 요구사항은 2023년 8월 31일부터 적용됩니다. 전체 요구사항 목록은 Wear OS 앱 품질을 참고하세요.

중요한 작업을 위한 디자인

전체 앱 환경이 아닌 타겟 사용자의 요구사항 한두 가지에 집중하세요. 전체 모바일 코드베이스를 이전하거나 Wear OS 사용자 인터페이스를 최우선으로 두지 마세요.

대신 손목에서 잘 작동하는 중요한 작업을 찾고 Wear OS에서 환경을 간소화하세요.

앱 샘플

손목에 최적화

몇 초 내로 사용자가 시계에서 작업을 완료할 수 있도록 하여 인체 공학적 불편감이나 팔의 피로를 방지하세요.

손목에 맞게 최적화하는 방법은 Wear OS 디자인 가이드라인을 참고하세요.

타이머 샘플

작업에 적절한 노출 영역 사용

Wear OS에는 사용자 참여를 유도하기 위한 노출 영역이 휴대전화보다 훨씬 더 많습니다. 앱은 이러한 노출 영역에 맞게 콘텐츠를 조정해야 합니다.

각 노출 영역에는 고유한 사용 사례가 있습니다. 작업이 더 필요하면 사용자를 더 풍부한 환경으로 안내합니다.

사용자 요구사항의 우선순위에 따라 각 노출 영역에서 콘텐츠가 어떻게 조정되는지 검토하여 파악합니다. 다음은 날씨 앱 우선순위의 예입니다.

Complication

P1: 지금 날씨 어때?

알림

P1 악천후 주의보 알려 줘

타일

P1: 지금 날씨 어때?

P2: 오늘 날씨 어때?

P1: 지금 날씨 어때?

P2: 오늘 날씨 어때?

P3: 시간별 날씨는 어때?

P3: 환경설정

날씨 카드

자세한 내용은 사용자 인터페이스 가이드를 참고하세요.

추가 노출 영역에 알림 추가

Wear OS API 수준 30 이상에서는 지속적인 알림을 OngoingActivity에 페어링하여 해당 알림을 Wear OS 사용자 인터페이스 내 추가 노출 영역에 추가해 장기 실행 활동에 관한 참여를 높입니다.

오프라인 시나리오 지원

Wear OS 기기는 일반적으로 블루투스와 Wi-Fi를 지원하지만 LTE는 지원하지 않을 수 있습니다. 사용자가 집에 휴대기기를 두고 왔을 수 있는 불안정한 연결 및 오프라인 사용 사례(예: 운동, 출퇴근길)를 위해 디자인합니다.

오프라인 예

관련성 있는 콘텐츠 제공

시계는 사용자가 거의 항상 착용합니다. 시간, 장소, 활동과 같은 사용자의 컨텍스트로 앱 콘텐츠를 최신 상태로 유지합니다.

노출 영역

사용자가 다른 기기에서 작업을 완료하도록 지원

사람들이 소유하는 기기는 점점 더 늘어나고 있습니다. 시계는 분산된 기기 생태계에서 사용자가 작업을 완료하는 데 도움이 될 수 있습니다. 앱에 적합한 사용 사례를 검토하세요.

앱 콜드 스타트 중 사용자 환경 개선

앱 콜드 스타트 중에 사용자 환경을 개선하려면 별도의 테마로 스플래시 활동을 만들고 매니페스트 파일에서 windowBackground를 맞춤 스플래시 드로어블로 설정합니다. 스플래시 화면은 두 가지 요소, 즉 배경 색상과 일반적으로 앱 아이콘인 맞춤 드로어블이 있는 레이어 목록으로 구성됩니다. 드로어블은 48x48dp여야 합니다.

미디어 앱 고려사항

휴대전화에서 음악 재생 컨트롤 사용 설정

앱이 휴대전화와 시계에 모두 설치된 경우 사용자는 시계에서 원격으로 제어할 수 있기를 기대합니다. 예를 들어 사용자는 시계에서 노래를 일시중지하거나 재생하거나 건너뛸 수 있을 것으로 기대합니다.

다운로드한 콘텐츠

앞서 언급했듯이 오프라인 시나리오를 지원하는 것이 중요합니다. 이는 미디어 앱에서 특히 중요합니다. 미디어 앱의 경우 먼저 오프라인 다운로드를 지원하고 수요가 확인되면 스트리밍 기능을 추가하는 것이 더 쉽습니다.

디자인할 때는 오프라인에서 제공되는 콘텐츠를 사용자가 분명히 알 수 있도록 합니다. 장기 실행 즉시 작업 또는 주기적 작업의 경우 WorkManager를 사용하세요. 시계가 충전되고 Wi-Fi에 연결될 때까지 다운로드를 연기합니다.

LTE에서 스트리밍

LTE 연결이 있는 기기에서 스트리밍 지원을 제공하는 것이 좋습니다. 이는 미디어 재생의 일반적인 사용 사례입니다. 스트리밍을 통해 사용자는 다른 기기를 집에 두고 가면서도 음악을 계속 들을 수 있습니다. 사용자가 음악을 스트림하고 스트림된 오디오를 캐시할 때 사용자에게 시각적으로 알려야 합니다. 스트림하는 동안 전력 사용량을 최적화하려면 로깅 및 분석 데이터 전송 등 지연될 수 있는 작업에 LTE를 사용하지 마세요.

블루투스 헤드폰 지원

사용자는 시계와 헤드폰만 가지고도 달리기나 산책을 할 수 있습니다. 헤드폰과의 페어링을 지원하여 사용자가 진정한 독립형 환경을 즐길 수 있도록 합니다. 음악을 재생하거나 다시 시작할 때 헤드폰이 연결되어 있지 않으면 사용자가 앱에서 직접 블루투스 헤드폰에 연결할 수 있도록 블루투스 설정을 실행합니다.

음악 소스 표시

소리가 시계에서 비롯되는지, 아니면 휴대전화에서 비롯되는지 명확하게 표시합니다. 소스 아이콘을 사용하여 음악이 재생되는 위치를 표시합니다. 기본 소스는 사용자가 음악을 시작하는 위치여야 합니다.

스피커 사용

일부 Wear OS 기기에는 리마인더, 알람 등에 사용할 수 있는 스피커가 내장되어 있습니다. 미디어와 음악을 재생할 때는 내장 스피커를 사용하지 마세요. 사용자는 이러한 환경이 헤드폰 사용과 연결될 것으로 기대하기 때문입니다. 자세한 내용은 오디오 기기 감지를 참고하세요.

피트니스 앱 고려사항

Android 10 이상용 피트니스 앱을 만들 때는 신체 활동 감지 권한을 요청하세요.

모바일 앱 보완

위에서 설명한 것처럼 Wear OS 피트니스 앱은 손목에 맞는 중요한 작업만 처리해야 합니다. 즉, 피트니스 Wear OS 앱은 주로 데이터 수집에 중점을 둡니다.

일부 운동 후 요약 화면을 허용할 수 있지만 자세한 운동 후 분석 및 더 많은 화면 공간이 필요한 기타 기능은 모바일 앱에 남겨둡니다.

오래 지속되는 활동 지원

위치 및 센서 데이터를 구독하는 여러 앱과 마찬가지로 사용 중 실행을 처리하도록 앱을 디자인하세요. 즉, 앱이 포그라운드에서 작동해야 합니다.

운동이 활동에서 시작되면 해당 활동을 작업을 실행할 서비스에 바인딩합니다. 사용자가 앱에서 벗어나면 서비스는 바인딩 해제되고 지속적인 알림으로 자체적으로 승격될 수 있습니다.

Wear OS에서는 최소한의 코드를 사용하여 Ongoing Activity API를 통해 지속적인 알림을 새 노출 영역에 표시할 수 있습니다.

이 아키텍처를 사용한 간소화된 앱은 GitHub의 진행 중인 활동 Codelab을 참고하세요.

상시 사용 설정 드물게 사용

사용자가 앱과의 세션 중에 시계 사용을 중지하면 기기는 결국 배터리 절약을 위해 시스템 대기 모드로 전환됩니다.

Wear OS는 사용자가 지정된 시간 내에 기기와 다시 상호작용하면 앱을 다시 활성 상태로 되돌립니다.

대다수 사용 사례에서 이러한 방식은 사용자에게 우수한 환경을 제공하고 배터리를 절약하기에 충분합니다.

앱을 더 오래 표시해야 하는 경우도 있습니다(예: 전체 운동 중에). 이러한 경우에는 AmbientLifecycleObserver를 사용해야 합니다. 자세한 내용은 Wear에서 앱 표시 유지를 참고하세요.

wake lock 유지하지 않음

읽기 또는 전송 사이에 CPU가 절전 모드로 전환되도록 허용하면서 센서 데이터를 얻으려면 Health Services 같은 API를 사용하세요.

위치 및 센서 관리 최적화

센서 관리는 매우 중요하며 제대로 실행하지 않으면 배터리 수명에 부정적인 영향을 미칠 수 있습니다.

센서 전략을 구현할 때는 다음 권장사항을 따라야 합니다.

  • 가능하면 항상 배치 모드에서 센서를 사용합니다.
  • 화면/앱이 다시 활성화되면 센서를 플러시합니다.
  • 전력을 절약하려고 화면이 꺼질 때 배치 길이를 변경합니다.
  • 더 이상 필요하지 않으면 센서 리스너를 등록 취소합니다.
  • 위치 센서의 경우 Wear OS에서 위치 감지에 설명된 권장사항을 따릅니다.

햅틱을 사용하여 작업 확인

햅틱 반응을 사용하여 시작, 중지, 자동 일시중지, 자동 랩과 같은 작업을 확인합니다.

터치 기능 잠금 사용

터치 환경을 사용 중지하면 앱 환경이 개선되는 경우도 있습니다. 예를 들어, 운동을 추적할 때는 터치 기능을 사용 중지하는 것이 좋습니다. 이 경우 실수로 터치 동작이 일어날 가능성이 매우 높기 때문입니다.

메시지 앱 고려사항

알림으로 시작

MessagingStyle을 지원하여 사용자의 앱 환경을 개선하세요.

음성 입력 지원

음성 텍스트 변환을 지원해야 합니다. 시계에서 훨씬 더 빠르기 때문입니다. 녹음된 오디오도 지원하는 것이 좋습니다.