メディアアプリを 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 アプリの設計方法には違いがあります。Wear OS アプリ開発と Android モバイル開発における特定の機能、API、ベスト プラクティスの違いを確認するには、機能の表をご覧ください。

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

Wear OS でメディアアプリを作成し、ユーザーがスマートウォッチからダウンロードしたコンテンツのストリーミングや再生を行えるようにします。最適なユーザー エクスペリエンスを実現するには、Wear OS デバイスで特に適切に機能する、次のメディアのユースケースを実装することを検討してください。

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

ユーザーは、ワークアウト中にネットワーク接続を必要とせずにコンテンツを聴くことができます。通常、Wear OS デバイスは Bluetooth と Wi-Fi に対応していますが、LTE には対応していない場合があります。運動中や通勤中など、ユーザーがモバイル デバイスを家に置いたまま離れる可能性がある場合に、接続が不安定な場合やオフラインのユースケースに対応するように設計します。詳細については、ダウンロードしたコンテンツの操作をご覧ください。

利用可能なネットワークであればストリーミングできます

ユーザーはスマートウォッチからストリーミングして音楽、ポッドキャスト、ラジオ ステーションを聴くことができますが、ストリーミングによってスマートウォッチのバッテリーが消耗する可能性があります。最近使用したダウンロードをブラウズリストに公開することで、ユーザーがスマートウォッチで聴くことを選択したときに、ダウンロードしたコンテンツを優先させます。次の画像に示すように、ダウンロードの全リストに移動するボタンを追加することを検討してください。

オーディオ ライブラリのリストは次のとおりです。 オーディオ ライブラリのリスト(プレイリスト、オーディオ ブックを含む)

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 は、アプリの開発を加速するのに役立つ追加ライブラリです。

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

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

メディアアプリを設計するでは、Horologist で実装するためのガイダンスと、Wear OS のアーキテクチャとユースケースについて説明します。

Wear OS 固有の課題に関するベスト プラクティス

Wear OS でメディアアプリを作成する場合は、特に次の点について、スマートウォッチとモバイル デバイスでのユーザー エクスペリエンスの違いを考慮してください。

  • 内蔵スピーカーは音楽再生用には設計されていません。そのため、Bluetooth スピーカーまたは Bluetooth ヘッドフォンを使用してください。
  • ネットワーク接続は制限または多様であるため、さまざまなネットワーク状態に合わせてアプリを最適化し、ネットワークの使用を最小限に抑える必要があります。
  • 小型の電池は電力が制限されます。デバイスがメイン CPU でオーディオ処理を行っているときや、デバイスの LTE 信号が不安定な場合、バッテリーの消費が早くなります。オーディオ オフロードのサポートを追加して電力を節約します。
  • デバイスには、ユーザーがアプリを再び使用するための UI サーフェスがいくつか用意されています。これらのサーフェスでアプリの機能をアピールします。

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

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

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

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

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

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

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

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

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

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

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

どうしても必要な場合を除き、ネットワーク接続を避ける

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

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

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

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

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

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