数か月前、Google は、パーソナライズされた Android ボットを生成するアプリとして Androidify を再リリースしました。Androidify は、Gemini と Imagen を使用して、自撮り写真を遊び心のある Android ボットに変換します。
しかし、Android は最近追加された XR を含む複数のフォーム ファクタにまたがっているため、Androidify の楽しさを Wear OS にもたらすにはどうすればよいかと考えました。
Androidify のウォッチフェイス
Androidify ボットは高度にパーソナライズされているため、ウォッチフェイスに表示するのが自然です。最も頻繁に表示される画面であるだけでなく、最もパーソナルな画面でもあり、自分らしさを表現できます。
自撮り写真から生成された、パーソナライズされた Androidify ウォッチフェイス
Androidify に、スマートフォン アプリ内でウォッチフェイスを動的に生成し、スマートウォッチに送信して、自動的にウォッチフェイスとして設定する機能が追加されました。このすべての処理が数秒で実行されるのです。
設計の概要
ウォッチフェイスの作成とインストールのエンドツーエンドのフロー
エンドツーエンドのエクスペリエンスを実現するには、このハイレベル設計図に示すように、さまざまなテクノロジーを組み合わせる必要があります。
まず、ユーザーのアバターが既存の Watch Face Format テンプレートと組み合わされ、APK にパッケージ化されます。このことは、後ほど説明する理由により、検証されています。- スマートウォッチに送信されます。
スマートウォッチがウォッチフェイスを受信すると、Wear OS 6 の一部である新しい Watch Face Push API を使用して、ウォッチフェイスがインストールされ、有効になります。
詳細を見ていきましょう。
ウォッチフェイス テンプレートの作成
ウォッチフェイスは、ウォッチフェイス デザイナーで設計されたテンプレートから作成されます。これは、Figma 内で直接 Watch Face Format のウォッチフェイスを作成できる新しい Figma プラグインです。
Watch Face Designer の Androidify ウォッチフェイス テンプレート
このプラグインを使用すると、Watch Face Format(WFF)リソースなど、さまざまな方法でウォッチフェイスをエクスポートできます。これらは、Androidify アプリ内のアセットとして簡単に組み込むことができ、最終的なウォッチフェイスを動的に構築できます。
パッケージングと検証
テンプレートとアバターが結合されると、Portable Asset Compiler Kit(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 はウォッチフェイスがアクティブなウォッチフェイスでもあることを確認しようとしています。
ウォッチフェイス プッシュでは、アプリがこの機能を実現するために付与する必要がある新しい実行時の権限が導入されています。
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 のスタートガイド
Watch Face Push は、Androidify の強化にも、フル機能のウォッチフェイス マーケットプレイスの構築にも適した、汎用性の高い API です。
既存のスマートフォン アプリがあり、ユーザーのエンゲージメントと満足度をさらに高める機会を探している場合、
あるいは、既存のウォッチフェイス デベロッパーで、マーケットプレイス アプリをリリースして独自のコミュニティとギャラリーを作成したいと考えているかもしれません。
以下のリソースをご覧ください。
- Watch Face Push
- Watch Face Format - ウォッチフェイスの公開に関する今後のポリシー変更もご覧ください。
- Watch Face Designer
- Androidify GitHub リポジトリ
- Androidify の Google Play ストアの掲載情報
また、付属の動画で、Androidify を Wear OS に導入した方法を詳しくご覧ください。
Watch Face Push を使用してどのようなウォッチフェイスが作成されるか、楽しみにしています。
-
サービスに関する最新情報Unity は世界中のモバイルタイトルの半数以上を支えており、第一印象が重要です。ゲーム デベロッパーにとって、スムーズで信頼性の高いプレーヤー オンボーディング エクスペリエンスは、1 日目の維持率と長期的なエンゲージメントを促進するために不可欠です。
Michelle Martin • 所要時間: 1 分 -
サービスに関する最新情報自宅での完全な没入感から、外出先での一目でわかるエクスペリエンスまで、Android XR を基盤に構築することで、空間アプリケーションのあらゆる場面でユーザーにリーチできます。Android Developer Summit で、XREAL AURA のリリースというエキサイティングなマイルストーンを達成しました。
Amy Zeppenfeld, Vinny DaSilva • 所要時間: 3 分 -
サービスに関する最新情報インテリジェンスの時代において、ユーザーはアプリをタップするだけでなく、高度な目標を表現し、Gemini のような AI エージェントが、デバイス上の複数のアプリにまたがることもあるマルチステップのワークフローを完了することを期待しています。
Jingyu Shi • 所要時間: 4 分
Android 開発に関する最新の分析情報を毎週メールでお届けします。