Quoi de neuf dans watchOS 3?

introduction

Cette année à la WWDC, Apple a officiellement dévoilé watchOS 3, sa dernière mise à jour du logiciel de base de l'Apple Watch. WatchOS 3 offre de nombreuses API permettant aux développeurs de créer des applications watchOS encore plus fonctionnelles. Un grand nombre de ces API sont disponibles sur iOS depuis plusieurs années et ont maintenant été ajoutées à watchOS, notamment CloudKit, SpriteKit et SceneKit..

Dans ce didacticiel, je vais vous montrer comment utiliser toutes ces nouvelles API dans vos applications watchOS 3. Je vais également vous montrer quelques-uns des ajouts les plus significatifs aux frameworks existants de watchOS..

Conditions préalables

Ce tutoriel nécessite que vous exécutiez Xcode 8 sur macOS 10.11 ou version ultérieure. Cela suppose également que vous maîtrisez les bases de WatchKit et du développement d'applications WatchOS. Si ce n'est pas le cas, je vous recommande de consulter certains des didacticiels suivants qui traitent des bases de WatchKit:

Vous devrez également télécharger le projet de démarrage depuis GitHub..

1. Nouveaux cadres

SpriteKit et SceneKit

Deux des plus importants ajouts à watchOS 3 pour les développeurs sont les frameworks SpriteKit et SceneKit. Ces infrastructures fournissent des graphiques 2D et 3D riches, respectivement dans les applications Apple Watch. Vous pouvez afficher des scènes dans vos applications en utilisant le nouveau WKInterfaceSCNScene et WKInterfaceSKScene objets d'interface, qui sont à la fois des sous-classes de WKInterfaceObject. Similaire à SCNView et SKView sur iOS, ces objets d'interface fournissent des propriétés et des méthodes pour manipuler vos scènes, y compris les fonctionnalités de lecture / pause et d'éclairage par défaut.

Ouvrez le projet de démarrage et ouvrez le Interface.storyboard fichier. Vous verrez que dans ce fichier, j'ai déjà configuré quelques interfaces de base pour vous. Pour cette partie du didacticiel, nous ne nous intéressons qu'au contrôleur d'interface le plus haut doté d'un seul bouton. Aller au Bibliothèque d'objets dans le coin inférieur droit de Xcode et faites glisser un SceneKit Scène objet au-dessus du Jouer pause bouton:

Ensuite, ouvrez le Les attributs Inspecteur et assigner le fichier de scène (Scene.scn) inclus dans le projet à la Scène propriété de cet objet d'interface:

Pour travailler avec cela dans notre code, ouvrez le SceneKitInterfaceController.swift déposer dans le Assistant rédacteur et créer et relier un point de vente appelé sceneItem pour votre objet d'interface:

@IBOutlet var sceneItem: WKInterfaceSCNScene!

Notez que pour que votre contenu SceneKit soit restitué correctement, vous devez doit lier l'objet d'interface dans votre storyboard avec un IBOutlet dans votre code. Au moment de la rédaction de ce didacticiel, il n’est mentionné nulle part dans la documentation d’Apple, mais cette configuration est obligatoire..

Enfin, pour mettre en œuvre la fonctionnalité de lecture / pause de notre bouton, remplacez le didPress (bouton :) méthode avec ce qui suit:

@IBAction func didPress () si laissé en pause = sceneItem.scene? .IsPaused sceneItem? .Scene? .IsPaused =! En pause

Construisez et exécutez votre application et vous verrez un cube rouge tourner à l'écran:

En appuyant sur Jouer pause bouton devrait arrêter et démarrer l'animation de votre scène au besoin.

Alors que nous venons de décrire le contenu de SceneKit dans ce tutoriel, l’ajout de la prise en charge de SpriteKit est très similaire. La seule différence majeure est que les actifs SpriteKit doivent être utilisés avec WKInterfaceSKScene objet plutôt qu'un WKInterfaceSCNScene objet pour SceneKit.

UserNotifications

Un autre ajout avec iOS 10 et watchOS 3 est le cadre UserNotifications. Ce cadre fournit un moyen simple de travailler avec les notifications locales et distantes envoyées et livrées par votre application..

