Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Apple Watch
Code

¿Qué Hay de Nuevo en watchOS 3?

by
Difficulty:IntermediateLength:MediumLanguages:

Spanish (Español) translation by Javier Salesi (you can also view the original English article)

Introducción

Éste año en la WWDC, Apple oficialmente presentó el watchOS 3, su más reciente actualización del software principal del Apple Watch. Mientras que solo se mostraron pocas características "destacadas" para el usuario, watchOS 3 abre muchas APIs para que los desarrolladodres creen aplicaciones watchOS todavía más funcionales. Muchas de éstas APIs han esto disponibles en iOS durante años y ahora se agregaron a watchOS, incluyendo CloudKit, SpriteKit y SceneKit.

En éste tutorial, te mostraré cómo puedes usar todas éstas nuevas APIs en tus aplicaciones watchOS 3. También te mostraré algunas de las mas significativas adiciones a los existentes frameworks watchOS.

Requisitos Previos

Éste tutorial requiere que estés ejecutando Xcode 8 en macOS 10.11 o superior. También asume que conozcas las bases de Watchkit y del desarrollo de aplicaciones watchOS. En caso contrario, entonces te recomiendo que consultes algunos de los siguientes tutoriales que cubren las bases de WatchKit:

También necesitarás descargar el proyecto de inicio desde Github.

1. Nuevos Frameworks

SpriteKit y SceneKit

Dos de las más grandes adiciones a watchOS 3 para los desarrolladores son los frameworks SpriteKit y SceneKit. Éstos frameworks proporcionan extraordinarios gráficos 2D y 3D respectivamente en aplicaciones de Apple Watch. Puedes mostrar escenas en tus aplicaciones al usar los nuevos objetos de interfaz WKInterfaceSCNScene y WKInterfaceSKScene, que son ambos subclases de WKInterfaceObject. Similarmente a SCNView y SKView en iOS, éstos objetos de interfaz proporcionan propiedades y métodos para manipular tus escenas, incluyendo la funcionalidad reproducir/pausa así cómo la iluminación predeterminada.

Abre el proyecto de inicio y abre el archivo Interface.storyboard. Verás que en éste archivo, ya he configurado interfaces básicas por tí. Para ésta parte del tutorial, sólo estamos interesados en el controlador de interfaz superior con un sólo botón. Ve a Object library en la esquina inferior derecha de Xcode y arrastra un objeto SceneKit Scene arriba del botón Play / Pause:

SceneKit Scene Interface Item

Luego, abre el Attributes Inspector y asigna el archivo de la escena (Scene.scn) incluído en el proyecto a la propiedad Scene de éste objeto de interfaz:

Scene Property

Para trabajar con éste en nuestro código, abre el archivo SceneKitInterfaceController.swift en el Assistant editor y crea un vínculo y outlet llamado sceneItem para tu objeto de interfaz.

Por favor nota que para que el contenido de tu SceneKit se renderice correctamente, debes vincular el objeto de interfaz en tu storyboard con un IBOutlet en tu código. Al momento de escribir éste tutorial, no se menciona en ningún lado en la documentación de Apple, pero ésta configuración es requerida.

Por último, para implementar la funcionalidad play/pause de nuestro botón, remplaza el método existente didPress(button:) con lo siguiente:

Compila y ejecuta tu aplicación y verás un cubo rojo girando en la pantalla:

Spinning Cube

Presionando el botón Play/Pause debería detener y comenzar la animación de tu escena como se necesite.

Mientras que sólo cubrimos el mostrar contenido de SceneKit en éste tutorial, agregar soporte para SpriteKit es muy similar. La principal diferencia es que los recursos de SpriteKit deben ser utilizados con un objeto WKInterfaceSKScene más bien que con un objeto WKInterfaceSCNScene para SceneKit.

UserNotifications

Otra adición con iOS 10 y watchOS 3 es el framework UserNotificacions. Éste framework proporciona una forma simple de trabajar tanto con notificaciones locales como remotas siendo enviadas por tu aplicación.

Si quieres aprender más sobre éste framework, consulta mi tutorial que lo cubre aquí:

Por favor nota que no todas las APIs en el framework UserNotifications en iOS están disponibles en watchOS. Sin embargo, las que están presentes, funcionan idénticamente en watchOS e iOS.

CloudKit, GameKit, CoreAudio, y AVFoundation

Otra importante adición en watchOS 3 es la disponibilidad de frameworks que estaban previamente sólo en otras plataformas de Apple, incluyendo CloudKit, GameKit, CoreAudio y AVFoundation.

Mientras que el conjunto completo de APIs de éstos frameworks no están disponibles en watchOS, las clases y méetodos que pueden usarse en aplicaciones AppleWatch funcionan idénticamente en sus contrapartes de iOS y MacOS.

2. Frameworks Existentes

Además de añadir muchos nuevos frameworks, watchOS 3 también trae muchos cambios en los frameworks existentes-incluyendo WatchKit y ClockKit.

WatchKit

La primera nueva característica en el framework WatchKit que vamos a ver es la nueva clase WKCrownSequencer. Ésta clase te permite recabar datos detallados de la corona digital, incluyendo su actual velocidad de rotación y si está o no detenida. Mientras que ésta información es accesible mediante las propiedades en un objeto WKCrownSequencer, el protocolo WKCrownDelegate te permite rastrear los cambios más fácilmente.

