プロダクト ニュース

Wear OS 7 の新機能

所要時間: 9 分
John Zoeller
デベロッパー リレーション エンジニア、Wear OS

このたび、Wear OS 7 を発表いたします。これは、ユーザーとデベロッパーの両方に電力効率とインテリジェンスの新時代をもたらすメジャー アップデートです。

スマートウォッチは、ユーザーにとって 1 日中使える不可欠なコンパニオンであると Google は考えています。そのため、ユーザーがお気に入りのアプリをより多く利用できるように、電力の最適化に引き続き投資しています。Wear OS 6 から Wear OS 7 にアップグレードするスマートウォッチの場合、平均的なユーザーはバッテリー駆動時間が最大 10% 改善されることが期待できます。

また、Android エコシステムへの広範なロールアウトの一環として、今年後半にリリースされる一部のスマートウォッチには Gemini Intelligence が搭載されます。これにより、ユーザーはプロアクティブでパーソナライズされたサポートを受けられるため、重要なことに集中できます。 

Wear OS 7 では、新しいシステム機能と強化されたデベロッパー ツールが導入されます。ライブアップデートなどのユーザー向けの新機能と、強化されたメディア コントロールにより、スマートウォッチでよりスマートで直感的なエクスペリエンスを実現できます。また、Wear Compose 1.6 や AppFunctions などのデベロッパー ツールキットの強化により、デベロッパーはスマートウォッチ向けアプリのエクスペリエンスを効率化できます。  

詳しく見ていきましょう

Wear OS 7 Canary

今年後半にリリースされる Android 17 をベースにした Google のスマートウォッチ プラットフォームの次期バージョン、Wear OS 7 Canary エミュレータを試せるようになりました。  

新しいエミュレータを使用すると、上記のデベロッパー向け機能とツールを実際に使用しながら、今後のプラットフォームとの互換性をテストできます。  

変更点を確認して、今すぐアプリのテストを開始しましょう。

Wear OS の新機能を確認する

Wear OS ウィジェット

Widgets (1).png

全画面表示のタイルは、Wear OS でよく使用されるサーフェスであり、ユーザーは重要な最新情報を一目で確認できます。Android エコシステムがウィジェットの統一ビジョンに向けて移行するにつれて、デベロッパーの労力を最小限に抑えることを目的に、スマートウォッチを他の Android デバイスに近づけています。

このたび、タイルの進化の次のステップとして、柔軟で動的なWear ウィジェットを発表いたします。

Jetpack Glance と新しい RemoteCompose フレームワークを搭載した Wear ウィジェットは、タイル ProtoLayout ライブラリよりも表現力が高く、Compose との一貫性があります。Wear ウィジェットは、モバイルの 2x1 形式と 2x2 形式に完全に一致する 2 つの新しいカード レイアウト(小と大)をサポートしています。これにより、デバイス間でデザインの一貫性を保ちながら、スマートウォッチ向けにデザインを最適化できます。

全画面表示のタイルの 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 アプリでランニングを開始するには、ユーザーは Gemini に「ランニングのトラッキングを開始して」と話しかけます。

現在、関心のあるデベロッパー向けの早期アクセス プログラムを実施しています。関心をお持ちの場合は、フォームからお申し込みください

タスクの自動化

Watch_IO26_RemoteBonobo_Doordash_onBG_a22_GIF (1).gif

また、開発作業をまったく行わずに、選択したスマートフォン アプリの自動化されたアプリタスクをスマートウォッチから直接呼び出してトラッキングできるようになります。たとえば、DoorDash で注文するなどです。

アプリを Android インテリジェンス システムに準備して接続する方法については、デベロッパー ブログで柔軟なオプションをご確認ください。

Wear ワークアウト トラッカー

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 がリリースされました。

これには、次のような強力なアップデートが含まれています。

Navigation 3 によるナビゲーションの効率化

デベロッパーはNavigation 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 ライブラリと Tiles ライブラリはしばらくサポートを継続します。どちらも新しい安定版がリリースされています。

Protolayout 1.4Tiles 1.6 は連携して、次のような注目すべき新機能を提供します。

  • インライン画像リソース: ImageResource をレイアウト内に直接インライン化できるようになりました。また、タイルは ProtoLayoutScope を介したリソースの自動収集をサポートするようになり、手動でのリソース マッピングや個別のメソッドへの分割が不要になりました。コードの品質が向上するだけでなく、システムからプロバイダ サービスへの単一のバインダ呼び出しに統合することで、タイルの読み込みレイテンシが改善されます。
  • Material3TileService: タイルは Material3TileService として実装できます。これは、タイル レイアウトとリソースの両方を返す包括的な suspend 関数であり、MaterialScope と ProtoLayoutScope を自動的に管理して開発エクスペリエンスを簡素化します。
  • 動的なサービス切り替え:  Wear 7 では、複数の TileService インスタンスをマニフェストにグループ化して、同じタイルを表す異なるサービスを動的に切り替えることができます。

新しいタイルのサンプルはこちらでご確認くださいhere

WFF 5

Watch Face Format バージョン 5(WFF5)がリリースされました。ウォッチフェイスの作成を容易にする新機能が多数搭載されています。

  • 配置オプションの強化: TextCircular などのテキスト要素に、複数のテキスト要素の同じベースラインでの verticalAlign など、追加の配置オプションが追加されました。
  • 自動サイズ調整の強化: isAutoSize を TextCircular で使用できるようになりました。また、自動サイズ調整が有効になっている場合に最小サイズを制限する新しい属性 minSize が Font 要素に追加されました。
  • ブレンドモード: Group 要素と ComplicationSlot 要素で、Part* 要素での既存のサポートに加えて、ブレンドモードがサポートされるようになりました。
  • ストローク結合: Stroke 要素と WeightedStroke 要素に join 属性が追加されました。
  • 階層設定: ユーザー スタイルを階層として構造化できるようになりました。一部の設定は、他の設定に特定の値を設定した場合にのみ表示されます。ユーザー スタイルでコンプリケーション スロットを有効または無効にすることもできます。これらは、ユーザー スタイル オプションの childSettingIds と complicationSlotIds を使用して構成できます。

WFF 5 の詳細については、新しいデベロッパー ガイドをご覧ください。

今すぐ Wear OS 7 向けの開発を始めましょう

今回のアップデートにより、Wear OS でアプリを開発する絶好の機会が到来しました。スタートガイドについては、次の技術リソースをご覧ください。

Wear OS で構築するエクスペリエンスを楽しみにしています。

作成者:

続きを読む