Si vous voulez en savoir plus sur ce cadre, consultez mon tutoriel le couvrant ici:

  • Une introduction au framework UserNotifications

    Dans ce didacticiel, vous découvrirez le nouveau cadre UserNotifications sous iOS 10, tvOS 10 et watchOS 3. Ce nouveau cadre fournit un ensemble moderne de…
    Davis Allie
    iOS

Veuillez noter que toutes les API du framework UserNotifications sur iOS ne sont pas disponibles dans watchOS. Ceux qui sont présents, cependant, fonctionnent de manière identique sur watchOS et iOS.

CloudKit, GameKit, CoreAudio et AVFoundation

WatchOS 3 est un autre ajout important à la disponibilité de frameworks qui étaient auparavant uniquement disponibles sur d'autres plateformes Apple, notamment CloudKit, GameKit, CoreAudio et AVFoundation.. 

WatchOS ne contient pas l'ensemble complet des API de ces infrastructures, mais les classes et méthodes utilisables dans les applications Apple Watch fonctionnent de la même manière que leurs homologues iOS et macOS..

2. Cadres existants

WatchOS 3 apporte de nombreux changements aux frameworks existants, notamment WatchKit et ClockKit.. 

WatchKit

La première nouvelle fonctionnalité du framework WatchKit que nous allons examiner est la nouvelle WKCrownSequencer classe. Cette classe vous permet de récupérer des données détaillées sur la couronne numérique, y compris sa vitesse de rotation actuelle et son état de veille ou non. Bien que ces informations soient accessibles via des propriétés sur WKCrownSequencer objet, le WKCrownDelegate le protocole vous permet de suivre les changements plus facilement. 

Tout WKInterfaceController les sous-classes ont maintenant un CrownSequencer propriété, qui est une instance de la WKCrownSequencer classe. Cela signifie que pour suivre les changements dans la couronne numérique, il vous suffit de spécifier un objet délégué et d'implémenter les méthodes souhaitées..

Dans votre projet, ouvrez votre CrownInterfaceController.swift déposer et faire votre CrownInterfaceController classe conforme à la WKCrownDelegate protocole:

Classe CrownInterfaceController: WKInterfaceController, WKCrownDelegate …

Ensuite, remplacez votre actuel réveillé (avecContext :) méthode avec ce qui suit:

redéfinit func awake (withContext contexte: Any?) super.awake (withContext: context) crownSequencer.delegate = self crownSequencer.focus ()

Dans le code ci-dessus, nous appelons le concentrer méthode sur le CrownSequencer sinon, il ne recevra pas les événements de la couronne numérique. Si un élément de votre interface est mis en évidence par l'utilisateur en le tapant dessus, vous devrez à nouveau appeler cette méthode pour obtenir le résultat. CrownSequencer détecter le mouvement numérique de la couronne.

Enfin, ajoutez les deux méthodes suivantes à votre classe:

func crownDidRotate (_ crownSequencer: WKCrownSequencer ?, rotationalDelta: Double) si laissez speed = crownSequencer? .rotationsPerSecond label.setText ("Crown \ nspeed: \ n \ (vitesse)") func crownDidBecomeIdle (_ crownSequancer) ) label.setText ("Crown \ n est inactif")

Pour que cette interface soit chargée, ouvrez votre Interface.storyboard déposer et faire glisser le Contrôleur initial flèche pour sélectionner l'interface inférieure:

Générez et exécutez votre application et vous verrez que, lorsque la couronne numérique de la montre est déplacée, l'étiquette à l'écran reflète l'état actuel:

Si vous utilisez le simulateur Apple Watch, vous pouvez "tourner" la couronne numérique en faisant simplement défiler l'écran à l'aide de la souris ou du trackpad de votre Mac..

Outre la détection des mouvements de couronne numériques, le framework WatchKit de watchOS 3 fournit également les classes suivantes pour que votre application détecte les gestes sans utiliser les éléments d'interface:

  • WKLongPressGestureRecognizer
  • WKPanGestureRecognizer
  • WKSwipeGestureRecognizer
  • WKTapGestureRecognizer

Comme leur nom l'indique, ces dispositifs de reconnaissance de mouvements fonctionnent de manière très similaire à la manière dont ils fonctionnent sur iOS. Ces classes sont particulièrement utiles pour détecter les contacts si vous utilisez SceneKit, SpriteKit ou une interface personnalisée à base d'images pour afficher du contenu..

