Introducción a watchOS

Nota:

Consulte la Introducción a watchOS 3 para obtener información general sobre las características más recientes.

Acerca de watchOS

Una solución de aplicación watchOS tiene tres proyectos:

  • Extensión Watch un proyecto que contiene el código de la aplicación Watch.
  • Aplicación Watch : contiene el guión gráfico y los recursos de la interfaz de usuario.
  • Aplicación primaria de iOS: esta aplicación es una aplicación normal de iPhone. La aplicación de inspección y la extensión se agrupan en la aplicación de iPhone para su entrega al reloj del usuario.

En las aplicaciones de watchOS 1, el código de la extensión se ejecuta en el iPhone - el Apple Watch es efectivamente una pantalla externa. Las aplicaciones de watchOS 2 y 3 se ejecutan por completo en el Apple Watch. Esta diferencia se muestra en el diagrama siguiente:

La diferencia entre watchOS 1 y watchOS 2 (y versiones posteriores) se muestra en este diagrama

Independientemente de la versión de watchOS de destino, en el Panel de solución de Visual Studio para Mac, una solución completa tendrá un aspecto similar al siguiente:

Panel de solución

La aplicación primaria de una solución watchOS es una aplicación iOS normal. Este es el único proyecto de la solución que es visible en el teléfono. Los casos de uso de esta aplicación incluirían tutoriales, pantallas administrativas y filtrado de nivel intermedio, almacenamiento en caché, etc. Sin embargo, es posible que el usuario instale y ejecute la aplicación o extensión del reloj sin haber abierto nuncala aplicación primaria, por lo que si necesita que la aplicación primaria se ejecute para una única inicialización o administración, deberá programar su aplicación o extensión watch para indicárselo al usuario.

Aunque la aplicación primaria entrega la aplicación watch y la extensión, se ejecutan en distintos espacios aislados.

En watchOS 1 pueden compartir datos a través de un grupo de aplicaciones compartido o a través de la función estática WKInterfaceController.OpenParentApplication, que desencadenará el método UIApplicationDelegate.HandleWatchKitExtensionRequest en la aplicación primaria AppDelegate (consulte trabajar con la aplicación primaria).

En watchOS 2 o posterior, el marco de conectividad de inspección se usa para comunicarse con la aplicación primaria mediante la clase WCSession.

Ciclo de vida de la aplicación

En la extensión watch, se crea una subclase de la clase WKInterfaceController para cada escena de Storyboard.

Estas clases WKInterfaceController son análogas a los objetos UIViewController en la programación de iOS, pero no tienen el mismo nivel de acceso a la vista. Por ejemplo, no puede agregar controles de forma dinámica a la interfaz de usuario ni reestructurarlos. Sin embargo, puede ocultar y revelar controles y, con algunos controles, cambiar su tamaño, transparencia y opciones de apariencia.

El ciclo de vida de un objeto de WKInterfaceController implica las siguientes llamadas:

  • Awake: debe realizar la mayor parte de la inicialización en este método.
  • WillActivate: se llama poco antes de que la aplicación Watch aparezca al usuario. Use este método para realizar la inicialización del último momento, las animaciones de inicio, etc.
  • En este momento, aparece la aplicación Inspección y la extensión comienza a responder a la entrada del usuario y actualiza la presentación de la aplicación watch según la lógica de la aplicación.
  • DidDeactivate Después de que el usuario haya descartado la aplicación watch, se llama a este método. Una vez devuelto este método, los controles de la interfaz de usuario no se pueden modificar hasta la próxima vez que se llame a WillActivate. También se llamará a este método si se interrumpe la conexión con el iPhone.
  • Una vez desactivada la extensión, no es accesible para el programa. Las funciones asincrónicas pendientes no se llamarán. Es posible que las extensiones del Kit de inspección no usen modos de procesamiento en segundo plano. Si el usuario reactiva el programa, pero el sistema operativo no ha terminado la aplicación, el primer método llamado será WillActivate.

