Learn how to build mobile apps to interact with NFC tags
Hello! Welcome to the "Newline Guide to NFCs with React Native." In this course, we will explore NFC and React Native together.
First, here's a little about me. My name is Richie, and I will be your instructor during this course. I'm also the author of the
react-native-nfc-manager library, which has been widely adopted by people who develop NFC applications with React Native. I'm very happy to share my knowledge with you.
NFC and its applications#
NFC, as you might already know, is a wireless technology for short-range communication.
It is already widely used in our daily life. Let's see some practical use-cases:
Payment: Apple Pay and Samsung Pay both use NFC.
Transportation and ticketing systems: for example, the Suica in Japan uses NFC.
Access control and security systems: lots of applications in this domain choose NFC to be their communication protocol.
Even in gaming: Nintendo Amiibo uses NFC to exchange data between Amiibo figures and the Nintendo Switch console.
Among these use-cases, we will focus on how to build mobile apps to interact with NFC tags.
What we will cover#
First, I will provide an overview of NFC technology in the next lesson.
After that, we will build three apps throughout this course.
App 1 is a game app to count how much time a user needs to scan five NFC tags. You will learn how to properly set up an NFC project and how to trigger the scanning.
App 2 is about NFC Data Exchange Format (NDEF), which is the standard NFC data format supported by both iOS and Android. NDEF can be used for almost any NFC tag. We will build an NDEF reader-writer app to write specific links into NFC tags to trigger specific actions, for example, opening an URL, making a phone call, or sending a message. At the end of this module, we will also cover how to use deep linking with NFC tags.
App 3 dives into low-level NFC programming, which directly manipulates the NFC tag’s internal memory and uses proprietary NFC commands. The app we'll build is called "NFC Pokemon," which is a digital identity management platform. It can seal a specific Pokemon, for example, a Pikachu, into an NFC tag.
When building this app, we will also learn how to create digital signatures and use a proprietary password protection command to free our NFC Pokemon tags from attack.
What we will NOT cover#
This course is for NFC beginners, so we won't cover advanced topics here.
NFC, as derived from radio-frequency identification (RFID), has lots of existing standards. We won't cover NFC operation modes other than reader mode, and we won't cover NFC tag types other than type 2 (we will talk more about these terminologies in the next lesson).
We won't show you every API and parameter for the React Native NFC library either, since our goal is to make you comfortable writing an NFC app rather than being an API reference.
To get the most out of this course, you will need:
A basic understanding of React Native
A mobile phone with NFC feature because NFC features cannot be tested using a simulator
If you're an iOS user, all iPhones after iPhone 7 come with NFC support. (Please note that the iPad doesn't have NFC, only iPhone does.)
If you're an Android user, you should check your phone's settings. If your Android phone has NFC support, you should be able to find the NFC-related menu in your connectivity settings.
iOS users will need to enroll in the "Apple Developer Program" in order to test our apps
Finally, you need some NFC tags. We choose NXP NTAG 213 or 215 for this course. These are the most-used, cheapest NFC tags and can be purchased easily from Amazon.
In the next lesson, I will give you a more detailed introduction to NFC technology. I'll see you there!