以下のガイドラインを確認して、Wear OS アプリの子供向けエクスペリエンスを最適化してください。また、アプリやゲームが子ども向けエクスペリエンスの要件を満たしていることも確認してください。
Wear OS の原則を確認する
新しい Wear OS アプリを作成する場合は、以下のリソースをご覧ください。
電話アプリを移植しない
モバイルアプリを Wear OS に移植しないでください。Wear OS デバイスは、モバイル デバイスよりもバッテリーとコンポーネントがはるかに小さいため、直接移植されたモバイルゲームをプレイするのは非常に困難です。
詳しくは、Wear OS で子供向けのエクスペリエンスを設計する方法をご覧ください。
開発環境を選択する
子供向けの体験を開発するには、Wear OS で UI を作成する際におすすめの Wear OS 向け Compose と Unity for Android を使用できます。
Unity のワークフローと機能に精通している場合や、ゲームが複雑で 3D グラフィックスと物理学を使用している場合は、Unity を使用してゲームを開発することをおすすめします。また、さまざまなパフォーマンス最適化機能も備えています。Wear OS の品質要件によっては、ロータリー入力のサポートなど、Unity でのカスタム実装が必要になる場合があります。
シンプルで短いアニメーションが数個しかないゲームの場合は、Compose Animation API で十分であり、Android 環境でより適切にサポートされます。
デバイスのバッテリーへの影響を最小限に抑える
1 回のセッションでバッテリー駆動時間に影響するイベントを最小限に抑えます。子どもが使用するスマートウォッチには、保護者向けの重要な安全機能が搭載されていますが、その機能はデバイスのバッテリー残量に依存します。
以下に、バッテリーへの影響を軽減するためのベスト プラクティスを示します。詳しくは、電力とバッテリーを節約する方法をご覧ください。
- オフラインのユースケースを想定して設計し、ネットワーク関連のバッテリー消費を発生させることなくお子様が遊べるようにします。
- インターネット接続または GPS 接続が必要なタスクを最小限に抑えます。
- 1 日あたりのアクティブなゲームプレイ時間を制限する。
- 1 日を通してアクティビティを記録するだけでなく、エクササイズを記録する場合は、省電力 API を使用します。
- 手動でウェイクロックを作成するのを減らし、
WorkManager
を使用する。
次のリストは、エクスペリエンスに含めるべきでない要素を示しています。
- 直接センサー トラッキングは使用しないでください。バッテリーの消耗が大幅に早くなります。
- 長時間実行されるアニメーションは含めないでください。
- 必要以上に画面をオンにするようお客様に促さないでください。
スタンドアロン エクスペリエンスの準備
スタンドアロン エクスペリエンスを開発する場合は、次の点を考慮してください。
- オフラインのユースケースを考慮して設計し、お子様がいつでも遊べるようにします。
- モバイル デバイスとのアクティブな接続がないエミュレータで、アプリの動作をテストします。
Watch Face Format を使用してウォッチフェイスを作成する
子ども向けにデザインされたウォッチフェイスは、Watch Face Format を使用して作成する必要があります。色の彩度がバッテリーのパフォーマンスに与える影響に注意してください。
ウォッチフェイス スタジオを使用してウォッチフェイスをデザインする方法や、Watch Face Format を手動で構成する方法について詳しくは、ウォッチフェイス検証ツールをご覧ください。
スマートフォンで開くアクションを非表示にする
Wear OS 5 以降の RemoteActivityHelper
API には、Wear OS デバイスがスタンドアロン モードかどうかを検出する機能が含まれています。デバイスがスタンドアロン モードの場合は、アプリやゲームに表示される [スマートフォンで開く] 操作を非表示にします。
アプリでスマートフォンで公開 URL を開いて利用規約、法的通知、プライバシー ポリシーなどを表示する必要があるユースケースでは、Dialog
コンポーネントを使用してショートリンクまたは QR コードを表示します。QR コードを指定すると、保護者はモバイル デバイスで QR コードをスキャンできます。
クロスデバイス認可リクエストを送信する前にスタンドアロン モードのステータスを確認する
アプリが他のデバイスに対して OAuth 認可リクエストを行う場合は、まずデバイスがスタンドアロン モードかどうかを確認します。これを行うには、RemoteAuthClient
オブジェクトから getAvailabilityStatus()
を呼び出します。
- 戻り値が
STATUS_UNAVAILABLE
の場合、デバイスはスタンドアロン モードです。OAuth 認可リクエストをモバイル デバイスに送信するまで待つ必要があります。 - 戻り値が
STATUS_TEMPORARILY_UNAVAILABLE
の場合は、値がSTATUS_AVAILABLE
に変更されるまで待ってから、認可リクエストを送信します。