WWDC d’Apple tenue le 5 Juin 2017, le constructeur a annoncé l’ouverture de son API, Core NFC, aux développeurs à partir de la nouvelle version iOS 11, qui est disponible en téléchargement depuis le 19 Septembre.
Depuis, plusieurs entreprises ont annoncé le support de cette API et WISeKey en fait partie. La firme est derrière la solution CapSeal, qui permet de vérifier, de suivre et d’identifier des produits intégrant un tag NFC compatible CapSeal. Il y en a principalement sur des produits cosmétiques et des bouteilles de vin de luxe.
Dans cet article nous allons nous pencher sur ce que Core NFC nous permet de faire (ou pas), les types de tags supportés et leurs spécifications; et en bonus, un petit tutoriel pour que vous puissiez créer votre premier lecteur de tag NFC.
Ce que vous devez retenir de la sortie de cette nouvelle API :
Le Forum NFC a rédigé des spécifications pour s'assurer que les fabricants de tags et de lecteurs maintiennent l'interopérabilité. Ces spécifications héritent d’ailleurs des normes et des standards issus de la RFID HF (Haute Fréquence 13,56 MHz).
Le forum a décrit 5 types de tags, chacun avec différentes caractéristiques:
Bien que Core NFC soit limité, il supporte les 5 types de tag NFC cités précédemment, ce qui rend l’utilisation de l’API très large.
Dans sa documentation officielle, Apple cite d’ailleurs deux secteurs de la communication sans contact :
Apple ne dit rien concernant le paiement ...
Pour la suite de l’article, nous allons créer une application qui lit un tag NFC et qui affiche l’ensemble de ses messages sur une liste.
J’ai utilisé cette application de démo pour scanner le tag NFC d’un abribus RATP ; ils sont tous équipés de tag NFC pour consulter les horaires de passage des bus. Voici une capture du processus de scan du tag.
Nous allons commencer par décrire les pré-requis pour développer notre application, ensuite ajouter les droits et les capabilities, puis enfin implémenter le code accompagné des descriptions détaillées des classes.
Un projet Core NFC est un projet comme les autres. Créez votre projet comme d’habitude, et, ajoutez l’entitlement “Near Field Communication Tag Reading” dans les capabilities.
Cette opération va créer un nouveau fichier .entitlements dans votre projet. Par exemple :
Ensuite, ajoutez la clé suivante à votre fichier Info.plist:
Privacy - NFC Scan Usage Description
Définissez, comme valeur associée, le message qui s’affichera à l’utilisateur au moment de la lecture du tag.
A partir de maintenant vous pouvez coder !!
Dans votre view controller principal, il faut commencer par importer le framework:
Ensuite, créer une variable privée:
Elle représente un tableau d’objet de type NFCNDEFMessage qui contient à son tour un tableau de NFCNDEFPayload.
Ensuite, dans votre storyboard ajouter un bouton “Search”, l’action sera gérée au niveau du controller dans la méthode startNFCSearchButtonTapped.
Au “tap” sur le bouton “Search”, on instancie une variable nfcSession, en lui passant
Vous l’avez compris, c’est à ce moment là qu’on démarre notre session.
Notre viewController doit implémenter le protocol NFCNDEFReaderSessionDelegate.
Les méthodes de la callback sont appelées au moment où la session reçoit un résultat, qui peut être
Il y a 2 méthodes de callbacks:
Compilez puis lancez !!
Le repository public du projet de test est par là ???? NFC-Reader
Android a eu un SDK NFC depuis 2010. Je pense que Apple a finalement vu NFC pour ce qu'il est, une technologie de base qui est un composant matériel requis dans un smartphone moderne en 2017. Tout le monde s'est demandé "Comment Apple fera-t-il de l'argent avec NFC?". Une question erronée, ce serait comme se demander "Comment Apple fera-t-il de l'argent de la caméra?"
Ce qui est sûr, c’est que Apple est entrain d’ouvrir les vannes et c’est une bonne chose. Apple Pay ne sera bientôt plus le seul à profiter du NFC.
Référence: