メディアアプリを 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 には対応していない場合があります。エクササイズ中や通勤中の場合や、ユーザーがモバイル デバイスを自宅に置いたまま外出する場合など、不安定な接続やオフラインのユースケースも考慮して設計します。詳しくは、ダウンロードしたコンテンツの操作をご覧ください。

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

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

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

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