제품 소식

Wear OS 7의 새로운 기능

전문 길이: 9분
John Zoeller
개발자 관계팀 엔지니어, Wear OS

오늘 Google은 사용자 및 개발자에게 새로운 시대의 전력 효율성과 인텔리전스를 제공하는 주요 업데이트인 Wear OS 7을 소개합니다.

시계는 사용자의 하루 종일 함께하는 필수적인 동반자입니다. 이러한 이유로 Google은 사용자가 즐겨 사용하는 앱으로 더 많은 작업을 할 수 있도록 전력 최적화에 계속 투자하고 있습니다. Wear OS 6에서 Wear OS 7로 업그레이드하는 시계의 경우 일반 사용자는 배터리 수명이 최대 10% 개선될 것으로 예상할 수 있습니다.

또한 Android 생태계에 대한 광범위한 출시의 일환으로 올해 말에 출시되는 일부 시계에는 Gemini 인텔리전스가 탑재되어 사용자가 중요한 일에 집중할 수 있도록 사전 대응적이고 맞춤화된 도움을 제공합니다. 

Wear OS 7에서는 새로운 시스템 기능과 향상된 개발자 도구가 도입됩니다. 실시간 업데이트와 같은 새로운 사용자 대상 기능과 향상된 미디어 제어를 통해 손목에서 더 스마트하고 직관적인 환경을 제공합니다. Wear Compose 1.6 및 AppFunctions와 같은 개발자 툴킷이 개선되어 개발자는 손목에 맞는 앱 환경을 간소화할 수 있습니다.  

바로 시작하겠습니다.

Wear OS 7 Canary

이제 올해 말 출시 예정인 Android 17을 기반으로 하는 Google 스마트시계 플랫폼의 다음 버전인 Wear OS 7 Canary Emulator를 사용해 볼 수 있습니다.  

새로운 에뮬레이터를 사용하면 앱이 곧 출시될 플랫폼과 호환되는지 테스트하면서 위에서 언급한 개발자 기능과 도구를 직접 사용해 볼 수 있습니다.  

변경사항을 확인하고 지금 앱을 테스트해 보세요.

새로운 Wear OS 기능 살펴보기

Wear OS 위젯

Widgets (1).png

전체 화면 카드는 Wear OS에서 사용자가 필수 업데이트에 즉시 액세스할 수 있도록 지원하는 기본 표시 경로였습니다. Android 생태계가 위젯에 대한 통합 비전을 향해 나아감에 따라 개발자의 노력을 최소화하기 위해 시계를 나머지 Android 제품군에 더 가깝게 만들고 있습니다.

오늘 Google은 타일의 진화에 있어 다음 단계인 유연하고 동적인 Wear 위젯을 소개합니다. 

Jetpack Glance와 새로운 RemoteCompose 프레임워크를 기반으로 하는 Wear 위젯은 타일 ProtoLayout 라이브러리보다 Compose와의 표현력과 일관성이 뛰어납니다. Wear 위젯은 모바일의 2x1 및 2x2 형식과 완벽하게 일치하는 소형 및 대형의 두 가지 새로운 카드 레이아웃을 지원하므로 손목에 맞게 디자인을 최적화하면서도 기기 전반에서 디자인의 일관성을 유지할 수 있습니다.

전체 화면 타일의 mainSlot에서 2x2 위젯으로 UI를 쉽게 적용할 수 있습니다. 확인해 보세요.

widgets code (1).png

이번 주 후반에 공개될 위젯 I/O 강연에서 새로운 기능에 관한 자세한 내용을 확인하고 위젯 시작 가이드를 참고하여 Wear OS 환경에 위젯을 추가해 보세요.

실시간 업데이트

Live Updates Blog post (1).png

Wear OS 7에서는 실시간 업데이트가 시계에 도입됩니다.

