Nowości dotyczące produktów

Co nowego w Wear OS 7

Czas czytania: 9 minut
John Zoeller
Inżynier ds. relacji z deweloperami, Wear OS

Z przyjemnością przedstawiamy Wear OS 7 – dużą aktualizację, która wprowadza nową erę energooszczędności i inteligencji zarówno dla użytkowników, jak i deweloperów.

Wiemy, że zegarki są dla użytkowników niezbędnym towarzyszem przez cały dzień. Dlatego nadal inwestujemy w optymalizację zużycia energii, aby użytkownicy mogli robić więcej dzięki swoim ulubionym aplikacjom. W przypadku zegarków, które zostaną zaktualizowane z Wear OS 6 do Wear OS 7, przeciętni użytkownicy mogą spodziewać się nawet 10% poprawy czasu pracy na baterii.

W ramach szerszego wdrożenia w ekosystemie Androida wybrane zegarki, które pojawią się w tym roku, będą wyposażone w inteligencję Gemini, która zapewni użytkownikom proaktywną i spersonalizowaną pomoc, dzięki czemu będą mogli skupić się na tym, co ważne. 

W Wear OS 7 wprowadzamy nowe możliwości systemu i ulepszone narzędzia dla deweloperów. Nowe funkcje dla użytkowników, takie jak Aktualizacje na żywo i ulepszone elementy sterujące multimediami, zapewniają inteligentniejsze i bardziej intuicyjne korzystanie z zegarka. Dzięki ulepszeniom naszego zestawu narzędzi dla deweloperów, takim jak Wear Compose 1.6 i AppFunctions, deweloperzy będą mogli usprawnić korzystanie z aplikacji na zegarku.  

Zaczynajmy!

Wear OS 7 Canary

Możesz już wypróbować następną wersję platformy Google dla smartwatchów, emulator Wear OS 7 Canary, oparty na Androidzie 17, który pojawi się jeszcze w tym roku.  

Nowy emulator umożliwia praktyczne zapoznanie się z wymienionymi powyżej funkcjami i narzędziami dla deweloperów podczas testowania zgodności aplikacji z nadchodzącą platformą.  

Sprawdź co się zmieniło i zacznij testować aplikację już dziś.

Poznaj nowe funkcje Wear OS

Widżety Wear OS

Widżety (1).png

Pełnoekranowe kafelki są podstawowym elementem interfejsu Wear OS, który zapewnia użytkownikom natychmiastowy dostęp do najważniejszych informacji. W miarę jak ekosystem Androida zmierza w kierunku ujednoliconej wizji widżetów, zbliżamy zegarek do reszty rodziny Androida, aby zminimalizować wysiłek deweloperów.

Z przyjemnością przedstawiamy kolejny etap ewolucji kafelków: elastyczne i dynamiczne widżety Wear

Dzięki Jetpack Glance i nowej platformie RemoteCompose widżety Wear oferują większą ekspresyjność i spójność z Compose niż biblioteki ProtoLayout kafelków. Widżety Wear obsługują 2 nowe układy kart – mały i duży – które idealnie pasują do formatów 2x1 i 2x2 na urządzeniach mobilnych. Dzięki temu projekty są spójne na różnych urządzeniach, a jednocześnie można je optymalizować pod kątem zegarka.

Łatwo dostosujesz interfejs z głównego miejsca pełnoekranowego kafelka do widżetu 2x2. Spójrz!

widgets code (1).png

Więcej informacji o nowych funkcjach znajdziesz w tym tygodniu w prezentacji na I/O dotyczącej widżetów. Aby dodać widżet do Wear OS, zapoznaj się z naszym przewodnikiem dla początkujących.

Aktualizacje na żywo

Live Updates Blog post (1).png

Wear OS 7 wprowadza Aktualizacje na żywo na zegarkach.

Dzięki Aktualizacjom na żywo możesz wyświetlać ważne informacje w czasie rzeczywistym z aplikacji na zegarku lub urządzeniu mobilnym, zapewniając użytkownikom aktualne informacje.

W aplikacji na zegarek używaj Aktualizacji na żywo zamiast interfejsu Ongoing Activities API, aby publikować lokalne aktualizacje na wszystkich urządzeniach z Wear OS 7. W przypadku obsługiwanych producentów OEM Aktualizacje na żywo publikowane przez aplikację na telefonie będą też przekazywane na zegarki użytkowników.

Zobacz, jak Just Eat udostępnia aktualizacje użytkownikom.

Więcej informacji znajdziesz w artykule Powiadomienia na Wear OS.

Łączenie aplikacji z systemem inteligencji

