開発ノート:NFC-①イントロダクション

今回はNFCをテーマに開発を進めていきたいと思います。
・スマートフォンやICカードとの連携機能を実装したいエンジニア
・IoT機器や非接触決済の技術に関心のある開発者
開発の目標
Apple 製品でNFCを利用するためのAPIは Core NFC で提供されています。
しかし、NFCチップは iPhone と Apple Watch にしか搭載されておらず、通常 Mac や iPad では利用することができません。
そこで今回は、NFCチップを別に用意し、DriverKit を利用してNFCチップと通信することで、 MacでNFCが利用できるようにしていきたいと思います。
DriverKit とは?
DriverKit は macOS と iPadOS のデバイスドライバを開発するためのフレームワークです。
USBデバイス向けの USBDriverKit やネットワークデバイス向けの NetworkingDriverKit など、デバイスタイプに応じたサブフレームワークが存在します。
DriverKit で構築したドライバは、カーネル空間ではなくユーザー空間で実行されます。
カーネルはマシン全体にアクセスできるため、バグが重大なセキュリティ問題につながりかねません。
また、カーネルパニックなどの致命的なエラーが起こり得ます。
このため、ユーザー空間で実行される DriverKit は、システムの安定性とセキュリティが向上します。
NFC とは?
NFCは Near Field Communication の略であり、日本語だと「近距離無線通信」となります。
NFCに対応した端末同士(読み取り機とスマートフォン・ICカード等)を近づけるだけで、情報をやりとりすることができます。
NFCは私たちの日常生活にも広く普及されおり、 iPhone にもNFC機能が搭載されております。
Apple Pay を設定すれば、お買い物の際にスマートフォンをレジの端末にかざして支払いができます。
最近、iPhone でマイナンバーカードも利用可能となりましたが、マイナンバーカードにもNFCが搭載されています。
おわりに
今回は導入ということで、DriverKitとNFCの概要についてご紹介いたしました。
次回は開発の準備をしていきたいと思います。