실시간 업데이트를 사용하면 시계 또는 모바일 앱의 중요한 정보를 실시간으로 표시하여 사용자에게 적시에 업데이트를 한눈에 제공할 수 있습니다.

워치용 앱에서 Ongoing Activities API 대신 실시간 업데이트를 사용하여 모든 Wear 7 기기에 로컬 업데이트 게시를 제공합니다. 지원 OEM의 경우 휴대전화 앱에서 게시한 실시간 업데이트도 사용자의 시계로 브리징됩니다.

위에서 Just Eat이 사용자에게 업데이트를 제공하는 방법을 확인하세요.

자세한 내용은 Wear OS의 알림을 참고하세요.

앱을 인텔리전스 시스템에 연결

Google은 개발자가 AppFunctions부터 작업 자동화 도구까지 다양한 방식으로 시계에서 에이전트 환경을 제공할 수 있도록 노력하고 있습니다.

이러한 기능이 준비되면 개발자 블로그를 통해 발표하고, 적합한 기능을 선택하고 강력한 구현을 만드는 데 도움이 되는 포괄적인 개발자 가이드를 제공할 예정입니다. 지금은 간단히 살펴보겠습니다.

AppFunctions

Watch_IO26_Samsung_App_Functions (1).gif

AppFunctions API를 사용하면 개발자가 앱을 Google Gemini와 같은 에이전트 및 어시스턴트와 통합하여 사용자가 음성으로 작업을 완료할 수 있으므로 UI를 사용한 단계별 수동 탐색이 필요하지 않은 경우가 많습니다.  

예를 들어 Samsung Health 앱으로 러닝을 시작하려면 사용자에게 '러닝 추적을 시작해 줘'라고 말할 수 있습니다.

관심 있는 개발자를 대상으로 사전 체험 프로그램이 진행 중입니다. 이 양식을 작성하여 신청 의사를 알려주세요.

작업 자동화

Watch_IO26_RemoteBonobo_Doordash_onBG_a22_GIF (1).gif

또한 개발 노력 없이도 사용자가 시계에서 직접 선택한 휴대전화 앱의 자동 앱 작업을 호출하고 추적할 수 있습니다(예: DoorDash로 주문). 이 기능도 곧 제공될 예정입니다.

개발자 블로그에서 앱을 준비하고 Android 인텔리전스 시스템에 연결하는 방법에 관한 유연한 옵션을 확인하세요.

운동 트래커 착용

Watch_IO26_SystemFitnessTracker_onBG_a05 (1).gif

Wear OS에서 처음부터 모든 기능을 갖춘 고품질 피트니스 추적 환경을 빌드하는 데 많은 리소스가 필요하다는 점을 고려하여 운동 앱을 위한 완전히 새로운 Wear 운동 추적기 환경을 빌드했습니다. 올해 안에 Wear OS에 포함될 예정입니다. 

운동 추적기는 심박수 모니터링, 미디어 제어, 기타 유용한 기능 모음을 포함하는 풍부한 표준 운동 추적 환경을 제공하여 개발 투자를 줄이면서 사용자에게 고품질 환경을 보장할 수 있습니다.

ASICS Runkeeper와 긴밀하게 협력하여 사용자에게 제공하고 있습니다. 확인해 보세요.

Wear OS 7의 시스템 미디어 컨트롤 개선

Wear OS 7에서는 시스템 미디어 컨트롤이 개선되어 사용자가 미디어를 더 많이 제어하고 원활하게 경험할 수 있습니다.

앱별 미디어 자동 실행 컨트롤

Watch_IO26_AutoLaunch_Media_onBG_a05 (1).gif

이제 사용자는 시계의 시스템 미디어 컨트롤에서 직접 앱별로 미디어 자동 실행 환경을 맞춤설정할 수 있습니다.

사용자가 '설정 자동 실행'을 사용 설정한 앱의 경우 휴대전화에서 미디어가 시작되면 시계에 미디어 컨트롤이 자동으로 표시됩니다. 

