数か月前に、パーソナライズされた Android ボットを生成するアプリとして Androidify を再リリースしました。Androidify は、Gemini と Imagen を使用して、自撮り写真を楽しい Android Bot に変換します。
しかし、Android はさまざまなフォーム ファクタに対応しており、 最近では XR も追加されました。そこで、Androidify の楽しさを Wear OS にも取り入れたいと考えました。
Androidify ウォッチフェイス
Androidify ボットは高度にパーソナライズされているため、ウォッチフェイスで表示するのが自然です。最も頻繁に表示されるだけでなく、最もパーソナルなサーフェスでもあり、自分自身を表現できます。
自撮り画像から生成された、パーソナライズされた Androidify ウォッチフェイス
Androidify では、スマートフォン アプリ内でウォッチフェイスを動的に生成し、スマートウォッチに送信して、ウォッチフェイスとして自動的に設定できるようになりました。これらすべての処理が数秒で実行されます。
設計の概要
ウォッチフェイスの作成とインストールに関するエンドツーエンドのフロー
エンドツーエンドのエクスペリエンスを実現するには、この概要設計図に示すように、複数のテクノロジーを組み合わせる必要があります。
まず、ユーザーのアバターが既存のウォッチフェイス フォーマット テンプレートと組み合わされ、APK にパッケージ化されます。これは検証済みです。理由については後ほど説明します。- をスマートウォッチに送信します。
スマートウォッチで受信されると、Wear OS 6 の一部である新しい Watch Face Push API が使用され、ウォッチフェイスがインストールされて有効になります。
詳細を見ていきましょう。
ウォッチフェイス テンプレートの作成
ウォッチフェイスは、ウォッチフェイス デザイナーで設計されたテンプレートから作成されます。これは、Figma 内で Watch Face Format のウォッチフェイスを直接作成できる新しい Figma プラグインです。
Watch Face Designer の Androidify ウォッチフェイス テンプレート
このプラグインを使用すると、ウォッチフェイスを Watch Face Format(WFF)リソースなど、さまざまな方法でエクスポートできます。これらは、最終的なウォッチフェイスを動的にビルドするために、Androidify アプリ内のアセットとして簡単に組み込むことができます。
パッケージングと検証
テンプレートとアバターが結合されると、ポータブル アセット コンパイラ キット(Pack)を使用して APK が組み立てられます。
Androidify では、Pack はスマートフォンのネイティブ ライブラリとして使用されます。Androidify が Pack ライブラリとどのように連携するかについて詳しくは、GitHub リポジトリをご覧ください。
送信前の最終ステップとして、APK は Watch Face Push バリデータによってチェックされます。
このバリデータは、APK がインストールに適しているかどうかを確認します。これには、APK のコンテンツをチェックして有効なウォッチフェイスであることを確認するほか、パフォーマンス チェックも含まれます。有効な場合、検証ツールはトークンを生成します。
このトークンは、スマートウォッチのインストールに必要です。
ウォッチフェイスを送信する
Wear OS の Androidify アプリは、WearableListenerService を使用してウェアラブル データレイヤのイベントをリッスンします。
スマートフォン アプリは、MessageClient を組み合わせてプロセスを設定し、ChannelClient を使用して APK をストリーミングすることで、文字盤を転送します。
スマートウォッチにウォッチフェイスをインストールする
Wear OS デバイスでウォッチフェイスを受信すると、Androidify アプリは新しい Watch Face Push API を使用してウォッチフェイスをインストールします。
val wfpManager =
WatchFacePushManagerFactory.createWatchFacePushManager(context)
val response = wfpManager.listWatchFaces()
try {
if (response.remainingSlotCount > 0) {
wfpManager.addWatchFace(apkFd, token)
} else {
val slotId = response.installedWatchFaceDetails.first().slotId
wfpManager.updateWatchFace(slotId, apkFd, token)
}
} catch (a: WatchFacePushManager.AddWatchFaceException) {
return WatchFaceInstallError.WATCH_FACE_INSTALL_ERROR
} catch (u: WatchFacePushManager.UpdateWatchFaceException) {
return WatchFaceInstallError.WATCH_FACE_INSTALL_ERROR
}
Androidify は、シナリオに応じて addWatchFace メソッドまたは updateWatchFace メソッドを使用します。Watch Face Push は、「スロット」のコンセプトを定義します。これは、特定のアプリがいつでもインストールできるウォッチフェイスの数です。Wear OS 6 では、この値は実際には 1 です。
Androidify のアプローチは、空きスロットがある場合はウォッチフェイスをインストールし、ない場合は既存のウォッチフェイスを新しいものと入れ替えるというものです。
アクティブなウォッチフェイスを設定する
ウォッチフェイスをプログラムでインストールすることは素晴らしい一歩ですが、Androidify はウォッチフェイスがアクティブなウォッチフェイスでもあることを確認しようとします。
Watch Face Push では、アプリがこの機能を実行するために付与する必要がある新しい実行時の権限が導入されています。
com.google.wear.permission.SET_PUSHED_WATCH_FACE_AS_ACTIVE
この権限を取得すると、wfpManager.setWatchFaceAsActive() メソッドを呼び出して、インストール済みのウォッチフェイスをアクティブなウォッチフェイスとして設定できます。
ただし、Androidify には考慮すべき点がいくつかあります。
setWatchFaceAsActiveは 1 回しか使用できません。SET_PUSHED_WATCH_FACE_AS_ACTIVEは、ユーザーが拒否した後に再度リクエストすることはできません。- Androidify がアクティブなウォッチフェイスをすでに制御している可能性があります。
詳しくは、Androidify がどのようにアクティブなロジックを設定しているかをご覧ください。
Wear OS 向け Watch Face Push のスタートガイド
ウォッチフェイス プッシュは、Androidify の強化にも、フル機能のウォッチフェイス マーケットプレイスの構築にも適した汎用性の高い API です。
既存のスマートフォン アプリがあり、ユーザーのエンゲージメントを高め、満足度を高める機会を探している場合。
あるいは、既存のウォッチフェイス デベロッパーが、マーケットプレイス アプリをリリースして独自のコミュニティとギャラリーを作成しようとしている場合もあるでしょう。
以下のリソースをご覧ください。
- Watch Face Push
- Watch Face Format - ウォッチフェイスの公開に関する今後のポリシー変更もご覧ください。
- ウォッチフェイス デザイナー
- Androidify の GitHub リポジトリ
- Androidify の Google Play ストアの掲載情報
また、こちらの動画では、Androidify を Wear OS に導入した経緯について詳しくご紹介しています。
Watch Face Push で作成されるウォッチフェイスを楽しみにしています。
続きを読む
-
プロダクト ニュース
本日、The Android Show で発表されたように、Android はオペレーティング システムからインテリジェンス システムへと移行し、アプリのエンゲージメントを高める機会を増やしています。
Matthew McCullough • 所要時間: 4 分
-
プロダクト ニュース
モバイル エコシステムは常に進化しており、新たな機会と新たな脅威の両方をもたらしています。これらの変更を通じて、Android と Google Play は、数十億のユーザーが安心してアプリを利用し続け、デベロッパーのイノベーションが発展し続けられるよう、引き続き取り組んでまいります。
Vijaya Kaza • 所要時間: 3 分
-
プロダクト ニュース
Jetpack Compose の 2026 年 4 月のリリースは安定版です。このリリースには、コア Compose モジュール バージョン 1.11(BOM マッピングの全体を参照)、共有要素のデバッグツール、トラックパッド イベントなどが含まれています。
Meghan Mehta • 所要時間: 5 分
最新情報の入手
Android 開発に関する最新の分析情報を毎週メールでお届けします。