Wear OS 開発の原則

Wear OS は Android をベースにしているため、Android 向けのおすすめの方法の多くは Wear OS にも該当します。ただし、Wear OS は手首に合わせて最適化されているため、両者にはいくつかの違いがあります。

開発時間を短縮するには、Wear OS アプリの開発を開始する前に、以下の原則を確認してください。

注: 新しい Wear OS 品質要件は 2023 年 8 月 31 日に発効します。要件の一覧については、Wear OS アプリの品質をご覧ください。

重要なタスクに合わせて設計する

アプリ全体のエクスペリエンスではなく、1 つまたは 2 つのターゲット ユーザーのニーズに集中します。モバイル コードベース全体を移行せず、Wear OS ユーザー インターフェースを一番上に配置しないでください。

代わりに、手首で適切に機能する重要なタスクを見つけ、Wear OS でエクスペリエンスを合理化します。

アプリサンプル

手首に合わせて最適化する

ユーザーが不快感や腕の疲労を感じないよう、スマートウォッチのタスクは数秒で完了できるようにします。

手首に合わせた最適化について詳しくは、Wear OS の設計ガイドラインをご覧ください。

タイマーのサンプル

タスクに適切なサーフェスを使用する

Wear OS では、ユーザーの関心を引き付けるために、モバイルよりも多くのサーフェスを利用できます。アプリは、それらのサーフェスに合わせてコンテンツを調整する必要があります。

各サーフェスには独自のユースケースがあります。さらにアクションが必要な場合は、アプリのフル機能にユーザーを誘導します。

ユーザーのニーズの優先度に応じて、コンテンツがサーフェスごとにどのようにスケーリングされるかを確認し、理解します。天気アプリの優先度の例を次に示します。

ウォッチフェイスの追加機能

P1: 今の天気は?

通知

P1 悪天候に関する注意事項を教えて

タイル

P1: 今の天気は?

P2: 今日の天気は?

アプリ

P1: 今の天気は?

P2: 今日の天気は?

P3: 時間ごとの天気の変化は?

P3: 設定

天気タイル

詳しくは、ユーザー インターフェース ガイドをご覧ください。

他のサーフェスに通知を追加する

Wear OS API レベル 30 以降では、進行中の通知を OngoingActivity とペア設定して、その通知を Wear OS のユーザー インターフェースの他のサーフェスに追加し、長時間実行されるアクティビティへのエンゲージメントを高めます。

オフライン シナリオをサポートする

Wear OS デバイスは一般的に Bluetooth と Wi-Fi に対応していますが、LTE には対応していない場合があります。エクササイズ中や通勤中の場合や、ユーザーがモバイル デバイスを自宅に置いたまま外出する場合など、不安定な接続やオフラインのユースケースも考慮して設計します。

オフラインの例

関連性の高いコンテンツを提供する

スマートウォッチは、ユーザーがほぼ常に身に着けているデバイスです。時間、場所、アクティビティなど、ユーザーのコンテキストに沿ってアプリのコンテンツを最新の状態に維持します。

サーフェス

ユーザーが別のデバイスからタスクを完了できるようにする

複数のデバイスを所有しているユーザーが増えています。このスマートウォッチは、分散型のデバイス エコシステムでタスクを完了する際に活用できます。ご自分のアプリにとってこの方法が適しているユースケースを確認してください。

アプリのコールド スタート時のユーザー エクスペリエンスを改善する

アプリのコールド スタート時のユーザー エクスペリエンスを改善するには、別のテーマでスプラッシュ アクティビティを作成し、マニフェスト ファイルで windowBackground をカスタム スプラッシュ ドローアブルに設定します。スプラッシュ画面は、背景色とカスタム ドローアブル(通常はアプリアイコン)の 2 つの要素を含むレイヤリストで構成されています。ドローアブルは 48 x 48 dp にする必要があります。

メディアアプリに関する考慮事項

スマートフォンからの音楽の再生コントロールを有効にする

アプリがスマートフォンとスマートウォッチの両方にインストールされている場合、ユーザーはスマートウォッチからリモートで操作できることを期待します。たとえば、スマートウォッチから曲を一時停止、再生、スキップできることを期待します。

ダウンロードしたコンテンツ

前述のように、オフラインのシナリオをサポートすることが重要です。これは、メディアアプリでは特に重要です。メディアアプリの場合、まずオフライン ダウンロードをサポートしてから、必要に応じてストリーミング機能を追加する方が簡単です。

設計する際には、オフラインでも利用できるコンテンツをユーザーに明示することに留意してください。長時間実行の即時タスクまたは定期的なタスクの場合は、WorkManager を使用します。スマートウォッチが Wi-Fi に接続されて充電中の状態になるまで、ダウンロードを延期します。

LTE でのストリーミング