시계에서 확장되는 미디어 앱을 이미 구현한 개발자는 추가 노력 없이 이 기능을 활용할 수 있습니다.

원격 출력 전환기를 사용한 원활한 오디오 라우팅

Remote Output Switcher (1).png

이제 시스템 미디어 컨트롤에 통합된 새로운 원격 출력 전환기를 사용해 오디오 출력을 그 어느 때보다 쉽게 관리할 수 있습니다. 

페어링된 휴대전화에서 미디어를 들을 때 사용자는 손목에서 직접 미디어가 재생되는 기기를 쉽게 전환할 수 있습니다.

UI 라이브러리 업데이트

사용자를 위한 이러한 모든 새로운 기능과 함께 개발자가 Wear OS의 미래에 대비할 수 있도록 개발자 툴킷에 강력한 개선사항을 도입합니다.

Wear OS용 Compose 1.6

Wear OS 개발의 기반인 Wear OS용 Compose 1.6이 출시되었습니다.

여기에는 다음을 비롯한 강력한 업데이트가 포함됩니다.

탐색 3으로 탐색 간소화하기

개발자는 탐색 3과 통합하여 Wear OS에서 탐색을 처리하는 더 유연하고 Compose에 적합한 방법을 제공할 수 있습니다.

@Composable
fun WearApp() {
    val backStack = rememberNavBackStack(MenuScreen)

    WearAppTheme {
        AppScaffold {
            val entryProvider = remember {
                entryProvider<NavKey> {
                    entry<MenuScreen> { GreetingScreen() }
                    entry<ListNavScreen> { ListScreen() }
                }
            }

            val swipeDismissableSceneStrategy = 
                rememberSwipeDismissableSceneStrategy<NavKey>()

            NavDisplay(
                backStack = backStack,
                entryProvider = entryProvider,
                sceneStrategies = listOf(swipeDismissableSceneStrategy)
            )
        }
    }
}

TransformingLazyColumn의 목록 관리 개선사항

TransformingLazyColumn을 사용한 고급 목록 관리 기능이 크게 개선되었습니다. 여기에는 새로운 minimumVerticalContentPadding 수정자를 통한 패딩 지원 강화와 스냅, 역방향 레이아웃과 같은 기타 새로운 기능이 포함됩니다.

val listState = rememberTransformingLazyColumnState()
val transformationSpec = rememberTransformationSpec()

/*
 * TransformingLazyColumn takes care of the horizontal and vertical
 * padding for the list and handles scrolling.
 */
ScreenScaffold(scrollState = listState) { contentPadding ->
    TransformingLazyColumn(
        state = listState,
        contentPadding = contentPadding
    ) {
        item {
            ListHeader(
                modifier = Modifier
                    .fillMaxWidth()
                    .transformedHeight(this, transformationSpec)
                    .minimumVerticalContentPadding(
                        ListHeaderDefaults.minimumTopListContentPadding
                    ),
                    transformation = SurfaceTransformation(transformationSpec)
            ) { Text(text = "Header") }
        }
    }
}

LocalAmbientModeManager로 주변 모드 환경 최적화

새로운 LocalAmbientModeManager는 앰비언트 흐름을 처리하도록 최적화되어 개발자가 앰비언트 환경이 사용자에게 표시되는 방식을 더 효과적으로 제어할 수 있습니다. 

 
override fun onCreate(savedInstanceState: Bundle?) {
    setContent {
        val ambientModeManager = rememberAmbientModeManager()
        CompositionLocalProvider(LocalAmbientModeManager provides ambientModeManager) {
            val localAmbientModeManager = LocalAmbientModeManager.current
            val ambientMode = localAmbientModeManager?.currentAmbientMode

            Column(
                verticalArrangement = Arrangement.Center,
                horizontalAlignment = Alignment.CenterHorizontally,
                modifier = Modifier.fillMaxSize(),
            ) {
                val ambientModeName =
                    when (ambientMode) {
                        is AmbientMode.Interactive -> "Interactive"
                        is AmbientMode.Ambient -> "Ambient"
                        else -> "Unknown"
                    }

                val color = if (ambientMode is AmbientMode.Ambient) Color.Gray
                    else Color.Yellow
                Text(text = "$ambientModeName Mode", color = color)
            }
        }
    }
}