ClockKit

watchOS 3 apporte également quelques nouvelles fonctionnalités importantes pour les applications qui tirent parti du cadre ClockKit pour offrir des complications sur le cadran de la montre.. 

Tout d'abord, en raison de la nouvelle fonctionnalité de traitement en arrière-plan des applications dans watchOS 3, si un utilisateur insère une des complications de votre application sur son visage, votre application restera en mémoire et restera dans un état prêt à être lancée. De plus, votre application est assurée de pouvoir mettre à jour son contenu en réponse aux notifications push jusqu'à 50 fois par jour.. 

Si vous souhaitez en savoir plus sur les nouvelles fonctionnalités de l'application d'arrière-plan dans watchOS 3, j'ai déjà abordé ce sujet ici:

  • Nouveautés de watchOS 3: tâches en arrière-plan

    Dans ce didacticiel, vous découvrirez les nouvelles API WatchKit dans watchOS 3, qui permettent à vos applications Apple Watch d'actualiser facilement leur contenu dans la…
    Davis Allie
    watchOS

Ensuite, de nouveaux modèles ont été ajoutés à la famille des complications très volumineuses, notamment CLKComplicationTemplateExtraLargeColumnsText, CLKComplicationTemplateExtraLargeRingImage, CLKComplicationTemplateExtraLargeRingText, et CLKComplicationTemplateExtraLargeSimpleImage.

Enfin, le CLKTextProvider classe fournit maintenant une API pour créer un fournisseur de texte localisable afin d'utiliser un texte différent pour des régions de périphérique spécifiques.

En dehors de ces petits ajouts, ClockKit reste inchangé par rapport à la sortie de watchOS 2 de l'année dernière. Si vous voulez en savoir plus sur ce framework et sur son utilisation, vous pouvez consulter mon tutoriel le couvrant ici:

  • Une introduction à ClockKit

    Dans ce didacticiel, vous allez apprendre les bases du framework ClockKit et comment créer des complications personnalisées pour Apple Watch. Vous apprendrez aussi…
    Davis Allie
    Xcode

PassKit

Alors que PassKit était déjà disponible sous une forme limitée dans watchOS 2, watchOS 3 offre une prise en charge complète des achats Apple Pay intégrés à l'application directement sur la montre. Cela se fait à travers de nouvelles classes et un protocole, y compris:

  • WKInterfacePaymentButton: utilisé pour montrer un pré-conçu Achetez avec Apple Pay bouton.
  • PKPaymentAuthorizationController: utilisé pour afficher un modèle d'interface avec les informations de paiement à confirmer par l'utilisateur. Cette classe remplit le même rôle que le PKPaymentAuthorizationViewController classe mais ne dépend pas de UIKit. Cela signifie que le PKPaymentAuthorizationController la classe peut être utilisée à la fois sur iOS et sur watchOS.
  • PKPaymentAuthorizationControllerDelegate: les classes peuvent être faites pour se conformer à cela. Ce protocole permet à votre application de répondre aux actions de l'utilisateur concernant votre paiement, y compris lorsqu'il sélectionne un mode de paiement ou lorsque le paiement a été autorisé..

Conclusion

Dans l'ensemble, watchOS 3 est une version importante pour les développeurs d'applications Apple Watch. Il est maintenant beaucoup plus facile de créer des jeux et des applications multimédias avec l’ajout de cadres, tels que SceneKit, SpriteKit, GameKit et AVFoundation. L'ajout de CloudKit et les améliorations apportées à WatchKit, ClockKit et PassKit vous permettent de créer des applications plus fonctionnelles que jamais auparavant tout en devenant plus indépendant de l'iPhone..

Comme toujours, assurez-vous de laisser vos commentaires dans la section commentaires ci-dessous. Pour savoir comment créer une application dans WatchOS, consultez le cours watchOS 2 From Scratch ici sur Envato Tuts.+.

  • watchOS 2 à partir de zéro

    Construire un support de surveillance dans votre application est un excellent moyen de se démarquer dans l'App Store surpeuplé. Pour ce faire, vous devrez apprendre à cibler watchOS 2 et…
    Derek Jensen
    watchOS 2