Wear OS 開発の原則

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

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

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

モバイルアプリがすでにある場合は、コードベース全体を移行しないでください。代わりに、手首に最適なコアタスクを特定し、そのエクスペリエンスを合理化します。ウェアラブル アプリを成功させるには、移動中にユーザーが集中して生産性を維持できるよう、一目でわかる有意義なエクスペリエンスを提供する必要があります。

フォーカスされたタスクを示す Wear OS アプリのインターフェース。
図 1: Wear OS アプリの例。

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

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

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

Wear OS で実行されている地図アプリとタイマーアプリ。
図 2: 素早い操作に最適化された Wear OS アプリ。

ユーザーのプライバシーを尊重する

アプリが機密性の高い情報にアクセスする権限をユーザーから付与されるには、ユーザーの信頼を得る必要があります。システムには、ユーザーがプライバシーを保護するための方法がいくつか用意されています。

プライバシー ダッシュボード

Wear OS 5 以降では、システムはプライバシー ダッシュボードをサポートしています。このダッシュボードでは、各アプリのデータ使用量(次の詳細を含む)を一元的に確認できます。

  • アクセスされるデータタイプ(位置情報、マイクなど)。
  • これらのデータ型にアクセスされた最新の日時。

この情報にアクセスすることで、ユーザーはどのアプリが個人データにアクセスできるようにすべきかについて、より多くの情報に基づいて判断できるようになります。ユーザーの信頼を維持するため、データを責任を持って使用し、ユーザーデータの収集と使用の際には透明性を確保してください。

スクリーンショットの検出

Wear OS 5 以降を搭載するデバイスでは、アプリはプライバシーを保護するスクリーンショット検出 API を使用できます。

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

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

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

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

天気予報の追加機能が表示された Wear OS ウォッチフェイス。 天気予報の通知が表示されている Wear OS ウォッチフェイス。 天気タイルを表示している Wear OS ウォッチフェイス。 天気アプリ全体を表示している Wear OS ウォッチフェイス。
ウォッチフェイスの追加機能

P1: 今の天気は?

通知

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

タイル

P1: 今の天気は?

P2: 今日の天気は?

アプリ

P1: 今の天気は?

P2: 今日の天気は?

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

P3: 設定

現在の天候と天気予報が表示された天気タイルを表示している Wear OS スマートウォッチ。
図 3: Wear OS の天気タイル。

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

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

Wear OS API レベル 30 以降では、進行中の通知を OngoingActivity とペア設定して、その通知を Wear OS のユーザー インターフェースの他のサーフェスに追加します。これにより、長時間のアクティビティへの集中度が高まります。

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

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

オフラインで動作する Wear OS の音楽アプリとワークアウト アプリ。
図 4: オフラインでの Wear OS アプリの使用例。

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

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

新しいコンテンツを含む Wear OS のカレンダー アプリと天気アプリ。
図 5: 新しいコンテンツを含む Wear OS アプリ。

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

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

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

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

詳しくは、スプラッシュ画面を追加するをご覧ください。

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

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

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

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

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

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

LTE でのストリーミング

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

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

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

音楽ソースを示す

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

スピーカーを使用する

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

wake lock を保持しない

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

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

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

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

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

センサー管理を簡素化し、電力を最適化するには、ヘルスサービスの使用を検討してください。

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

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

タッチロックを使用する

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

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

通知から始める

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

音声入力をサポートする

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