Protolayout 및 카드 업데이트

개발자에게 새로운 Wear 위젯을 채택하도록 권장하지만, 당분간은 Protolayout 및 타일 라이브러리를 계속 지원할 예정이며 두 라이브러리의 새로운 안정화 버전이 있습니다.

Protolayout 1.4와 Tiles 1.6은 함께 작동하여 다음과 같은 몇 가지 주목할 만한 새로운 기능을 제공합니다.

  • 인라인 이미지 리소스: 이제 ImageResource를 레이아웃 내에 직접 인라인할 수 있으며, 타일은 이제 ProtoLayoutScope를 통한 자동 리소스 수집을 지원하므로 수동 리소스 매핑과 별도의 메서드로 분할할 필요가 없습니다. 이렇게 하면 코드 품질이 향상될 뿐만 아니라 시스템에서 제공자 서비스로의 단일 바인더 호출로 통합되어 타일 로드 지연 시간도 개선됩니다.
  • Material3TileService: 타일은 Material3TileService로 구현할 수 있습니다. 이는 타일 레이아웃과 리소스를 모두 반환하는 포괄적인 중단 함수로, MaterialScope와 ProtoLayoutScope를 자동으로 관리하여 개발 환경을 간소화합니다.
  • 동적 서비스 전환: 이제 Wear 7에서는 여러 TileService 인스턴스를 매니페스트에서 그룹화하여 동일한 타일을 나타내는 여러 서비스 간에 동적으로 전환할 수 있습니다.

새 타일 샘플은 여기에서 확인하세요.

WFF 5

이제 워치 페이스 형식 버전 5 (WFF5)를 사용할 수 있으며, 여기에는 다음과 같은 시계 화면을 더 쉽게 빌드할 수 있는 다양한 새로운 기능이 포함되어 있습니다.

  • 향상된 정렬 옵션: 이제 TextCircular과 같은 텍스트 요소에 여러 텍스트 요소의 동일한 기준선에 대한 verticalAlign을 비롯한 추가 정렬 옵션이 있습니다.
  • 자동 크기 조정 개선사항: 이제 TextCircular에서 isAutoSize를 사용할 수 있으며, 자동 크기 조정이 사용 설정된 경우 최소 크기를 제한하는 새 속성인 minSize가 글꼴 요소에 추가되었습니다.
  • 혼합 모드: 이제 그룹 및 ComplicationSlot 요소가 Part* 요소에 대한 기존 지원 외에도 혼합 모드를 지원합니다.
  • 획 연결: 이제 획 및 가중치 획 요소에 연결 속성이 포함됩니다.
  • 계층적 설정: 이제 사용자 스타일을 계층 구조로 구성할 수 있습니다. 일부 설정은 다른 설정에 특정 값이 있는 경우에만 표시됩니다. 이제 사용자 스타일에서 정보 표시 슬롯을 사용 설정하거나 중지할 수도 있습니다. 이러한 설정은 사용자 스타일 옵션의 childSettingIds 및 complicationSlotIds를 사용하여 구성할 수 있습니다.

새 개발자 가이드에서 WFF 5에 대해 자세히 알아보세요.

지금 Wear OS 7용 빌드 시작

이번 업데이트를 통해 지금이야말로 Wear OS에서 앱을 개발할 적기입니다. 다음 기술 리소스에서 시작하는 방법을 자세히 알아보세요.

Wear OS에서 빌드할 환경을 기대하겠습니다.

작성자:

계속 읽기