Novedades de productos

Androidify llega a Wear OS con Watch Face Push

Lectura de 3 min
Garan Jenkin
Ingeniera de Relaciones con Desarrolladores

 

 

Hace unos meses, relanzamos Androidify como una app para generar bots de Android personalizados. Androidify transforma tu foto selfie en un divertido bot de Android con Gemini e Imagen.

Sin embargo, dado que Android abarca varios factores de forma, incluida nuestra incorporación más reciente, XR, pensamos: ¿cómo podríamos llevar la diversión de Androidify a Wear OS?

Una cara de reloj de Androidify

Como los bots de Androidify son altamente personalizados, el lugar natural para mostrarlos es la cara de reloj. No solo es la superficie más visible con frecuencia, sino también la más personal, lo que te permite representar quién eres.

demonstration.gif

Cara de reloj de Androidify personalizada, generada a partir de una imagen selfie

Androidify ahora tiene la capacidad de generar una cara de reloj de forma dinámica dentro de la app para teléfonos y, luego, enviarla a tu reloj, donde se establecerá automáticamente como tu cara de reloj. Todo esto sucede en segundos.

Diseño de alto nivel

image.png

Flujo de extremo a extremo para la creación y la instalación de caras de reloj

Para lograr la experiencia de extremo a extremo, se deben combinar varias tecnologías, como se muestra en este diagrama de diseño de alto nivel.

En primer lugar, el avatar del usuario se combina con una plantilla preexistente del Formato de Caras de Relojes, que luego se empaqueta en un APK. Esto se valida (por motivos que se explicarán) y se envía al reloj.

Cuando el reloj lo recibe, se usa la nueva API de Watch Face Push, que forma parte de Wear OS 6, para instalar y activar la cara de reloj.

Exploremos los detalles:

Crea las plantillas de caras de reloj

La cara de reloj se crea a partir de una plantilla, que se diseñó en Watch Face Designer.Este es nuestro nuevo complemento de Figma que te permite crear caras de reloj con el Formato de Caras de Relojes directamente en Figma.

image.png

Una plantilla de cara de reloj de Androidify en Watch Face Designer

El complemento permite exportar la cara de reloj de varias maneras diferentes, incluso como recursos del Formato de Caras de Relojes (WFF). Luego, se pueden incorporar fácilmente como recursos dentro de la app de Androidify para compilar de forma dinámica la cara de reloj finalizada.

Empaquetado y validación

Una vez que se combinan la plantilla y el avatar, se usa el Kit de compilador de recursos portátiles (Pack) para ensamblar un APK.

En Androidify, Pack se usa como una biblioteca nativa en el teléfono.Para obtener más detalles sobre cómo Androidify interactúa con la biblioteca de Pack, consulta el repositorio de GitHub.

Como paso final antes de la transmisión, el validador de Watch Face Push verifica el APK.

Este validador comprueba que el APK sea adecuado para la instalación. Esto incluye verificar el contenido del APK para garantizar que sea una cara de reloj válida, así como algunas verificaciones de rendimiento. Si es válido, el validador produce un token.

El reloj requiere este token para la instalación.

Envía la cara de reloj

La app de Androidify en Wear OS usa WearableListenerService para escuchar eventos en Wearable Data Layer.

La app para teléfonos transfiere la cara de reloj usando una combinación de MessageClient para configurar el proceso y, luego, ChannelClient para transmitir el APK.

Instala la cara de reloj en el reloj

Una vez que se recibe la cara de reloj en el dispositivo Wear OS, la app de Androidify usa la nueva API de Watch Face Push para instalar la cara de reloj:

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 usa el método addWatchFace o updateWatchFace, según la situación: Watch Face Push define un concepto de "ranuras", es decir, cuántas caras de reloj puede tener instalada una app determinada en cualquier momento. Para Wear OS 6, este valor es 1.

El enfoque de Androidify es instalar la cara de reloj si hay una ranura libre y, si no, se intercambia cualquier cara de reloj existente por la nueva.

Establece la cara de reloj activa

Instalar la cara de reloj de forma programática es un gran paso, pero Androidify busca garantizar que la cara de reloj también sea la cara de reloj activa. 

Watch Face Push presenta un nuevo permiso de tiempo de ejecución que se debe otorgar para que las apps puedan lograr esto:

com.google.wear.permission.SET_PUSHED_WATCH_FACE_AS_ACTIVE

Una vez que se adquiere este permiso, se puede llamar al método wfpManager.setWatchFaceAsActive() para establecer una cara de reloj instalada como la cara de reloj activa.

Sin embargo, Androidify debe tener en cuenta varias consideraciones:

  • setWatchFaceAsActive solo se puede usar una vez.
  • No se puede volver a solicitar SET_PUSHED_WATCH_FACE_AS_ACTIVE después de que el usuario la rechace.
  • Es posible que Androidify ya tenga el control de la cara de reloj activa.

Para obtener más detalles, consulta cómo Androidify implementa la lógica de configuración activa.

Comienza a usar Watch Face Push para Wear OS

Watch Face Push es una API versátil, adecuada para mejorar Androidify y para crear mercados de caras de reloj con todas las funciones.

¿Quizás tienes una app para teléfonos existente y buscas oportunidades para atraer y deleitar aún más a tus usuarios?

¿O quizás eres un desarrollador de caras de reloj existente que busca crear tu propia comunidad y galería lanzando una app de mercado?

Consulta estos recursos:

Además, mira el video complementario para obtener una visión más detallada de cómo llevamos Androidify a Wear OS.

¡Esperamos ver lo que crearás con Watch Face Push!

Escrito por:

Seguir leyendo