Core NFC: what you need to know about it

On September 19, 2017, Apple released the latest version of its operating system for its smartphones, iOs 11. Among other features, it provides the possibility of using the the smartphone NFC chip which was before only used for the Apple Pay application.

Developers can work with this chip via a new API called Core NFC. Let's learn more about it !

After reading this, you could also be interesting by our previous article about iOs & NFC.

The basics

The new API requires at least an iPhone 7.
It can detect NFC tags and read types 1 through 5 NDEF messages (NFC Data Exchange Format).

These NDEF messages may contain a number of information such as a site URL, a phone number, a VCARD, and so on.
Usually a tag contains only one NDEF message, but the API makes it possible to put several ones and all of them will be available to the application.

It is important to understand that this API does not allow to write on tags, nor to format them. This may come later, but that remains a hypothesis. So the doors of the NFC world are not wide open yet.

Operation

The tag is read by the application itself and not by the system, in an automatical manner: this assumes a voluntary action by the end-user to start a "session".

In addition to this, to use the NFC Core API, the application must be in the foreground, i.e. visible to the user. The session will automatically end if the application is closed or put in the foreground.

You should also keep in mind that the time to read (scan) the tag, or to search for a tag, is limited to 60 seconds.

Programing Core NFCDevelopment details

While developing an application using the NFC smartphone chip, the developer will start with the API NFCNDEFReaderSession object (the class).

Then, each time the OS (smartphone) detects a tag, it will call a method (a delegate) that receives a NFCNDEFMessage type objects table.

Each of these NFCNDEFMessage objects contains information concerning the NDEF message, such as its TNF (Type Name Format), its Record Type Definition (or simply "type"), a unique identifier and the payload data.

The other features of the phone can then be used to make something based on the tag data.
The developer programs his application as he wishes in order to exploit the data read.
For example, the application can:

  • Open the URL in the phone's browser to display a page that presents the product to the end-user,
  • Send data in the cloud to indicate that a tag has been read and display a message,
  • Record storage information.

To see a complete code example (including xcode), we invite you to view this link to the corresponding git repository.

You can also watch this video made by Apple during the WWDC (Safari required).

Important

Please note that the header files available in the Apple SDK refer to a NFCISO15693ReaderSession class.

This class might suggest that in future versions of Core NFC it would be possible to use tags that are ISO 15693 compliant, but at the moment the use of this class returns a "Feature not supported " error.

SpringCard and Apple

If you need to create NDEF tags and / or emulate an NDEF tag, SpringCard couplers are powerful tools for this.

NFC experience of Apple smartphones is still limited, as we saw in this article. Fortunately, SpringCard is here!
Its engineers have developed the SpringBlue product to integrate Apple smartphones into contactless access control solutions, even without an NFC chip.

Link to SpringBlue application in App Store

Link to SpringBlue app in Google Play Store

Published on 9/21/2017

You like it? Share It!

Return to the Labs list
Leave a comment