Wear OS 6 では、新しい API である Watch Face Push が導入され、より高度なウォッチフェイスの公開ユースケースの機会が生まれます。
ウォッチフェイス プッシュを使用するタイミングを特定する
Watch Face Push は、デベロッパーがウォッチフェイスを直接追加、更新、削除できる Wear OS の API です。標準のウォッチフェイスの開発では必要ありません。
Watch Face Push で使用するウォッチフェイスは、Watch Face Format を使用して作成する必要があります。これには、ウォッチフェイス スタジオや、Watch Face Format を使用するウォッチフェイスを作成する他のツールでデザインされたウォッチフェイスが含まれます。
Watch Face Push API はさまざまな方法で使用できますが、主なユースケースについては、次の表をガイドとして使用してください。
ユースケース | 推奨方法 | 複雑さ |
---|---|---|
個々のウォッチフェイスを作成して公開したい。 | Watch Face Format を直接、またはウォッチフェイス スタジオなどのツールを使用して使用し、Google Play で公開します。 | 低 |
ユーザーがキュレートされたコレクションからウォッチフェイスを選択したり、Wear OS スマートウォッチに直接インストールするウォッチフェイスをデザインしてカスタマイズしたりできるスマートフォン アプリを作成したい。 | スマートウォッチで Watch Face Push API を使用して、スマートウォッチとスマートフォンの両方用のアプリを作成します。 | 高 |
目的
Watch Face Push API の一般的なユースケースは、マーケットプレイス アプリの作成です。このアプリから、ユーザーはスマートフォン上の厳選されたコレクションからウォッチフェイスを選択し、接続されたスマートウォッチへのウォッチフェイスのインストールを直接制御できます。
考慮事項
ウォッチフェイスの作成の詳細については、Watch Face Format のガイダンスをご覧ください。ウォッチフェイス プッシュを使用してデプロイされたウォッチフェイスは、通常の Watch Face Format ウォッチフェイスです。
ウォッチフェイスを作成する際は、次の点を考慮してください。
パッケージ名
Watch Face Push を使用してインストールされるウォッチフェイスは、次の規則に準拠している必要があります。
<app name>.watchfacepush.<watchface name>
ここで、<app name>
は Watch Face Push API を呼び出すアプリのパッケージ名です。
たとえば、パッケージ名が com.example.mymarketplace
のアプリの場合、有効なウォッチフェイス パッケージ名は次のとおりです。
com.example.mymarketplace.watchfacepush.watchface1
com.example.mymarketplace.watchfacepush.watchface2
com.example.mymarketplace.watchfacepush.another_watchface
この規則に準拠していないウォッチフェイスは、API によって拒否されます。
パッケージの内容
APK のコンテンツは厳密に適用されます。Watch Face Format が次の制約に準拠するように注意する必要があります。技術的には、無害なメタデータ ファイルやその他のアーティファクトを含む Watch Face Format APK を作成できます。これは Google Play では許容される可能性がありますが、ウォッチフェイス プッシュの検証に合格しません(下記を参照)。
各ウォッチフェイス APK で使用できるファイル/パスは次のとおりです。
/AndroidManifest.xml
/resources.arsc
/res/**
/META-INF/**
また、AndroidManifest.xml
ファイルで使用できるのは次のタグのみです。
<manifest>
<uses-feature>
<uses-sdk>
<application>
<property>
<meta-data>
最後に、パッケージで 33
以上の minSdk
を指定し、<application>
タグで属性 android:hasCode="false"
を指定する必要があります。
検証
Google Play で配布される通常のウォッチフェイスとは異なり、ウォッチフェイスのプッシュでは、各ウォッチフェイスが適切に構成され、パフォーマンスが良好であることを確認するのは Marketplace アプリの責任です。
Google Play では、ウォッチフェイス プッシュを使用する各ウォッチフェイスの品質を確認するために、次の検証チェックを使用します。
- Watch Face Push API を介してインストールまたは更新されるすべてのウォッチフェイスは、Watch Face Push 検証ツールに合格する必要があります。
- API で使用する検証トークンを生成するには、公式の検証ツールのみを使用できます。
- 使用する検証ツールは、検証の実行時に最新の状態である必要があります。
変更されていない APK を再検証する必要はありません。使用した検証ツールのバージョンが後継バージョンに置き換えられても、トークンの有効期限は切れません。
同時に、バリデータは定期的に更新されるため、検証をしばらくに 1 回再実行することをおすすめします。
バリデータを実行する
ウォッチフェイス APK でバリデーターを実行する手順は次のとおりです。
- Google の Maven リポジトリからバリデーターを取得します。
次のようにツールを実行します。
java -jar validator-push-cli-1.0.0-alpha01.jar \ --apk_path=youwatchface.apk \ --package_name=<your marketplace package name>
成功すると、出力に検証トークンが含まれます。このトークンは、ウォッチフェイスの追加または更新時に Watch Face Push API に指定する必要があります。
エラーが発生した場合、出力には、失敗した特定のチェックの詳細が含まれます。
バリデータ CLI ツールを Gradle ビルドに組み込む例については、GitHub のウォッチフェイスのプッシュ サンプルをご覧ください。
APK サイズ
ウォッチフェイス プッシュ ウォッチフェイスでは、APK サイズを最小限に抑える必要があります。ウォッチフェイス APK は Bluetooth 経由でスマートフォン アプリからスマートウォッチ アプリに転送されるため、転送に時間がかかる可能性があります。
APK が大きすぎると、転送にかなりの時間がかかる可能性があります。これは、ユーザー エクスペリエンスの低下とバッテリーの消耗の両方につながります。
pngquant
などの適切なライブラリを使用して、画像ファイルのサイズを最小限に抑えます。- ウォッチフェイス コレクションのビルドプロセスに含める
- 画像のサイズが、使用されるスケールに適していることを確認します。
- 画像が適切に切り抜かれ、周囲の背景がすべて除去されていることを確認します。
- フォント ファイルのサイズを小さくする
- たとえば、特定のフォントを使用して時刻のみを表示する場合は、
HH:MM
形式でpyftsubset
などのツールを使用して、必要なグリフのみがフォント ファイルに含まれるように制限できます。これにより、生成されるフォント ファイルと APK のサイズを大幅に削減できます。他のケースについては、フォント ファイルのサイズを最小限に抑える方法に関するこちらのブログ投稿をご覧ください。
- たとえば、特定のフォントを使用して時刻のみを表示する場合は、
APK サイズを最小限に抑える方法については、メモリ使用量を最適化するガイダンスをご覧ください。
APK 署名
通常の APK と同様に、すべてのウォッチフェイスに署名する必要があります。メインアプリで使用されているキーとは異なるキーを作成し、すべてのウォッチフェイスでそのキーを使用します。
アーキテクチャ
システムの 3 つの主要コンポーネントについて考えてみましょう。
- クラウドベースのストレージ: 正規のマーケットプレイス アプリでは、ウォッチフェイスがビルドされ、クラウドに保存され、ユーザーがすぐに使用できるようになります。ウォッチフェイスは次のとおりです。
- 通常の Watch Face Format APK としてビルド済み
- それぞれに Watch Face Format ベースのウォッチフェイスが 1 つだけ含まれている
- ウォッチフェイスのプッシュ検証プロセスを使用して検証され、関連する検証トークンと共に保存されている。
- 必要に応じてスマートフォンのアプリで取得できます。
- スマートフォン アプリ: スマートフォン アプリは、ユーザーがシステムを操作する主な方法です。具体的には次のことが可能になります。
- ウォッチフェイスのカタログを閲覧、検索する
- スマートウォッチにウォッチフェイスをインストールまたは置き換える
- スマートウォッチ アプリ: スマートウォッチ アプリには通常、重要なユーザー インターフェースがありません。主にスマートフォン アプリとウォッチフェイス プッシュ API 間のブリッジとして機能し、次の機能を備えています。
- Watch Face Push API を使用してウォッチフェイスをインストール、更新、置き換える
- 必要な権限をリクエストしてユーザーにプロンプトを表示する
- デフォルトのウォッチフェイスを提供する
- ウォッチフェイスの最小キャッシュを提供する
- スマートフォンとスマートウォッチ間の通信: スマートフォンとスマートウォッチのアプリ間の通信は、全体的なエクスペリエンスの成功に不可欠です。Wear OS Data Layer API を使用して、次のことができます。
- インストールの検出: スマートフォン アプリは、Capabilities と
CapabilityClient
を使用して、スマートウォッチ アプリがインストールされていないことを検出できます。その逆も同様です。その後、Google Play ストアへのインテントを起動して、不足しているフォーム ファクタをインストールできます。 - 状態管理:
DataClient
またはMessageClient
を使用すると、スマートフォンをスマートウォッチの状態と同期できます。たとえば、スマートフォンに設定されているウォッチフェイスを認識できます。 - APK の送信:
ChannelClient
またはMessageClient
を使用して、APK をスマートフォンからスマートウォッチに送信できます。 - リモート呼び出し:
Messageclient
を使用して、ウォッチフェイスのインストールなど、Watch Face Push API を呼び出すようスマートフォンからスマートウォッチに指示できます。
- インストールの検出: スマートフォン アプリは、Capabilities と
詳しくは、Data Layer API のガイダンスをご覧ください。