Premiers pas avec HealthKit: Partie 2

Dans la première partie de ce tutoriel, je vous ai présenté le framework HealthKit. Sur la base de ma propre expérience d’intégration de HealthKit dans l’une de mes applications, j’ai souligné quelques points qu’il est important de garder à l’esprit. Nous avons également commencé à travailler sur notre exemple d’application, Santé, qui expliquera les concepts de base du travail avec HealthKit.

Dans la première partie, nous avons implémenté le GSHealthKitManager class, que nous utiliserons pour interagir avec HealthKit. Utilisons maintenant le GSHealthKitManager class pour implémenter la fonctionnalité du premier contrôleur de vue de l’exemple d’application.

1. Implémentation du contrôleur First View

dans le Navigateur de projet, ouvert FirstViewController.m et remplacez son contenu par ce qui suit:

Si vous avez une certaine expérience du développement iOS, la mise en œuvre ne devrait pas être difficile à comprendre. Dans le premier contrôleur de vue, nous répondons à l’utilisateur en basculant le commutateur et en appuyant sur l’un des boutons. Chacune de ces interactions déclenche une méthode de GSHealthKitManager classe.

Il y a une raison pour laquelle j’ai choisi d’utiliser un commutateur pour demander à l’utilisateur la permission d’accéder à ses données HealthKit. Une fois que vous aurez compris l’implémentation, vous comprendrez que c’est une bien meilleure solution.

Il est facile pour l’utilisateur de comprendre que, lorsque l’interrupteur est activé, l’application s’intègre à HealthKit. Quand il est éteint, ce n’est pas le cas. En plus de cela, activer ce commutateur pour la première fois invitera l’utilisateur à accorder l’accès aux types de données de santé que l’application utilisera. Ceci, encore une fois, est une bonne expérience utilisateur, car l’utilisateur comprend pourquoi elle est invitée et quels avantages elle obtient en autorisant l’accès.

2. Connexion de l’interface utilisateur

dans le Navigateur de projet, ouvert Main.storyboard. Dans la première scène, sélectionnez le commutateur. dans le Utilitaires volet sur la droite, ouvrez le Inspecteur des connexions et, dans le Événements envoyés section, faire glisser de Valeur modifiée à la Première Voir le contrôleur dans le Plan du document. Dans le menu contextuel qui répertorie les actions du contrôleur de vue, sélectionnez healthIntegrationButtonSwitched:. Cela garantit le healthIntegrationButtonSwitched: est appelée chaque fois que le commutateur est basculé.

Interface utilisateur - connexion des prises 1

Les étapes pour connecter le Lis et Écrire les boutons sont presque identiques. Clique le Lis bouton, mais cette fois, faites glisser depuis le Retouche à l’intérieur événement au contrôleur First View. Sélectionnez le readAgeButtonPressed: action dans le menu contextuel.

Clique le Écrire et faites glisser depuis le Retouche à l’intérieur au contrôleur First View, sélectionnez le writeWeightButtonPressed: méthode dans le menu contextuel.

Nous devons maintenant connecter les prises que nous avons déclarées aux éléments de l’interface utilisateur. presse Contrôle et faites glisser de Première Voir le contrôleur à l’étiquette avec les deux points d’interrogation. Depuis le menu contextuel intitulé Prises électriques, cliquer sur ageLabel. Cela connectera la prise à l’étiquette.

Interface utilisateur - connexion des prises 2

Répétez ces étapes pour le champ de texte, en le connectant au weightTextField sortie du contrôleur de vue.

En relation :  4 Fonctions Google Now on Tap que vous ne connaissiez pas
Interface utilisateur - connexion des prises 3

3. Construire et exécuter

La première scène devrait maintenant être pleinement fonctionnelle. Lancez l’application et activez l’interrupteur. Vous devriez être invité avec l’interface utilisateur des autorisations HealthKit suivante:

Interface utilisateur d'accès à la santé

Assurez-vous d’activer les deux interrupteurs avant d’appuyer sur Terminé, sinon votre application n’aura pas accès aux données dont nous avons besoin dans l’exemple d’application.

Vous pouvez maintenant essayer d’appuyer sur Lis bouton. Si vous exécutez l’application dans le simulateur iOS, il ne se passera probablement rien, car vous n’avez pas défini de date de naissance. Vous pouvez vous diriger vers l’application Santé dans le simulateur iOS et la configurer.

  • Ouvrez l’application Santé.
  • Sélectionner Données de santé languette.
  • Robinet Moi.
  • Robinet Éditer.
  • Robinet Date de naissance et fixez une date. Robinet Terminé.

Vous pouvez maintenant revenir à notre application HealthBasics et appuyer sur le Lis bouton à nouveau. Cette fois, votre âge devrait être affiché.

Vous pouvez également tester le partage de poids. Sélectionnez le champ de texte du poids et entrez une valeur en kilogrammes. Après avoir touché Écrire, revenez à l’application Santé et, dans le Données de santé onglet, sélectionnez Mesures du corps et Poids. L’échantillon que vous venez d’ajouter doit être visible.

Échantillon de poids HealthKit