Pracujemy nad kilkoma sposobami, dzięki którym deweloperzy będą mogli udostępniać na zegarku funkcje oparte na agentach, od AppFunctions po narzędzia do automatyzacji zadań.

Gdy będą gotowe, ogłosimy je na blogu dla deweloperów i udostępnimy kompleksowy przewodnik dla deweloperów, który pomoże Ci wybrać odpowiednie rozwiązanie i wdrożyć je w sposób niezawodny. Na razie przedstawiamy krótkie omówienie.

AppFunctions

Watch_IO26_Samsung_App_Functions (1).gif

Interfejs AppFunctions API umożliwia deweloperom integrowanie aplikacji z agentami i asystentami, takimi jak Google Gemini, dzięki czemu użytkownicy mogą wykonywać zadania za pomocą głosu, co często eliminuje konieczność ręcznej nawigacji krok po kroku w interfejsie.  

Aby na przykład rozpocząć bieg w aplikacji Samsung Health, użytkownicy mogą powiedzieć do Gemini: „Zacznij śledzić mój bieg”.

Obecnie prowadzimy program wcześniejszego dostępu dla wszystkich zainteresowanych deweloperów. Aby wyrazić zainteresowanie, wypełnij formularz.

Automatyzacja zadań

Watch_IO26_RemoteBonobo_Doordash_onBG_a22_GIF (1).gif

Wkrótce użytkownicy będą mogli też wywoływać i śledzić zautomatyzowane zadania aplikacji w wybranych aplikacjach na telefonie bezpośrednio z zegarka, np. składać zamówienia w DoorDash.

Na naszym blogu dla deweloperów będziemy informować o elastycznych opcjach przygotowania i połączenia aplikacji z systemem inteligencji Androida.

Śledzenie treningów w Wear

Watch_IO26_SystemFitnessTracker_onBG_a05 (1).gif

Wiemy, że tworzenie od podstaw w pełni funkcjonalnego i wysokiej jakości śledzenia aktywności fizycznej w Wear OS jest pracochłonne, dlatego stworzyliśmy zupełnie nowe śledzenie treningów w Wear dla aplikacji do ćwiczeń. Zostanie ono dodane do Wear OS jeszcze w tym roku. 

Śledzenie treningów zapewnia bogate i standardowe śledzenie treningów, które obejmuje monitorowanie tętna, sterowanie multimediami i inne przydatne funkcje. Dzięki temu możesz zmniejszyć nakłady na rozwój, a jednocześnie zapewnić użytkownikom wysoką jakość.

Ściśle współpracujemy z ASICS Runkeeper, aby udostępnić tę funkcję użytkownikom. Sprawdź ją!

Ulepszone systemowe elementy sterujące multimediami w Wear OS 7

Wear OS 7 ulepsza systemowe elementy sterujące multimediami, dając użytkownikom większą kontrolę i płynniejsze korzystanie z multimediów.

Elementy sterujące automatycznym uruchamianiem multimediów w poszczególnych aplikacjach

Watch_IO26_AutoLaunch_Media_onBG_a05 (1).gif

Użytkownicy mogą teraz personalizować automatyczne uruchamianie multimediów w poszczególnych aplikacjach bezpośrednio z systemowych elementów sterujących multimediami na zegarku.

W przypadku każdej aplikacji, w której użytkownik włączył „Ustawienia automatycznego uruchamiania”, elementy sterujące multimediami będą automatycznie wyświetlane na zegarku, gdy multimedia zostaną uruchomione na telefonie. 

Deweloperzy, którzy mają już wdrożone aplikacje multimedialne działające na zegarku, mogą korzystać z tej funkcji bez dodatkowego wysiłku.

Płynne przekierowywanie dźwięku dzięki zdalnemu przełącznikowi wyjścia

Przełącznik wyjścia zdalnego (1).png

Zarządzanie wyjściem audio jest teraz łatwiejsze niż kiedykolwiek dzięki nowemu zdalnemu przełącznikowi wyjścia zintegrowanemu z systemowymi elementami sterującymi multimediami. 

Podczas słuchania multimediów na sparowanym telefonie użytkownicy mogą bez trudu przełączać urządzenie, na którym są odtwarzane multimedia, bezpośrednio z zegarka.

Aktualizacje biblioteki interfejsu

Oprócz tych nowych funkcji dla użytkowników wprowadzamy też zaawansowane ulepszenia w naszych zestawach narzędzi dla deweloperów, aby pomóc im przygotować się na przyszłość Wear OS.

Compose na Wear OS 1.6

