Wiadomości o usługach

Nowości 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, czyli 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 stale inwestujemy w optymalizację zużycia energii, aby użytkownicy mogli robić więcej w swoich ulubionych aplikacjach. W przypadku zegarków, które przechodzą z Wear OS 6 na Wear OS 7, przeciętni użytkownicy mogą spodziewać się nawet 10-procentowego wydłużenia czasu pracy na baterii.

W ramach szerszego wdrażania do ekosystemu Androida wybrane zegarki, które pojawią się jeszcze w tym roku, będą wyposażone w Gemini Intelligence, która zapewnia użytkownikom proaktywną i spersonalizowaną pomoc, dzięki czemu mogą oni skupić się na tym, co najważniejsze. 

W Wear OS 7 wprowadzamy nowe funkcje systemowe i ulepszone narzędzia dla programistów. Nowe funkcje dla użytkowników, takie jak aktualizacje na żywo i ulepszone sterowanie 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ć działanie swoich aplikacji na zegarkach.  

Zaczynajmy!

Wear OS 7 Canary

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

Nowy emulator umożliwia wypróbowanie wspomnianych wyżej funkcji i narzędzi dla programistów podczas testowania aplikacji pod kątem zgodności 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 to popularny element Wear OS, który zapewnia użytkownikom szybki dostęp do najważniejszych informacji. W miarę jak ekosystem Androida zmierza w kierunku ujednoliconej wizji widżetów, zbliżamy zegarek do pozostałych urządzeń z Androidem, aby zminimalizować wysiłek programistów.

Dziś z przyjemnością przedstawiamy kolejny etap rozwoju kafelków: elastyczne i dynamiczne widżety na zegarek

Widżety na Wear OS, oparte na Jetpack Glance i nowej platformie RemoteCompose, oferują większą ekspresję 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 Twoje projekty będą spójne na różnych urządzeniach, a jednocześnie będziesz mieć możliwość optymalizacji projektów pod kątem nadgarstka.

Łatwo dostosujesz interfejs z głównego miejsca na pełnoekranowym kafelku do widżetu 2x2. Sprawdź!

widgets code (1).png

Więcej informacji o nowych funkcjach znajdziesz w prezentacji na temat widżetów na konferencji I/O, która odbędzie się w tym tygodniu. 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 na zegarki aktualizacje na żywo.

Za pomocą funkcji Live Updates możesz wyświetlać ważne informacje w czasie rzeczywistym z zegarka lub aplikacji mobilnej, dzięki czemu użytkownicy będą mogli szybko sprawdzać aktualne dane.

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

Zobacz, jak Just Eat informuje użytkowników o aktualizacjach.

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

Łączenie aplikacji z systemem inteligentnym

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

Gdy będą gotowe, ogłosimy je na naszym blogu dla deweloperów i udostępnimy kompleksowy przewodnik, który pomoże Ci wybrać odpowiednie rozwiązanie i wdrożyć je w skuteczny sposób. Na razie możesz się z nią zapoznać.

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 temu użytkownicy mogą wykonywać zadania za pomocą głosu, co często zastępuje potrzebę ręcznego poruszania się po interfejsie aplikacji.  

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

Obecnie prowadzimy program wcześniejszego dostępu dla wszystkich zainteresowanych deweloperów. Aby wyrazić zainteresowanie, zarejestruj się, wypełniając ten 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 przypadku wybranych aplikacji na telefon bezpośrednio z poziomu zegarka, np. składać zamówienia w DoorDash. Nie będzie to wymagało żadnych działań ze strony deweloperów.

Na naszym blogu dla deweloperów znajdziesz więcej informacji o tych elastycznych opcjach przygotowywania aplikacji i łączenia jej z systemem inteligentnych funkcji Androida.

Śledzenie treningów na zegarku

Watch_IO26_SystemFitnessTracker_onBG_a05 (1).gif

Wiemy, że stworzenie od podstaw w Wear OS w pełni funkcjonalnej i wysokiej jakości aplikacji do śledzenia aktywności fizycznej wymaga dużych nakładów pracy, dlatego opracowaliśmy zupełnie nową aplikację Wear Workout Tracker dla aplikacji do ćwiczeń. Funkcja ta pojawi się w Wear OS jeszcze w tym roku. 

