Core NFC : ce qu'il faut savoir sur le sujet
Le 19 septembre 2017, Apple rendait publique la dernière version de son système d’exploitation pour ses smartphones, iOs 11. Celle-ci apporte, entre autres fonctionnalités, la possibilité d’utiliser la puce NFC du smartphone quand son utilisation était, jusqu’à présent, réservée à Apple Pay
L’utilisation de cette puce se fait, pour les développeurs, via une toute nouvelle API qui se nomme Core NFC. Voyons un peu plus en détail ce qu'elle permet.
Après cette lecture, vous pourriez être intéressé par notre précédent article concernant iOs & NFC.
Les bases
La nouvelle API nécessite au minimum un iPhone 7.
Elle permet de détecter les tags NFC et de lire les messages NDEF (NFC Data Exchange Format) des types 1 à 5.
Ces messages NDEF peuvent contenir un certain nombre d’informations comme l’URL d’un site, un numéro de téléphone, une VCARD, etc. Même si, habituellement, un tag ne contient qu’un seul message NDEF, il est tout à fait possible d’en mettre plusieurs ; l’API d’Apple les rendra tous disponibles à l’application.
Il est important de comprendre que cette API ne permet pas d’écrire sur les tags, ni de les formater. Cela viendra peut être plus tard, mais cela reste une hypothèse. Les portes du NFC ne sont donc pas encore toutes grandes ouvertes.
Fonctionnement
La lecture du tag est assurée par l’application elle-même et non pas par le système, de manière automatique : cela suppose une action volontaire de l'utilisateur final pour démarrer une “session”.
En plus de cela, pour utiliser l’API Core NFC, l’application doit être au premier plan, c’est-à-dire visible de l'utilisateur. Il sera automatiquement mis fin à la session si l’application est fermée ou quitte le premier plan.
Il faut également retenir que la lecture (le scan) du tag, ou la recherche de tag, est limitée à 60 secondes.
Quelques détails de développement
Pour développer une application utilisant la puce NFC du smartphone, le développeur commence en utilisant l’objet (la classe) NFCNDEFReaderSession de l’API.
Ensuite, à chaque fois que l’OS (smartphone) détecte un tag, il appelle une méthode (un délégué) qui reçoit un tableau d’objets de type NFCNDEFMessage.
Chacun de ces objets NFCNDEFMessage contient des informations sur le message NDEF, comme son TNF (Type Name Format), son Record Type Definition (ou plus simplement “type”), un identifiant unique et les données du message (payload).
Les autres fonctionnalités du téléphone peuvent ensuite être utilisées pour réagir avec le tag. Le développeur programme son application comme il le souhaite pour exploiter les données lues.
À titre d’exemple, l’application peut :
- ouvrir l’URL dans le navigateur du téléphone pour afficher une page qui présente le produit à l’utilisateur final,
- envoyer une donnée dans le cloud pour indiquer qu’un tag a été lu et afficher un message,
- enregistrer une information dans les stocks.
Pour voir un exemple complet de code (y compris avec xcode), nous vous invitons à consulter ce lien vers le dépôt git correspondant.
Vous pouvez également regarder cette vidéo réalisée par Apple durant le WWDC (nécessite Safari).
Important
Il faut noter que les fichiers d’en-tête disponibles dans le SDK d’Apple font référence à une classe NFCISO15693ReaderSession.
Cette classe pourrait laisser penser que dans des futures versions de Core NFC, il serait possible d’utiliser des tags compatibles avec la norme ISO 15693, mais, à l’heure actuelle, l’utilisation de cette classe retourne une erreur “Feature not supported”.
SpringCard et Apple
Si vous avez besoin de créer des tags au format NDEF et/ou d’émuler un tag NDEF, les coupleurs SpringCard constituent des outils performants pour cela.
Quant à l'expérience NFC des smartphones Apple, nous avons vu qu'elle restait encore limitée. Heureusement, SpringCard est là !
Ses ingénieurs ont développé le produit SpringBlue permettant d’intégrer les smartphones Apple dans une solution sans-contact de contrôle d’accès, même sans puce NFC.
Lien vers l'application SpringBlue dans App Store
Lien vers l'application SpringBlue dans Google Play Store
Publié le 21/09/2017
Laisser un commentaire