メディア再生の一般的なユースケースである LTE 接続を備えたデバイスでのストリーミング サポートの提供を検討します。ストリーミングによって、ユーザーは他のデバイスを自宅に置いたままでも音楽を聴くことができます。ユーザーが音楽をストリーミングしている際には、視覚的なメッセージをユーザーに表示するとともに、ストリーミングした音声をキャッシュに保存してください。ストリーミング中の電力使用を最適化するため、ロギングや分析データの送信など、遅延する可能性のあるジョブに LTE を使用することは避けてください。

Bluetooth ヘッドフォンをサポートする

ユーザーがランニングやウォーキングをする際、必要なのはスマートウォッチとヘッドフォンだけです。ヘッドフォンとのペア設定をサポートすることで、真のスタンドアロン エクスペリエンスを提供できます。音楽の再生や再生の再開の際にヘッドフォンが接続されていない場合は、Bluetooth の設定を起動して、アプリから直接 Bluetooth ヘッドフォンに接続できるようにします。

音楽ソースを示す

音声の発信元がスマートウォッチ、またはスマートフォンのいずれであるかを明確に示します。ソースアイコンを使用して、音楽が再生されている場所を示します。デフォルトのソースは、ユーザーが音楽の再生を開始する場所であることが必要です。

スピーカーの使用

一部の Wear OS デバイスにはスピーカーが内蔵されており、リマインダーやアラームなどに使用できます。メディアや音楽の再生に内蔵スピーカーを使用するのは避けてください。ユーザーが期待しているのはヘッドフォンの使用に結び付いた体験であるためです。詳細については、オーディオ機器の検出をご覧ください。

フィットネス アプリに関する考慮事項

Android 10 以降に対応するフィットネス アプリを作成する場合は、運動認識の権限をリクエストします。

モバイルアプリを補完する

上述したように、Wear OS フィットネス アプリは、手首での重要なタスクのみを処理する必要があります。つまり、フィットネス用 Wear OS アプリは主にデータ収集に特化することになります。

一部のワークアウト後の概要画面は許可できますが、ワークアウト後の詳細な分析や、より多くの画面スペースを必要とするその他の機能はモバイルアプリに残します。

長期間のアクティビティをサポートする

位置情報やセンサーデータに登録する多くのアプリと同様に、使用中も動作するようにアプリを設計します。つまり、アプリはフォアグラウンドで機能することが必要です。

アクティビティでワークアウトが開始されたら、作業を行うサービスに対象のアクティビティをバインドします。ユーザーがアプリから離れると、サービスはバインドを解除され、進行中の通知に昇格できます。

Wear OS では、Ongoing Activity API を使用して、進行中の通知を新しいサーフェスに最小限のコードで公開できます。

このアーキテクチャで簡略化されたアプリを確認するには、GitHub の進行中のアクティビティのコードラボをご覧ください。

常時オンの使用頻度を低減する

ユーザーがアプリとのセッション中にスマートウォッチの使用を停止すると、デバイスは最終的に、電池の節約のために常に画面表示モードになります。

指定した時間内にユーザーがデバイスを再度操作すると、Wear OS は対象のアプリをアクティブな状態に戻します。

ほとんどのユースケースでは、この機能によって良好なユーザー エクスペリエンスが十分に確保され、バッテリー駆動時間が長くなります。

ワークアウト中など、アプリを長時間表示する必要が生じる場合もあります。そのような場合は、AmbientLifecycleObserver を使用する必要があります。 詳細については、Wear でアプリを表示したままにするをご覧ください。

wake lock を保持しない

Health Services などの API を使用してセンサーデータを取得し、読み取りや配信の合間に CPU をスリープさせることができます。

位置情報とセンサーの管理を最適化する

センサー管理は非常に重要であり、適切に行わないとバッテリー寿命に悪影響を与える可能性があります。

センサー戦略を実装する場合は、以下の推奨事項に従ってください。

  • 可能な限り、常にバッチモードでセンサーを使用する。
  • 画面 / アプリが再びアクティブになったら、センサーをフラッシュする。
  • 画面がオフのときにはバッチ処理の長さを変更して電池を節約する。
  • センサー リスナーが不要になったら、登録を解除する。
  • 位置センサーについては、Wear OS 上で位置情報を検出するに記載されているおすすめの方法に従う。

ハプティクスを使用してアクションを確定する

触覚フィードバックを使用して、開始、停止、自動一時停止、自動ラップなどのアクションを確定します。

タッチロックを使用する

場合によっては、タップ操作を無効にするとアプリ エクスペリエンスが向上する可能性があります。たとえば、ワークアウトをトラッキングする場合は、誤ってタップする可能性が非常に高いため、タップを無効にする方が理にかなっています。

メッセージ アプリに関する考慮事項

通知から始める

MessagingStyle をサポートして、ユーザーのアプリ エクスペリエンスを改善します。

音声入力をサポートする

スマートウォッチでの操作が大幅に高速化されるため、音声文字変換をサポートするようにしてください。録音された音声もサポートすることをおすすめします。