Śledzenie treningów zapewnia bogate, standardowe funkcje śledzenia treningów, w tym monitorowanie tętna, sterowanie multimediami i zbiór innych przydatnych funkcji, które pomogą Ci zmniejszyć nakłady na rozwój, a jednocześnie zagwarantować użytkownikom wysoką jakość.

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

Ulepszone systemowe elementy sterujące multimediami w Wear OS 7

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

Sterowanie 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 poziomu 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 po uruchomieniu multimediów na telefonie. 

Deweloperzy, którzy mają już wdrożone aplikacje multimedialne rozszerzające funkcje zegarka, mogą korzystać z tej funkcji bez dodatkowego wysiłku.

Płynne przekierowywanie dźwięku za pomocą przełącznika wyjścia zdalnego

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

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

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

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

W ramach podstaw tworzenia aplikacji na Wear OS udostępniliśmy Compose for Wear OS w wersji 1.6.

Zawiera ona ważne aktualizacje, w tym:

Uproszczona nawigacja dzięki Navigation 3

Programiści mogą zintegrować Navigation 3, aby zapewnić bardziej elastyczny i zgodny z Compose sposób obsługi nawigacji na 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 przypadku TransformingLazyColumn

Wprowadziliśmy znaczące ulepszenia zaawansowanego zarządzania listami za pomocą funkcji TransformingLazyColumn, w tym ulepszoną obsługę dopełnienia dzięki nowemu modyfikatorowi minimumVerticalContentPadding i inne nowe funkcje, takie jak przyciąganie i układ odwrócony.

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 środowisk otoczenia za pomocą LocalAmbientModeManager

Nowy interfejs LocalAmbientModeManager jest zoptymalizowany pod kątem obsługi przepływów w trybie otoczenia, co daje deweloperom większą kontrolę nad tym, jak ich funkcje 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 Tiles. Mamy już nowe stabilne wersje obu tych bibliotek.

Protolayout 1.4Tiles 1.6 współdziałają, aby zapewnić kilka istotnych nowych funkcji, w tym:

  • Zasoby obrazów wbudowanych: zasoby ImageResource można teraz wbudowywać bezpośrednio w układzie, 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 poprawy jakości kodu zmniejsza to opóźnienie wczytywania kafelków dzięki konsolidacji w jedno wywołanie bindera z systemu do usługi dostawcy.
  • Material3TileService: kafelki można zaimplementować 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:  na Wear 7 można teraz grupować w pliku manifestu wiele instancji TileService, aby umożliwić dynamiczne przełączanie między różnymi usługami reprezentującymi ten sam kafelek.

Zobacz przykładowe nowe kafelki tutaj.

WFF 5

Dostępna jest już wersja 5 formatu tarczy zegarka (WFF5) z wieloma nowymi funkcjami, które ułatwiają tworzenie tarcz zegarka, m.in.:

  • 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: właściwość isAutoSize można teraz stosować w przypadku komponentu TextCircular, a do elementu Font dodano nowy atrybut minSize, który ogranicza 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*.
  • Połączenia kresek: elementy Stroke i WeightedStroke zawierają teraz atrybut join.
  • Ustawienia hierarchiczne: style użytkownika mogą być teraz uporządkowane hierarchicznie, dzięki czemu niektóre ustawienia są widoczne tylko wtedy, gdy inne ustawienia mają określone wartości. Style użytkownika mogą teraz włączać i wyłączać miejsca na widżety. Można je skonfigurować za pomocą identyfikatorów childSettingIds i complicationSlotIds w opcjach stylu użytkownika.

Więcej informacji o WFF 5 znajdziesz w naszych nowych wskazówkach dla deweloperów.

Zacznij tworzyć aplikacje na Wear OS 7

Dzięki tym zmianom tworzenie aplikacji na Wear OS jest teraz łatwiejsze niż kiedykolwiek. Więcej informacji o tym, jak zacząć, znajdziesz w tych materiałach technicznych:

Nie możemy się doczekać, aż zobaczymy, jakie funkcje stworzysz na Wear OS.

Autor:

Czytaj dalej