Wear OS 6 introduit une nouvelle API, Watch Face Push, qui ouvre la voie à des cas d'utilisation plus avancés pour la publication de cadrans.
Identifier quand utiliser le Watch Face Push
Watch Face Push est une API sur Wear OS qui permet au développeur d'ajouter, de modifier ou de supprimer des cadrans directement. Il n'est pas nécessaire pour le développement de cadrans standards.
Les cadrans utilisés avec Watch Face Push doivent être écrits au format Watch Face. Cela peut inclure des cadrans conçus à l'aide de Watch Face Designer, Watch Face Studio ou tout autre outil produisant des cadrans utilisant le Watch Face Format.
Bien que l'API Watch Face Push puisse être utilisée de différentes manières, le tableau suivant vous guide à travers les principaux cas d'utilisation :
Cas d'utilisation | Solution recommandée | Complexité |
---|---|---|
Je souhaite créer des cadrans individuels et les publier. | Utilisez le Watch Face Format, directement ou par le biais d'un outil tel que Watch Face Designer ou Watch Face Studio, et publiez-les sur Google Play. | Faible |
Je souhaite créer une application pour téléphone qui permet aux utilisateurs de sélectionner des cadrans dans une collection sélectionnée, ou de concevoir et de personnaliser des cadrans à installer directement sur leur montre Wear OS. | Créez une application pour la montre et le téléphone à l'aide de l'API Watch Face Push sur la montre. | Élevée |
Objectif
Le cas d'utilisation canonique de l'API Watch Face Push consiste à créer une application Marketplace. À partir de cette application, les utilisateurs peuvent sélectionner des cadrans dans une collection organisée sur leur téléphone et contrôler directement l'installation de ces cadrans sur leur montre connectée.
Points à prendre en compte
Pour en savoir plus sur la création de cadrans, consultez les consignes concernant le Watch Face Format : les cadrans déployés à l'aide de Watch Face Push sont des cadrans Watch Face Format standards.
Lorsque vous créez votre cadran, gardez à l'esprit les points suivants.
Noms des packages
Les cadrans installés à l'aide de Watch Face Push doivent respecter la convention suivante :
<app name>.watchfacepush.<watchface name>
... où <app name>
est le nom du package de l'application qui appelle l'API Watch Face Push.
Par exemple, pour une application dont le nom de package est com.example.mymarketplace
, les noms de package de cadran suivants sont valides :
com.example.mymarketplace.watchfacepush.watchface1
com.example.mymarketplace.watchfacepush.watchface2
com.example.mymarketplace.watchfacepush.another_watchface
L'API rejette les cadrans qui ne respectent pas cette convention.
Contenu de l'emballage
Le système applique strictement le contenu des APK. Il est techniquement possible de produire des APK au format Watch Face qui contiennent des fichiers de métadonnées et d'autres artefacts inoffensifs, qui peuvent être acceptables pour Google Play, mais qui ne passent pas la validation Watch Face Push (voir ci-dessous).
Chaque APK de cadran doit contenir uniquement les fichiers/chemins suivants :
/AndroidManifest.xml
/resources.arsc
/res/**
/META-INF/**
De plus, le fichier AndroidManifest.xml
ne doit contenir que les balises suivantes :
<manifest>
<uses-feature>
<uses-sdk>
<application>
<property>
<meta-data>
Enfin, le package doit spécifier un minSdk
d'au moins 33
, et le tag <application>
doit spécifier l'attribut android:hasCode="false"
.
Validation
Contrairement aux cadrans standards distribués sur Google Play, l'application Marketplace est chargée de vérifier que chaque cadran Watch Face Push est bien formé et performant.
Watch Face Push utilise les contrôles de validation suivants pour vérifier la qualité de chaque cadran :
- Tous les cadrans installés ou mis à jour à l'aide de l'API Watch Face Push doivent passer l'outil de validation Watch Face Push.
- N'utilisez que l'outil de validation officiel pour générer des jetons de validation à utiliser avec l'API.
- L'outil de validation doit être à jour lorsque vous exécutez la validation.
Vous n'avez pas besoin de valider à nouveau un APK qui n'a pas changé. Les jetons n'expirent pas, même lorsque la version de l'outil de validation utilisé est obsolète.
En même temps, nous vous recommandons de relancer la validation de temps en temps, car le validateur est mis à jour régulièrement.
Exécuter le validateur
Le validateur est disponible sous trois formes :
- Un outil CLI
- Bibliothèque à utiliser avec la JVM
- Bibliothèque à utiliser sur Android
Utilisation du validateur de ligne de commande
- Obtenez le validateur à partir du dépôt Maven de Google.
Exécutez l'outil comme suit :
java -jar validator-push-cli-1.0.0-alpha07.jar \ --apk_path=<your watch face>.apk \ --package_name=<your marketplace package name>
Si l'opération réussit, la sortie inclut un jeton de validation que vous devez fournir à l'API Watch Face Push lorsque vous ajoutez ou mettez à jour un cadran.
En cas d'erreur, le résultat inclut des informations sur le contrôle spécifique qui a échoué.
Utilisation du validateur de bibliothèque
Incluez les dépôts Google et Jitpack. Les deux sont nécessaires pour utiliser la bibliothèque de validation.
repositories { ... google() maven { url = uri("https://jitpack.io") content { includeGroup("com.github.xgouchet") } } }
Incluez la dépendance du validateur dans votre projet :
// For use on JVM implementation("com.google.android.wearable.watchface.validator:validator-push:1.0.0-alpha07") // For use on Android implementation("com.google.android.wearable.watchface.validator:validator-push-android:1.0.0-alpha07")
Exécutez le validateur :
val validator = DwfValidatorFactory.create() val result = validator.validate(watchFaceFile, appPackageName) if (result.failures().isEmpty()) { val token = result.validationToken() println("Validation token: $token") // Validation success - continue with the token // ... } else { // There were failures, handle them accordingly - validation has failed. result.failures().forEach { failure -> println("FAILURE: ${failure.name()}: ${failure.failureMessage()}") // ... } }
Pour obtenir un exemple d'utilisation de cette bibliothèque, consultez l'exemple GitHub. Consultez également la bibliothèque Portable Asset Compiler Kit (Pack), qui est utile pour compiler des APK sur l'appareil, à utiliser avec le validateur basé sur Android.
Taille de l'APK
Soyez particulièrement attentif aux clock faces Watch Face Push pour minimiser la taille de l'APK : l'APK de la clock face est susceptible d'être transmis de l'application mobile à l'application de la montre via Bluetooth, ce qui peut être lent.
Un fichier APK trop volumineux peut prendre beaucoup de temps à transmettre, ce qui nuit à l'expérience utilisateur et décharge la batterie.
- Utilisez des bibliothèques appropriées telles que
pngquant
pour réduire au minimum la taille des fichiers image.- Incluez-le dans le processus de compilation de votre collection de cadrans.
- Vérifiez que les dimensions de l'image sont adaptées à l'échelle à laquelle vous l'utilisez.
- Les images sont recadrées de manière appropriée pour supprimer tout arrière-plan.
- Réduire la taille des fichiers de police
- Par exemple, si vous n'utilisez une police particulière que pour afficher l'heure au format
HH:MM
, vous pouvez utiliser un outil tel quepyftsubset
pour limiter le fichier de police aux glyphes nécessaires. Cela peut réduire considérablement la taille du fichier de police et de l'APK résultants. Pour savoir comment réduire la taille des fichiers de police dans d'autres cas, consultez cet article de blog.
- Par exemple, si vous n'utilisez une police particulière que pour afficher l'heure au format
Pour obtenir d'autres suggestions sur la façon de réduire au minimum la taille des APK, consultez les conseils sur l'optimisation de l'utilisation de la mémoire.
Signature d'APK
Comme pour un APK standard, vous devez signer tous vos cadrans. Créez une clé différente de celle que vous utilisez avec votre application principale, et utilisez-la pour tous vos cadrans.
Architecture
Considérez les quatre principaux composants du système :
- Stockage dans le cloud : dans l'application Marketplace canonique, vous créez et stockez vos cadrans dans le cloud, prêts à être utilisés par vos utilisateurs. Les cadrans présentent les propriétés suivantes :
- Ils sont précompilés en tant qu'APK Watch Face Format classiques.
- Chaque APK ne contient qu'un seul cadran basé sur le format de cadran.
- Ils sont validés à l'aide du processus de validation Watch Face Push et stockés avec le jeton de validation associé.
- L'application Téléphone peut les récupérer si nécessaire.
- Application Téléphone : l'application Téléphone est le principal moyen d'interaction de vos utilisateurs avec votre système. Il leur permet de :
- Parcourir et rechercher votre catalogue de cadrans
- Installer ou remplacer un cadran sur la montre
- Application de la montre : l'application de la montre ne dispose généralement pas d'une interface utilisateur importante. Il s'agit principalement d'un pont entre l'application pour téléphone et les API Watch Face Push, avec les fonctionnalités suivantes :
- Utiliser l'API Watch Face Push pour installer/mettre à jour ou remplacer des cadrans
- Demander les autorisations nécessaires et inviter l'utilisateur
- Fournir un cadran par défaut
- Fournir un cache minimal de cadrans
- Communications entre le téléphone et la montre : la communication entre l'application sur le téléphone et celle sur la montre est essentielle au succès de l'expérience globale. Utilisez les API Wear OS Data Layer, qui permettent :
- Détection de l'installation : à l'aide des fonctionnalités et de
CapabilityClient
, l'application pour téléphone peut détecter l'absence de l'application de la montre, et inversement. Vous pouvez ensuite lancer une intention sur le Play Store pour installer le facteur de forme manquant. - Gestion de l'état : en utilisant
DataClient
ouMessageClient
, vous synchronisez le téléphone avec l'état de la montre, par exemple en synchronisant l'état du cadran actif. - Transmission d'APK : à l'aide de
ChannelClient
ouMessageClient
, envoyez des APK du téléphone vers la montre. - Invocation à distance : à l'aide de
Messageclient
, le téléphone peut demander à la montre d'appeler l'API Watch Face Push, par exemple pour installer un cadran.
- Détection de l'installation : à l'aide des fonctionnalités et de
Pour en savoir plus, consultez les conseils concernant l'API Data Layer.