メディアアプリを Wear OS に拡張する

Wear OS は、Android ユーザーが外出先でオーディオブック、音楽、ポッドキャスト、ラジオなどのさまざまなオーディオ コンテンツを利用できる優れたプラットフォームです。Wear OS by Google を使用すると、オーディオ コンテンツなどのさまざまなカテゴリのアプリを作成して、ユーザーが接続を維持したり、健康を維持したり、自己表現したりできるようにすることができます。

Android 向けの開発経験がある場合、アプリや通知などの機能はご存じでしょう。Wear OS 向けの開発を行う際には、最新の Android 開発の知識を活用できます。

Wear OS 開発の原則

Wear OS は Android をベースにしているため、Android 向けのおすすめの方法の多くは Wear OS にも該当します。開発時間を短縮するには、Wear OS アプリの開発を開始する前に、これらの原則を確認してください。

Wear OS でアプリを作成して実行する

Wear OS アプリを実際に見てみるのが、始めるうえで一番の方法です。Android Studio のテンプレートを使用して、Wear OS 用に初めてのアプリを作成できます。このアプリでは、Wear OS デバイスで情報を一目で確認できるさまざまな方法を示し、プラットフォーム上でアプリを開発するためのベスト プラクティスをいくつか紹介します。

詳しい手順については、Wear OS でアプリを作成して実行するをご覧ください。

Wear OS とモバイル開発の比較

モバイルアプリの設計方法と Wear OS アプリの設計方法にはいくつかの違いがあります。特定の機能、API、おすすめの方法が Wear OS アプリ開発と Android モバイル開発でどのように違うのかを確認するには、機能の表をご覧ください。

Wear OS のメディアアプリの一般的なユースケース

Wear OS でメディアアプリを構築して、ユーザーがスマートウォッチからダウンロードしたコンテンツをストリーミングして再生できるようにします。ユーザー エクスペリエンスを最大限に高めるには、Wear OS デバイスで特に効果的な次のメディア ユースケースの実装を検討してください。

ダウンロードしたコンテンツを再生する

ユーザーは、ネットワーク接続を必要とせずに、ワークアウト中にコンテンツを聴くことができます。Wear OS デバイスは一般的に Bluetooth と Wi-Fi に対応していますが、LTE には対応していない場合があります。エクササイズ中や通勤中の場合や、ユーザーがモバイル デバイスを自宅に置いたまま外出する場合など、不安定な接続やオフラインのユースケースも考慮して設計します。詳しくは、ダウンロードしたコンテンツの操作をご覧ください。

利用可能なネットワークでストリーミングする

スマートウォッチからストリーミングして音楽、ポッドキャスト、ラジオ局を聴くことができますが、ストリーミングを行うとスマートウォッチのバッテリーが消耗することがあります。最近使用したダウンロードをブラウジング リストに表示することにより、ユーザーがスマートウォッチで聞く際にダウンロード済みのコンテンツを優先させます。次の画像に示すように、ダウンロードの全一覧にユーザーを誘導するボタンを追加することをご検討ください。

オーディオ ライブラリのリストに [ダウンロード] が含まれる

図 1. オーディオ ライブラリのリストに [ダウンロード] が含まれている

プレイリストやオーディオブックなどのオーディオ ライブラリのリスト

図 2. プレイリストやオーディオブックなどのオーディオ ライブラリのリスト

Wear OS 向け Compose でビルドする

Wear OS 向け Compose は Android Jetpack の一部であり、他の Wear Jetpack ライブラリと同様に、質の高いコードを短時間で作成できます。これは、Wear OS アプリのユーザー インターフェースを作成するための、Google がおすすめするアプローチです。

モバイル デバイス向け Jetpack Compose の開発原則の多くは、Wear OS 向け Compose にも当てはまります。ただし、いくつか重要な違いがあります。Wear OS 向け Compose を使用してビルドする際は、ユーザーがスマートウォッチでメディアに簡単かつ迅速にアクセスできるアプリを設計することが重要です。スマートウォッチは、スマートフォンやタブレットと比べて操作時間がかなり短いため、操作のしやすさや速さの優先度が高い独特なサーフェスです。

宣言型 UI フレームワークの一般的なメリットについて詳しくは、Compose を導入する理由をご覧ください。Jetpack Compose ツールキットの使用に慣れていない場合は、Compose のパスウェイをご覧ください。Wear OS 向け Compose の詳細については、Wear OS 向け Compose のパスウェイと GitHub の Wear OS サンプル リポジトリをご覧ください。

Wear OS メディア ツールキット

Wear OS メディア ツールキットは、Wear OS 向けの高品質なメディアアプリの開発を加速させるライブラリのセットです。このツールキットは Horologist プロジェクトの一部です。Horologist は、アプリ開発を加速させるのに役立つ追加のライブラリです。