Jusqu’à présent, vous avez appris les bases de l’utilisation de HealthKit.

  • comment demander l’autorisation à l’utilisateur
  • comment lire et écrire des données de base
  • comment encapsuler le code lié à HealthKit dans une classe séparée

4. Ajouter un entraînement

Dans la deuxième partie de notre exemple d’application, je vais vous montrer comment écrire un entraînement dans HealthKit. Ceci est utile si vous créez une application d’entraînement (course à pied, vélo, marche, etc.). La plupart des éléments de base sont similaires.

Étape 1: extension du GSHealthKitManager Classe

Nous commençons par étendre la GSHealthKitManager classe. Ajoutez la déclaration de méthode suivante à GSHealthKitManager.h:

Ajouter un nouveau type de partage au requestAuthorizationToShareTypes:readTypes:completion: méthode en ajoutant le type d’entraînement au writeTypes tableau.

Enfin, ajoutez le writeWorkoutDataFromModelObject: méthode au bas de la GSHealthKitManager classe.

Dans ma propre application, Routie, J’ai utilisé l’approche consistant à transmettre un objet modèle au writeWorkoutDataFromModelObject: méthode, déléguant le gros du travail à la classe manager. Ce dernier extrait les données requises de l’objet modèle et transmet les informations au HKHealthStore exemple. Je pense que c’est une bonne approche pour garder le code lié à HealthKit confiné dans la classe manager.

La mise en œuvre du writeWorkoutDataFromModelObject: La méthode est assez simple. Il n’y a que trois étapes:

  1. Nous préparons d’abord les données. Dans cet exemple, nous inventons les chiffres.
  2. Nous créons ensuite un HKWorkout objet en invoquant l’un des initialiseurs pratiques de la classe.
  3. Enfin, nous sauvegardons le HKWorkout objecter à la HKHealthStore exemple.

C’est la première fois que nous travaillons avec la classe HKWorkout, alors laissez-moi vous présenter brièvement cette classe. Le framework HealthKit utilise le HKWorkout classe pour suivre les activités. Les entraînements sont pour la plupart immuables, vous devez donc fournir les valeurs de l’entraînement lors de l’initialisation.

En relation :  Comment repérer et supprimer les logiciels malveillants Agent Smith sur Android

Lors de l’initialisation d’un entraînement, vous devez fournir un type d’activité, une date de début et une date de fin. Vous pouvez éventuellement passer en distance totale, en énergie totale brûlée et en métadonnées. Les métadonnées peuvent être utilisées pour attribuer des informations supplémentaires à l’entraînement. Ceci est vraiment utile lorsque vous souhaitez partager plus d’informations sur un entraînement avec une autre application que vous avez également créée.

Étape 2: mise en œuvre du writeWorkoutButtonPressed: action

Ouvert SecondViewController.m et ajoutez l’importation suivante en haut du fichier:

Ensuite, implémentez le writeWorkoutButtonPressed: méthode comme indiqué ci-dessous.

Étape 3: Création de l’interface utilisateur de l’entraînement

Nous ajouterons simplement un seul bouton à la deuxième scène de l’application pour écrire l’entraînement. Ouvert Main.storyboard et concentrez-vous sur la deuxième scène. Supprimez les étiquettes qui se trouvent actuellement dans le contrôleur Second View.

Ajoutez un bouton au centre de la vue du contrôleur de vue et définissez son titre sur Écrire un entraînement. Connectez son Retouche à l’intérieur événement à la writeWorkoutButtonPressed: action que nous avons mise en œuvre à l’étape précédente.

5. Essai

Générez et exécutez l’application, puis définissez le commutateur d’intégration d’intégrité sur activé. le Accès à la santé s’affiche avec le nouveau type d’entraînement demandé désactivé. Allumez-le et appuyez sur Terminé. Ceci est uniquement nécessaire, car nous avons ajouté le type de partage d’entraînement à la liste des types de partage. Cela signifie que nous devons demander l’autorisation à l’utilisateur avant de l’utiliser.

Interface utilisateur HealthKit Health Access

Ouvrez le deuxième onglet en bas et appuyez sur Écrire un entraînement. Si tout s’est bien passé, vous devriez voir le message suivant dans la console de Xcode:

Vous pouvez maintenant passer à l’application Santé et accéder à Données de santé > Aptitude > Entraînements. Là, vous devriez voir l’entraînement qui vient d’être ajouté.

HealthKit - Exemple d'entraînement

Conclusion

Dans ce didacticiel, je vous ai montré comment rédiger un entraînement dans HealthKit. Je vous ai également montré comment séparer le code lié à HealthKit en passant un objet modèle à la méthode qui écrit l’entraînement dans HealthKit.

J’espère que vous avez apprécié ce didacticiel et que vous avez appris toutes les bases dont vous avez besoin pour y aller et intégrer votre propre application avec HealthKit. J’espère également vous avoir convaincu d’essayer HealthKit.

Faites-moi savoir dans les commentaires comment vous avez aimé ce tutoriel ou si quelque chose n’était pas clair. Vous pouvez également me trouver sur Twitter.

Liens

La liste ci-dessous comprend un certain nombre de liens pertinents afin que vous puissiez rapidement accéder à ce dont vous avez besoin:

Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.