Podstawą tworzenia aplikacji na Wear OS jest Compose na Wear OS 1.6.

Obejmuje ona zaawansowane aktualizacje, w tym:

Usprawniona nawigacja dzięki Navigation 3

Deweloperzy mogą zintegrować Navigation 3, aby zapewnić bardziej elastyczny i zgodny z Compose sposób obsługi nawigacji w Wear OS.

@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)
            )
        }
    }
}

Ulepszenia zarządzania listami w TransformingLazyColumn

Wprowadziliśmy znaczące ulepszenia w zaawansowanym zarządzaniu listami w TransformingLazyColumn, w tym ulepszoną obsługę dopełnienia dzięki nowemu modyfikatorowi minimumVerticalContentPadding oraz inne nowe funkcje, takie jak przyciąganie i układ odwrotny.

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") }
        }
    }
}

Optymalizowanie korzystania z trybu otoczenia za pomocą LocalAmbientModeManager

Całkiem nowy LocalAmbientModeManager jest zoptymalizowany pod kątem obsługi przepływów w trybie otoczenia, co daje deweloperom większą kontrolę nad tym, jak ich aplikacje w trybie otoczenia są prezentowane użytkownikom. 

 
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)
            }
        }
    }
}

Aktualizacje Protolayout i kafelków

Zachęcamy deweloperów do korzystania z nowych widżetów Wear, ale przez pewien czas będziemy nadal obsługiwać biblioteki Protolayout i kafelków. Mamy już nowe stabilne wersje obu tych bibliotek.

Protolayout 1.4Kafelki 1.6 współpracują ze sobą, aby zapewnić kilka ważnych nowych funkcji, w tym:

  • Zasoby obrazów wbudowanych: ImageResource można teraz wbudować bezpośrednio w układ, a kafelki obsługują automatyczne zbieranie zasobów za pomocą ProtoLayoutScope, co eliminuje konieczność ręcznego mapowania zasobów i dzielenia ich na osobne metody. Oprócz lepszej jakości kodu poprawia to też opóźnienie wczytywania kafelków dzięki konsolidacji w jedno wywołanie bindera z systemu do usługi dostawcy.
  • Material3TileService: kafelki można implementować jako Material3TileService – wszechstronną funkcję zawieszania, która zwraca zarówno układ kafelka, jak i zasoby, a jednocześnie automatycznie zarządza MaterialScope i ProtoLayoutScope, aby uprościć proces tworzenia.
  • Dynamiczne przełączanie usług: w Wear OS 7 można teraz grupować w manifeście wiele instancji TileService, aby umożliwić dynamiczne przełączanie między różnymi usługami, które reprezentują ten sam kafelek.

Nowy przykład kafelków znajdziesz tutaj.

WFF 5

Format tarczy zegarka w wersji 5 (WFF5) jest już dostępny z wieloma nowymi funkcjami, które ułatwiają tworzenie tarcz zegarka, w tym:

  • Ulepszone opcje wyrównania: elementy tekstowe, takie jak TextCircular, będą teraz miały dodatkowe opcje wyrównania, w tym verticalAlign na tej samej linii bazowej dla wielu elementów tekstowych.
  • Ulepszenia automatycznego rozmiaru: isAutoSize można teraz używać w TextCircular, a do elementu Font dodano nowy atrybut minSize, aby ograniczyć minimalny rozmiar, gdy włączone jest automatyczne dopasowywanie rozmiaru.
  • Tryby mieszania: elementy Group i ComplicationSlot obsługują teraz tryb mieszania oprócz dotychczasowej obsługi elementów Part*.
  • Łączenie obrysów: elementy Stroke i WeightedStroke zawierają teraz atrybut join.
  • Ustawienia hierarchiczne: style użytkownika można teraz strukturyzować jako hierarchię, w której niektóre ustawienia są widoczne tylko wtedy, gdy inne ustawienia mają określone wartości. Style użytkownika mogą teraz też włączać i wyłączać miejsca na komplikacje. Można je skonfigurować za pomocą childSettingIds i complicationSlotIds w opcjach stylu użytkownika.

Więcej informacji o WFF 5 znajdziesz w nowym przewodniku dla deweloperów.

Zacznij tworzyć aplikacje na Wear OS 7 już teraz

Dzięki tym aktualizacjom tworzenie aplikacji na Wear OS jest teraz łatwiejsze niż kiedykolwiek. Te zasoby techniczne to świetne miejsce, aby dowiedzieć się więcej o tym, jak zacząć:

Czekamy na Twoje aplikacje na Wear OS!

Autor:

Czytaj dalej