このツールキットは、Compose for Wear OS で実装された UI から、Media3 を使用して実装された再生機能まで、メディア ユースケース向けのクラス最高のライブラリを使用します。アプリに特定の要件がある場合は、既存のプレーヤーに依存しながら、ツールキットから UI 実装を採用できます。

メディア ツールキットは、スマートウォッチの内蔵スピーカーでのメディア再生の回避、音声オフロードの有効化、ネットワークへの不要な ping の回避などの課題を解決するのに役立ちます。

メディア アプリを設計するでは、Horologist で実装するガイダンスと、Wear OS のアーキテクチャとユースケースに関する情報を提供します。

Wear OS で期待されるユーザー エクスペリエンスを構築する

Wear OS でメディアアプリを作成する際は、スマートウォッチとモバイル デバイスでユーザー エクスペリエンスがどのように異なるかを考慮してください。特に、次の点に注意してください。

  • 内蔵スピーカーは音楽再生用に設計されていません。そのため、Bluetooth スピーカーまたはヘッドフォンを使用してください。
  • ネットワーク接続は制限されたり、変化したりするため、さまざまなネットワーク状況に対応できるようにアプリを最適化し、ネットワークの使用を最小限に抑える必要があります。
  • バッテリーが小さいため、電力に制限があります。デバイスがメイン CPU で音声処理を実行している場合や、デバイスの LTE 信号が弱い場合、バッテリーの消耗が速くなります。電力消費を抑えるため、オーディオ オフロードのサポートを追加しました。
  • デバイスには、ユーザーがアプリを再利用するための UI サーフェスがいくつか用意されています。これらのサーフェスでアプリの機能をアピールしましょう。

Bluetooth スピーカーまたはヘッドフォンを使用する

スマートウォッチのスピーカーは通話やガイド付きアクティビティに使用できますが、メディア コンテンツの視聴には最適ではありません。

最適なユーザー エクスペリエンスを提供するため、アプリは Media Toolkit を使用して、Bluetooth ヘッドフォンまたはスピーカーがスマートウォッチに接続されている場合にのみ、音声を再生できるようにする必要があります。

メディア ツールキットには、ExoPlayer インスタンスを装飾し、音を出す前に誤った再生をプロアクティブに停止する特定の Media3 拡張機能が用意されています。

ネットワーク条件に合わせて最適化する

メディアアプリがスマートウォッチで適切に動作するようにするには、次のストリーミングに関する考慮事項とネットワーク条件について選択する必要があります。

  • ストリーミングに 48 kbps などの低いビットレート、AAC や MP3 などのコーデックを選択して、コンテンツを最適化します。
  • 画像とトラックのプリフェッチ戦略を最適化して、接続が一時的に失われた場合でも再生を継続できるようにします。
  • Wi-Fi、LTE、Bluetooth を使用してスマートフォンに接続されたスマートウォッチなど、すべてのネットワーク構成でアプリをテストします。また、スマートウォッチがネットワークを切り替えたときに何が起こるかもテストします。

Wear OS メディア ツールキットは、パフォーマンスの高いアプリの基盤を構築するのに役立ちます。たとえば、特定のオペレーションに適した接続を選択するための Network Awareness モジュールを提供します。

オーディオ オフロードを有効にする

Wear OS のアプリのパフォーマンスを向上させ、消費電力を削減するには、オーディオ オフロードを使用します。これにより、オーディオ処理を CPU から専用の信号プロセッサにオフロードできます。メディア ツールキットは、AudioOffloadManager

特定の音声形式で音声オフロードがサポートされているかどうかわからない場合は、AudioManager.isOffloadedPlaybackSupported() メソッドを使用します。詳細については、Exoplayer のドキュメントをご覧ください。

やむを得ない場合を除き、ネットワーク接続は避ける

Wear OS 向けに開発する場合、ユーザーのネットワーク接続は制限されていると想定できます。MediaDownloadService を使用すると、ユーザーは信頼性が高くパフォーマンスの高いダウンロードを利用して、外出先でメディアを再生できます。

このツールキットを使用すると、Media3 の DownloadManager と AndroidX WorkManager を使用してダウンロードをスケジュールすることで、メディアのダウンロードをより効率的に最適化できます。

Media3 は、必要なすべての通知とフォアグラウンド サービスを開始します。サンプルアプリのコードは、Wi-Fi 接続が利用可能な場合にダウンロードを実行するように WorkManager を構成し、パフォーマンスを向上させます。ネットワーク認識モジュールを使用すると、デベロッパーはネットワーク オペレーションをネットワークの種類にマッピングできます。

メディアの再生が継続中であることをユーザーに知らせる

Wear OS 3 以降では、進行中の通知を Wear OS ユーザー インターフェース内の複数のサーフェスに表示できます。進行中のアクティビティの通知をタップすると、アプリでプレーヤー画面が開きます。

Media3 を使用すると、Wear OS はアプリを開くインテントを持つメディアアプリの進行中のアクティビティの作成を自動的に処理します。これにより、ユーザーはメディア再生などの長時間のアクティビティにさらに集中できるようになります。