Todas las subclases WKInterfaceController ahora tienen una propiedad crownSequencer, que es una instancia de la clase WKCrownSequencer. Ésto significa que para rastrear los cambios en la corona digital, sólo tienes que especificar un objeto delegado e implementar los métodos que quieres.

En tu proyecto, abre el archivo CrownInterfaceController.swift y haz tu clase CrownInterfaceController conforme al protocolo WKCrownDelegate:

A continuación, remplaza tu método actual awake(withContext:) con lo siguiente:

En el código de arriba, llamamos al método focus en el crownSequencer porque de otra manera no recibirá los eventos de la corona digital. Si un elemento en tu interfaz es enfocado debido a que el usuario lo presionó, entonces necesitarás llamar a éste método de nuevo para que el crownSequencer detecte el movimiento de la corona digital.

Por último, agrega los siguientes dos métodos a tu clase:

Para que se cargue ésta interfaz, abre tu archivo Interface.storyboard y arrastra la flecha Initial Controller para seleccionar la interfaz de abajo:

Crown Interface Controller Entry Point

Compila y ejecuta tu aplicación y verás que, cuando se mueve la corona digital del reloj, el label en pantalla refleja el estatus o estado actual:

Digital Crown Status

Si estás utilizando el simulador del Apple Watch, entonces puedes "girar" la corona digital al solo desplazar el mouse o trackpad de tu Mac.

Además de detectar los movimientos de la corona digital, el framework WatchKit en watchOS 3, también ofrece las siguientes clases para que tu aplicación detecte gestos sin usar elementos de interfaz:

  • WKLongPressGestureRecognizer
  • WKPanGestureRecognizer
  • WKSwipeGestureRecognizer
  • WKTapGestureRecognizer

Como sus nombres sugieren, éstos reconocedores de gestos funcionan similarmente a cómo funcionan los reconocedores de gestos en iOS. Éstas clases son particularmente útiles para detectar toques si estás usando SceneKit, SpriteKit o una interfaz personalizada basada en una imagen para mostrar contenido.

ClockKit

watchOS 3 también trae algunas importantes nuevas características para que las aplicaciones aprovechen el framework ClockKit con el fin de proporcionar complicaciones (funciones especiales) en la carátula del reloj.

Primero, por la nueva funcionalidad de procesamiento en segundo plano para aplicaciones en watchOS 3, si un usuario pone una de las complicaciones de tu aplicación en la carátula de su reloj, entonces tu aplicación permanecerá en la memoria y seguirá en estado ready-to-launch (listo para lanzar). Adicionalmente, se garantiza que tu aplicación pueda actualizar su contenido en respuesta a notificaciones push hasta 50 veces por día.

Si quieres aprender más sobre la nueva funcionalidad de la aplicación en segundo plano en watchOS 3, ya he cubierto éste tópico aquí:

Después, algunas nuevas plantillas han sido agregadas a la familia de complicaciones extra-large, incluyendo CLKComplicationTemplateExtraLargeColumnsText, CLKComplicationTemplateExtraLargeRingImage, CLKComplicationTemplateExtraLargeRingText, y CLKComplicationTemplateExtraLargeSimpleImage.

Finalmente, la clase CLKTextProvider ahora proporciona una API para crear un proveedor de texto localizado con el fin de usar texto específico según la región en que se ubique el dispositivo.

Aparte de éstas pequeñas adiciones, ClockKit permanece sin cambios desde el lanzamiento del watchOS 2 el año pasado. Si quieres aprender más sobre éste framework y cómo usarlo tu mismo, puedes consultar mi tutorial que lo cubre aquí:

PassKit

Mientras que PassKit ya estaba disponible de forma limitada en watchOS 2, watchOS 3 trae soporte total para compras mediante Apple Pay desde el reloj. Ésto se hace a través de nuevas clases y un protocolo, incluyendo:

  • WKInterfacePaymentButton : usado para mostrar un botón Buy with Apple Pay prediseñado.
  • PKPaymentAuthorizationController : usado para mostrar una interfaz modelo con información de pago a confirmar por el usuario. Ésta clase realiza el mismo papel que la clase PKPaymentAuthorizationViewController pero no depende de UIKit. Ésto significa que la clase PKPaymentAuthorizationController puede usarse tanto en iOS como en watchOS.
  • PKPaymentAuthorizationControllerDelegate : clases pueden hacerse conforme a éste. Éste protocolo permite que tu aplicación responda a las acciones del usuario concernientes a tu pago, incluyendo cuando seleccionan un método de pago o cuando el pago ha sido autorizado.

Conclusión

En general, watchOS 3 es un lanzamiento significativo para desarrolladores de aplicaciones de Apple Watch. Juegos y aplicaciones ricas en contenido audiovisual son ahora más fáciles de crear con la adición de frameworks, incluídos SceneKit, SpriteKit, GameKit y AVFoundation. La adición de CloudKit y las mejoras en WatchKit, ClockKit y PassKit te permiten crear aplicaciones más funcionales que antes mientras tienden a ser más independientes del iPhone.

Como siempre, por favor asegúrate de dejar tus comentarios y sugerencias en la sección de abajo. Para profundizar sobre la creación de una aplicación en WatchOS, consulta el curso watchOS 2 Desde Cero aquí en Envato Tuts+.

  • watchOS 2 Desde Cero

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.