Introducción al ciclo de vida de la aplicación

Tipos de interfaz de usuario

Hay tres tipos de interacción que el usuario puede tener con la aplicación de inspección. Todos se programan mediante subclases personalizadas de WKInterfaceController, por lo que la secuencia de ciclo de vida descrita anteriormente se aplica universalmente (las notificaciones se programan con subclases de WKUserNotificationController, que es una subclase de WKInterfaceController):

Interacción normal

La mayor parte de la interacción entre la aplicación/extensión del reloj se realizará con subclases deWKInterfaceController que escriba para que se correspondan con las escenas del Interface.storyboard de la aplicación watch. Esto se trata detalladamente en los artículosInstalación e introducción. La siguiente imagen muestra una parte de Storyboard de muestra. Para cada escena que se muestra aquí, hay un WKInterfaceController personalizado correspondiente (LabelDetailController, ButtonDetailController, SwitchDetailController, etc.) en el proyecto de extensión.

Ejemplos de interacción normal

Notificaciones

Las notificaciones son un caso de uso importante para Apple Watch. Se admiten las notificaciones locales y remotas. La interacción con las notificaciones se produce en dos fases, denominada Short- y Long-Look.

Short Looks se muestran brevemente y muestran el icono de la aplicación de inspección, su nombre y el título (como se especifica con WKInterfaceController.SetTitle).

Long Look combina un área de bandas proporcionada por el sistema y el botón Descartar con el contenido personalizado basado en Storyboard.

WKUserNotificationInterfaceController extiende WKInterfaceController con los métodos DidReceiveLocalNotification y DidReceiveRemoteNotification. Invalide estos métodos para reaccionar a los eventos de notificación.

Para obtener más información sobre el diseño de la interfaz de usuario de notificación, consulte las Directrices para la interfaz humana de Apple Watch

Notificaciones de ejemplo

Tamaños de pantalla

El Apple Watch tiene dos tamaños de cara: 38mm y 42mm, ambos con una relación de pantalla de 5:4 y una pantalla Retina. Sus tamaños utilizables son:

  • 38mm: 136 x 170 píxeles lógicos (272 x 340 píxeles físicos)
  • 42mm: 156 x 195 píxeles lógicos (312 x 390 píxeles físicos).

Use WKInterfaceDevice.ScreenBounds para determinar en qué pantalla se está ejecutando la aplicación watch.

Por lo general, es más fácil desarrollar el diseño de texto y diseño con la pantalla de 38 mm más restringida y, a continuación, escalar verticalmente. Si comienza con el entorno más grande, el escalado vertical puede provocar una superposición fea o truncamiento de texto.

Obtenga más información sobre trabajar con tamaños de pantalla.

Limitaciones de watchOS

Hay algunas limitaciones de watchOS que se deben tener en cuenta al desarrollar aplicaciones watchOS:

  • Los dispositivos Apple Watch tienen almacenamiento limitado: tenga en cuenta el espacio disponible antes de descargar archivos grandes (por ejemplo, archivos de audio o películas).

  • Muchos controles watchOS tienen análogos en UIKit, pero son clases diferentes (WKInterfaceButton en lugar de UIButton, WKInterfaceSwitch para UISwitch, etc.) y tienen un conjunto limitado de métodos en comparación con sus equivalentes UIKit. Además, watchOS tiene algunos controles como WKInterfaceDate (para mostrar una fecha y hora) que UIKit no tiene.

    • No se pueden enrutar las notificaciones solo al Reloj o solo el iPhone (qué tipo de control el usuario ha sobre el enrutamiento no ha sido anunciado por Apple).

Otras limitaciones conocidas o preguntas más frecuentes:

  • Apple no permitirá caras de reloj personalizadas de terceros.

  • Las API que permiten que Watch controle iTunes en el teléfono conectado son privadas.

Lecturas adicionales

Consulte la documentación de Apple: