Premiers pas avec HealthKit: Partie 1

Le cadre HealthKit a été présenté l’année dernière à la WWDC 2014 comme un endroit unique où les applications peuvent stocker, partager et lire des données liées à la santé. La nouvelle application Health, qui est la vue de l’utilisateur sur ces données, était l’une des fonctionnalités phares d’iOS 8.

L’un des principaux avantages de HealthKit est que les applications liées au fitness et à la santé peuvent partager sans effort des données entre elles. Au cours de l’année écoulée, de nombreux développeurs ont adopté HealthKit dans leurs applications et les utilisateurs avertis en technologie s’attendent à ce que toute application de fitness s’intègre à HealthKit.

Il existe de nombreux avantages, pièges et meilleures pratiques lorsque vous travaillez avec ce nouveau cadre passionnant. Récemment, j’ai eu une expérience de première main avec le framework HealthKit lorsque j’ajoute la prise en charge de HealthKit à l’une de mes applications, Routie. Si vous envisagez d’utiliser HealthKit dans votre propre application, ce tutoriel est fait pour vous.

Pourquoi devrais-je me soucier de HealthKit?

J’ai déjà mentionné certains des avantages de HealthKit, mais si vous n’êtes pas encore vendu, laissez-moi simplement dire que ce n’est vraiment pas si difficile d’intégrer HealthKit. J’irais même plus loin et dire que c’est plus facile que la plupart des autres nouveaux frameworks introduits par Apple. Évidemment, cela dépend fortement de ce que vous voulez réaliser avec. Mais en général, je dirais que le rapport entre l’effort nécessaire pour intégrer HealthKit et les bénéfices qu’il apporte à vos utilisateurs est très favorable.

Outre l’intégration simple dans les applications existantes, il offre également la possibilité de créer une toute nouvelle catégorie d’applications. Par exemple, vous pouvez extraire diverses données de HealthKit, telles que les entraînements de l’utilisateur ou la tension artérielle, et les afficher de manière intéressante, en laissant le travail acharné de la collecte de ces données vers d’autres applications.

Qu’allez-vous apprendre?

Mon objectif avec ce didacticiel est de vous apprendre les bases en créant un exemple d’application. En outre, je vais vous donner un certain nombre de conseils et astuces utiles sur la façon dont vous pourriez ou devriez intégrer HealthKit dans vos propres applications. Après avoir lu cet article, vous devriez avoir une compréhension de base de HealthKit, prêt à l’utiliser dans vos applications.

Ce que vous devriez savoir

La liste suivante comprend un certain nombre de faits de base sur HealthKit dont vous devez être conscient:

  • Le framework HealthKit est disponible depuis iOS 8. Notez qu’il n’est disponible que sur iPhone, pas iPad.
  • Apple prend au sérieux la confidentialité et c’est pourquoi vous devez explicitement demander l’accès en lecture et / ou en écriture à HealthKit pour chaque type de données auquel vous devez accéder. L’utilisateur a la possibilité d’autoriser l’accès à certains types et de le refuser pour d’autres.
  • Le framework HealthKit fait un usage intensif de la sous-classification.
  • Il existe deux principaux types de données, caractéristiques et échantillons. Les caractéristiques, telles que la date de naissance ou le groupe sanguin de l’utilisateur, ne changent généralement pas. L’échantillon représente des données à un moment donné.
  • Échantillons de quantité sont les types de données les plus courants. Ils comprennent la taille et le poids de l’utilisateur, les mesures prises, la température de l’utilisateur, la fréquence du pouls, etc.
  • Entraînements, qui appartiennent à la catégorie des échantillons, sont destinés spécifiquement à représenter des courses, des promenades, des promenades, etc.

Pour plus d’informations sur le framework HealthKit, visitez le site Apple Référence du cadre HealthKit.

Avant de commencer

Je sais que vous êtes probablement impatient de commencer avec l’exemple de projet maintenant, mais il y a quelques choses importantes dont vous devez être conscient avant de vous lancer.

  • Le magasin HealthKit est chiffré lorsque le téléphone de l’utilisateur est verrouillé. Cela signifie que vous ne pourrez pas en lire lorsque votre application est en arrière-plan. Cependant, l’écriture dans HealthKit fonctionne même lorsque le téléphone est verrouillé.
  • Vous devez expliquer dans la description de votre App Store et dans votre application comment votre application utilisera les données obtenues de HealthKit. Le non-respect de cette consigne peut entraîner le rejet de votre application.
  • Il y a une nouvelle section dans le Directives d’examen de l’App Store qui couvre HealthKit. Vous devez absolument le lire avant de décider d’ajouter ou non la prise en charge de HealthKit.
  • Une fois votre application intégrée à HealthKit, vous devez lui fournir une politique de confidentialité. Apple recommande même certains documents qui spécifient à quoi devraient ressembler les politiques de confidentialité liées à la santé. Il est important que la politique de confidentialité indique à l’utilisateur comment votre application traite ses données.
En relation :  Comment Microsoft pousse la révolution 3D avec Windows 10

Maintenant que nous avons réglé ce problème, commençons avec le didacticiel.

Le projet

Nous allons créer une application simple qui s’intègre à HealthKit et explique certains des concepts de base du framework. En particulier, nous allons:

  • créer un nouveau projet à partir de zéro et activer HealthKit
  • demander à l’utilisateur la permission d’accéder à ses données relatives à la santé
  • lire la date de naissance de l’utilisateur
  • écrire un échantillon de poids dans HealthKit
  • écrire un entraînement sur HealthKit

1. Mise en place du projet

Lancez Xcode et sélectionnez Fichier > Nouveau > Projet… Du iOS> Application section, sélectionnez la Application à onglets modèle et cliquez sur Prochain.

Création d'un nouveau projet - Sélection d'un modèle

Entrer Santé comme le projet Nom du produit et cliquez Prochain. Sélectionnez l’emplacement où vous souhaitez enregistrer le projet et cliquez sur Créer.

Création d'un nouveau projet - étape finale

2. Activer HealthKit

dans le Navigateur de projet à gauche, cliquez sur le projet, sélectionnez le Santé cible, et ouvrez le Capacités onglet en haut. Faites défiler vers le bas HealthKit et activez HealthKit en basculant le commutateur sur la droite. Dans les coulisses, Xcode fera le nécessaire pour que vous puissiez activer HealthKit.

Activer HealthKit

3. Création de l’interface utilisateur

Pour ce projet, nous n’utiliserons pas de classes de taille. Les classes de taille étant activées par défaut, nous devons les désactiver manuellement dans Xcode. dans le Navigateur de projet à gauche, sélectionnez Main.storyboard. Ouvrez le Inspecteur de fichiers à droite et décochez la case intitulée Utiliser les classes de taille.

Xcode vous montrera une boîte de dialogue d’avertissement. Ignorez-le en cliquant sur Désactiver les classes de taille, mais veillez à conserver les données de classe de taille pour iPhone comme indiqué ci-dessous.

Xcode - Désactivation des classes de taille

Retirez les deux étiquettes du Contrôleur de première vue. Ensuite, faites glisser une étiquette et un commutateur depuis le Bibliothèque d’objets à droite sur le contrôleur First View. Remplacez le texte de l’étiquette par Intégration de la santé et réglez l’état du commutateur sur de.

Premier onglet UI - partie 1

Ajoutez deux autres étiquettes et un bouton au contrôleur de première vue. Remplacez le texte de la première étiquette par Âge de l’utilisateur:, remplacez le texte de la deuxième étiquette par ??et alignez-les horizontalement comme indiqué dans la capture d’écran ci-dessous. Enfin, changez le titre du bouton en Lis et positionnez-le à droite de la deuxième étiquette. La première scène devrait maintenant ressembler à ceci:

Premier onglet UI - partie 2

Nous n’avons pas encore fini. Ajoutez une autre étiquette, un champ de texte et un bouton au contrôleur de première vue, en les alignant horizontalement comme indiqué ci-dessous. Remplacez le texte de l’étiquette par Poids de l’utilisateur: et changez le titre du bouton en Écrire.

Sélectionnez le champ de texte que vous venez d’ajouter et, dans le Inspecteur d’attributs, changez son Type de clavier à Nombres et ponctuation. C’est ça. La première scène devrait maintenant ressembler à ceci:

Interface utilisateur du premier onglet - partie 3

4. Création du HealthKit Manager

Nous allons conserver le code lié à HealthKit dans une classe distincte, le GSHealthKitManager classe. Créons cette classe maintenant.

dans le Navigateur de projet, cliquez avec le bouton droit sur Santé groupe et sélectionnez Nouveau fichier…. Assure-toi Classe Touch Cocoa est sélectionné dans la liste des modèles et cliquez sur Prochain. Nommez la classe GSHealthKitManager et cliquez Prochain.

Création de la classe GSHealthKitManager

Ouvrez le fichier d’en-tête du GSHealthKitManager class et remplacez le contenu du fichier par le code suivant. Plus tard, nous appellerons ces méthodes à partir du FirstViewController classe.

Ensuite, ouvrez le fichier d’implémentation du GSHealthKitManager class et remplacez son contenu par ce qui suit:

Bien que la plupart du code lié à HealthKit soit assez facile à comprendre, passons en revue chaque méthode pour nous assurer que nous sommes sur la même page.

  • sharedManager est une méthode de classe qui crée l’objet singleton la première fois qu’il est appelé et retourne cette instance à chaque fois que la méthode est appelée. le dispatch_once est une fonction GCD (Grand Central Dispatch) qui garantit que le bloc qui lui est passé n’est appelé qu’une seule fois, même si le sharedManager méthode serait appelée à partir de plusieurs threads en même temps.
  • requestAuthorization est une méthode qui demande au magasin HealthKit des autorisations pour lire et / ou écrire les données spécifiques dont nous avons besoin. Vous devez appeler cette méthode avant d’utiliser l’une des API d’écriture / lecture du HKHealthStore classe. Si l’utilisateur refuse certaines (ou toutes) les autorisations, HealthKit ne vous en informera pas. Le fait que l’utilisateur ne souhaite pas partager certains types de données est une information en soi. C’est à quel point Apple se soucie de la confidentialité.
  • le readBirthDate La méthode renvoie la date de naissance de l’utilisateur. Il revient nil s’il y a eu une erreur ou si l’utilisateur n’a pas entré de date de naissance.
  • writeWeightSample: enregistre une mesure de poids dans HealthKit. J’ai commenté le code pour que vous ayez une idée générale de ce qui se passe dans la méthode. Une fois que nous avons le HKQuantitySample objet, nous l’enregistrons dans le HKHealthStore instance, en utilisant son saveObject:withCompletion: méthode. Cette méthode est utilisée pour chaque type de données de santé et nous l’utiliserons également dans la deuxième partie de ce tutoriel lors de l’enregistrement des entraînements.
En relation :  Les 5 meilleures applications de test d'aptitude à l'emploi pour Android pour vous aider à faire progresser votre carrière

Dans cette étape, vous avez rencontré un certain nombre de classes HealthKit. Vous pouvez en savoir plus sur chaque classe dans le Référence du cadre HealthKit, mais je vais vous donner un bref résumé de chaque classe.

  • HKHealthStore Ceci est votre fenêtre sur les données HealthKit. Apple recommande d’utiliser une seule instance de cette classe dans votre application et cela se prête très bien au modèle singleton. Vous l’utilisez pour demander des autorisations à l’utilisateur, enregistrer des échantillons et / ou des entraînements dans HealthKit et interroger les données stockées. Ce ne sont là que quelques-unes des tâches du HKHealthStore classe.
  • HKUnit Les instances de cette classe peuvent représenter soit des unités de base, telles que des mètres, des secondes et des grammes, soit des unités complexes créées en combinant des unités de base, telles que km / h ou ou g / m³. Les unités complexes peuvent être facilement créées à partir de chaînes.
  • HKQuantity Les instances de cette classe stockent une valeur (représentée par double) pour une unité donnée (représentée par HKUnit). Vous pouvez utiliser le doubleValueForUnit: méthode pour convertir la valeur de la quantité en unité transmise. Un exemple d’une telle conversion serait de créer une quantité de distance avec une unité de mètres et de demander sa valeur en pieds.
  • HKQuantityType HealthKit utilise des types de quantité pour créer des échantillons qui stockent une valeur numérique. Il est recommandé d’utiliser quantityTypeForIdentifier: lors de la création de types de quantité. Quelques exemples de types de quantités sont la distance parcourue à vélo, l’énergie brûlée, les marches et les vols montés.
  • HKQuantitySample Une instance de cette classe représente un échantillon qui a un type de quantité (représenté par HKQuantityType), une quantité (représentée par HKQuantity) et une date de début et de fin. Si l’échantillon ne s’étend pas sur une période donnée, la date de fin peut être la même que la date de début.

Nous pouvons maintenant utiliser le GSHealthKitManager singleton de n’importe où dans notre application pour travailler avec HealthKit.

Conclusion

Dans ce didacticiel, vous avez découvert les bases du framework HealthKit. Je vous ai présenté le cadre et souligné certaines des mises en garde à surveiller. Nous avons également construit la base de l’exemple d’application et implémenté le GSHealthKitManager class, que nous utiliserons pour interagir avec HealthKit.

Dans la deuxième partie de cette série, nous continuerons à créer l’exemple d’application et à intégrer davantage HealthKit. Vous pouvez trouver le fichiers source pour ce tutoriel sur GitHub.

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.