View in English

  • メニューを開く メニューを閉じる
  • Apple Developer
検索
検索を終了
  • Apple Developer
  • ニュース
  • 見つける
  • デザイン
  • 開発
  • 配信
  • サポート
  • アカウント
次の内容に検索結果を絞り込む

クイックリンク

5 クイックリンク

ビデオ

メニューを開く メニューを閉じる
  • コレクション
  • トピック
  • すべてのビデオ
  • 利用方法

WWDC19に戻る

ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。

  • 概要
  • トランスクリプト
  • Core NFCのエンハンスメント

    このセッションでは、AppをNFCに対応させ、NDEFの書き込みや広く採用されているネイティブのタグプロトコルのサポートといった最新機能を活用する簡単な方法について紹介します。

    リソース

    • Core NFC
    • CoreNFC Tag Reading
    • Creating NFC Tags from Your iPhone
      • HDビデオ
      • SDビデオ
    • プレゼンテーションスライド(PDF)

    関連ビデオ

    WWDC20

    • Core NFCに関する新機能

    Tech Talks

    • Core NFCの新機能

    WWDC17

    • Introducing Core NFC
  • このビデオを検索

    (音楽)

    (歓声と拍手) Core NFC Enhancementsへようこそ WWDCと昨日のBashは楽しみましたか? 私はNFCソフトウェアチームの ゴードンです ローレンスもあとで登場します では始めましょう

    2年前 Core NFCフレームワークで NDEFタグを読み取る機能を 導入しました 昨年はバックグラウンドでの タグスキャンで NDEFタグの自動検出と アプリケーション起動が可能に Core NFCフレームワークの 導入以来― ある要望をいただいてきました 今年はその要望に応え NDEFタグ書き込みと ネイティブタグアクセスを 可能にしました (歓声と拍手) どうも (含み笑い) (拍手) NDEFフォーマットタグの 読み書き以外に ネイティブプロトコルで タグの操作も可能です NFCで様々なことが できるようになります パスポートの読み取り 非接触型ICカード NFC対応ハードウェアの操作など iPhone 7以降で対応しています

    APIの変更点の説明後 NDEFタグの書き方を確認します

    次に ネイティブタグアクセスの説明

    最後にこれらのデモを行います

    まずAPIの変更点です

    Core NFCフレームワークの 全体構造に変更はなく アプリケーションが Reader Sessionを取得 セッションが有効になれば NFC操作が可能です

    タグ読み取りの アクションシートが表示され

    タグ書き込みと ネイティブタグアクセスが可能です バックグラウンドのタグスキャンは NDEFフォーマットを要し 読み取り専用です

    さらに― 最大スキャン時間は 各セッション60秒のままです

    新しい点は? 新たなNFCTagReaderSessionは アプリケーションでスキャンや タグへの接続を可能にします

    ポーリングサイクルの停止や再実行で 新しいタグの検出などもできます

    NFCNDEFReaderSessionも タグ書き込み用に修正しました 提供されるNFCタグオブジェクトで 新たなタグに基づく インターフェイスが使用可能です

    新たなタグのプロトコルは ご覧のとおり 主要な種類ばかりです NDEF ISO7816 MIFARE ISO15693とFeliCaです NFC技術に詳しくなければ 最初はNDEFを提案します

    では 使い方の基本的な手順です まずコアシンタックスの エンタイトルメントを有効に

    これはNFC機能を有効にする例です 特に許可は要りません

    異なる2つの機能があります NDEF用と ネイティブタグアクセス用です

    次にどちらの機能が必要か決め 適切なReader Sessionを使用

    デリゲートコールバックで タグを受け取り―

    Reader Sessionでタグに接続します

    この段階でタグオブジェクトを使った 操作が可能です

    終わったらセッションを無効にし

    タグをリリース

    NFCに慣れていなければ 最初はNDEFから始めてください NFC機能の追加が最も簡単です NDEFフォーマットタグなら 種類を問わず 素早く実装と プロトタイピングが可能です 例えば QRコードと同じ方法で 既存のユースケースに組み込めます さらに 直接iOSから バックグラウンドで― タグスキャンに対応する NFCタグを作成できます

    それでは… どうも (拍手) NDEFタグへの書き込みは簡単です

    NFCNDEFReaderSessionを使用します didDetectタグのコールバックを実装し NDEFタグを受け取ります これで様々なことができます 最大容量を含むタグに関する― NDEF関連情報のクエリ 書き込み可能か否かの判断 NDEFメッセージの読み書きも可能です タグがロック可能なら 書き換えも防げます ではコードです

    まずNFCNDEFReaderSessionの インスタンスを生成 デリゲートを提供し invalidateAfterFirstReadを falseにします

    タグをデリゲートコールバックで 受け取ります

    受け取ったら Connectメソッドに送り タグに接続 別のタグへの接続や 再ポーリングをしなければ タグは接続状態が続きます

    タグに接続したら NDEF情報のクエリをします 読み書き可能なら タグにメッセージを書き込みます

    次にペイロードで NFCNDEFMessageを作成し writeNDEFメソッドに送り タグを更新

    invalidateメソッドを呼び出し NFC操作とセッションが終了 以上で 簡単に NDEFタグを書き込めます

    NDEFフォーマット以外の ユースケースには ネイティブタグアクセスを使います 詳しく見ましょう

    まずISO7816からです これはNFCタグのType AとBに使われ 様々なユースケースがあります 例えば パスポートやアクセス機能 非接触型ICカード 支払いや交通システムです 7816をサポートするタグは Application Protocol Data Unit Interfaceを活用 俗にAPDUと言います 7816のタグオブジェクトを使って APDUコマンドの送受信が可能です

    7816タグには 幾つか特別な条件があり 先にそれを説明します

    まずinfo.plistファイルに エントリーを追加 するとアプリケーションが 使用予定の特定のAIDを 幾つか宣言します

    タグが検出されれば info.plistファイル内のAIDを サポートするか確認 適合するまで AIDを1つずつ確認します そして デリゲートコールバックで AIDが選択された状態のタグを 受信します この時点でファイル内の 他のAIDも選択可能になります

    当面は ペイメントカードの 読み取りはサポートされません

    これはinfo.plistファイルの AIDリストの例です

    NDEF操作をするAIDを 表示しています

    実際の7816タグオブジェクトです プロトコルは7816技術特有の プロパティです 属性はUIDと historicalBytesを含みます 2番目に多かった要望が UIDに関してでした sendCommandメソッドも あらゆるAPDUをタグに送受信できます

    7816タグのスキャンを開始するには NFCTagReaderSessionのプロトコルに 準拠するデリゲートを実装 メソッドはご覧の3つだけです

    スキャンを開始するには NFCTagReaderSessionの インスタンスを生成 ポーリングオプションを ISO14443に設定します これはType AとBタグの NFC基本技術です

    AIDが適合するタグが検出されれば デリゲートコールバックで受信

    7816タグがあることを確かめ session.connectでタグに接続します

    接続したら Helper ClassでAPDUを生成し sendCommandメソッドで APDUの送受信をします

    処理中にエラーが出た場合 続行を中止します 仮にパスポートを読み込む際に 資格情報や― パスワードの計算を間違えたとします この場合 ユーザに エラーを示すべきです invalidateメソッドで セッションを無効にすれば アクションシートにエラーシンボルと メッセージが表示されます

    このエラー表示の例は デモでお見せします 3番目に要望が多かった機能です

    (拍手) これは成功した場合の表示です

    以上が7816で 次はMIFAREです 7816に似た技術で Type Aタグに基づいています NXPが定義した技術で チケッティングや IDバッジに使われています

    NFCMiFareTagのプロトコルには 7816に似たプロパティがあります さらにMIFAREタグ特定の mifareFamilyも発見されました それは“Ultralight Plus DESFire”ですが Classicタグはサポートされません これはMIFAREコマンドを送るメソッド DESFireやPlusなどに 7816のAPDUを送る― 便利なメソッドも存在します

    実際に見ましょう

    MIFAREタグをスキャンし Reader Sessionの インスタンスを生成 ポーリングオプションを ISO14443に設定 デリゲート設定し beginを呼び出します

    7816のインターフェイスに対応し info.plistファイル内の― AIDを含むMIFAREタグは 7816オブジェクトとして返ります

    なのでコールバックの際― MIFAREタグが返されたか確認します

    session.connectメソッドで タグに接続し―

    MIFAREコマンドを送信

    では 次にISO15693について 説明します

    Type 5や近傍タグとも言われ 小売業 工業用 医療用に 使われています

    プロトコルはISO15693技術特有の プロパティで― “UID ManufactureCode SerialNumber”があります

    15693のコマンドセットは 多数あります ご覧のリストは一般的な操作に 便利なメソッドです 1行や複数行のブロックの読み書き ブロックのロック 選択やリセット カスタムコマンドを送るメソッド ISO15693仕様で構成した 任意コマンドを このメソッドで送信できます 詳細は仕様を参照してください

    近傍タグのスキャン方法も もう お分かりでしょう

    NFCTagReaderSessionを デリゲートに提供 ポーリングオプションは ISO15693に変更

    15693タグが検出されれば コールバックで受け取ります

    正しいタグタイプか確認し session.connectで接続

    タグで readSingleBlockコマンドを発行

    次は最後の技術 FeliCaです ソニーにより定義され 日本で交通系 決済システムに使われています

    FeliCaにも追加条件があります

    info.plistファイルに エントリーを追加し 特定のFeliCaシステムコードを宣言 セキュリティー上 分離したシステムコードにしてください

    7816に似て FeliCaタグが検出されれば info.plistファイルにある システムコードを含むか検証 含むならタグを受け取り なければタグの存在は アプリケーションに通知されません

    こちらがinfo.plistファイルに FeliCaシステムコードが

    登録された例です

    プロトコルは FeliCa特有のプロパティで 製造IDと選択された システムコードがあります sendFeliCaCommandメソッドで タグに送信も可能

    FeliCa操作に便利な メソッドもあります

    詳細はソニーの コマンド仕様を参照ください

    この先の操作方法は おなじみですね インスタンスを生成し デリゲートに提供 ポーリングオプションを ISO18092に変更します

    タグに適合する システムコードが検出されたら タグオブジェクトを受信

    正しいタグタイプか確認し タグに接続

    最後に タグで requestResponseを送信 以上で NDEFタグ書き込みと 4つのネイティブ技術で タグ操作をしました

    では ローレンスが 実際にデモを行います (拍手)

    どうも ゴードン 皆さん こんにちは ようこそ

    Core NFCフレームワークの実例を 架空の鮮魚店を使って 説明していきます

    私はハイテクな鮮魚店の店主で NFC技術を利用すれば 顧客関係と在庫管理が 向上できると聞きました このプレゼンを聞いて ビジネスに役立つ― アプリケーションを 2つ作ることにしました

    NFCの使用方法は2つ 初めに― NFC NDEFタグで 商品の説明をします 次に MIFARE Ultralightタグで クーポンタグを作ってみます

    商品を届けるまでの概要です 魚を釣ったら NFC NDEFタグを使い 魚の説明をします この情報には釣った魚の名前と 値段が含まれます タグを商品パッケージに付け 顧客の元に商品を届けます 最初に Fish Tag Creatorを作ります この様な画面です

    すべての情報を入力後 “Write To Tag”をクリックし タグに書き込みます さらにNFCクーポンコードを作成し 販売促進も行えるのです

    MIFARE Ultralightタグで クーポンコードを顧客に送信します

    クーポンを1つ選択し タグに書き込みます 2つ目は Fish Tag Readerの作成です 顧客はApp Storeから ダウンロードし 購入した魚のタグを読み取ります

    最初のパネルに 魚のタグを読み取る “Scan Tag”があります

    そしてタグ情報を表示します 次のパネルで “Scan Coupon”をクリックし クーポンタグを読み取ります これは次回以降 使えるクーポンです

    実際に行ってみましょう

    ご覧の画面は―

    Fish Tag Creatorの アプリケーションです

    ここに商品の “Creative Salmon”があります

    (含み笑い)

    今日の日付を選択 魚の名前も選択します これは大きな魚ですよ (複数の声)

    そして“Write To Tag”をクリック

    アクションシートが表示されたら 電話をNDEFタグにかざします

    成功です

    では 皆さんに クーポンタグを作ります

    “Create Coupon”を選択

    WWDCの特別オファーで 50%オフを選びます (歓声と拍手) ボタンをクリック アクションシートが表示されたら iPhoneをタグにかざします

    成功です

    ではNFC Tag Readerに切り替え NFCタグのテストをします

    画面は開いています

    “Scan Tag”を押し NDEFタグを読み込みます

    商品情報が画面に表示されます すばらしい では― クーポンタグをスキャンしてみます 次のパネルに移動し “Scan Coupon”をクリック

    50%オフのクーポンです

    2つ目のクーポンを読み取ります

    無効なクーポンです

    実際の操作を見たところで ソースコードに切り替え 実装方法を見ます

    まず魚のタグの 作成方法を説明します

    エンタイトルメントファイルに NDEFとネイティブタグ機能を設定 この2つの機能は アプリケーションで使用します

    Main View Controllerで NDEF書き込みの実装方法を見ます

    この中の…

    お待ちください

    Write Tag機能の中に NFCNDEFReaderSessionの インスタンスを生成

    警告メッセージを設定し beginでセッションを開始

    検出されたNDEFは デリゲート機能に送信

    タグに接続し―

    queryNDEFStatusを呼び出します

    タグが書き込み可能で容量があれば writeNDEF機能を呼び出します

    最後にinvalidateで終了します

    次はクーポンの作り方です

    ここにcreateCoupon機能があります TagReaderSessionの インスタンスを生成

    警告メッセージを呼び出し beginで開始します

    デリゲート機能で MIFARE Ultralightタグを探し―

    タグが検出されれば接続し 書き込み操作をします

    タグに書き込むため クーポンコードを生成し sendMiFareCommandを 呼び出します

    書き込みが完了したら―

    セッションを無効にします

    NDEFとネイティブタグを使い NFCタグを作成しました 次はFish Tag Readerです

    NFCTagReaderSessionには NDEF操作ができる― 便利なメソッドがあります

    ご覧のとおりです しかし info.plistファイルに― 7816AIDとType Fシステムコードの 追加が必要です ここにあります

    Scan View Controllerに―

    Scan Tag機能があります

    タグのReader Sessionを生成し

    警告メッセージを設定

    beginを呼び出し 読み取り機能を書き込みます

    NFCタグの検出後 デリゲートコールバックを実行します

    タグに接続して queryNDEFStatusを実行

    読み取り可能なら readNDEFを呼び出します

    では― 最後にinvalidateで無効にします

    次はクーポンタグの読み取りです

    これはScan Coupon機能です NFCTagReaderSessionの インスタンスを生成

    警告メッセージを設定し beginで開始します

    検出されたタグが MIFARE Ultralightタグか確認

    そうなら―

    タグに接続

    タグを読み取るには sendMiFareCommandを呼び―

    クーポンを有効にします

    最後に invalidateでセッションを終了します

    クーポンが無効なら エラーメッセージを表示させます

    以上で Core NFCフレームワークを使い アプリケーションが 作成できます 再びゴードンです (拍手)

    ありがとう

    タグ書き込みとネイティブアクセスで 新たな機能を― 追加できることを願ってます では本日のおさらいです まずReader Sessionの タイプを決めます NDEFか ネイティブアクセス または両方

    デリゲートでタグを受け取ります

    そのタグオブジェクトで 読み書きを実行します

    終わったら 適切な無効化の呼び出しで 成功かエラーかを表示します

    以上です

    今日のサンプルコードと その他の情報は オンラインで入手可能です iOS 13とXcode 11の 情報もあります ダウンロードして Core NFCをご利用ください

    質問があれば このあと Core NFCラボが続きます

    お声がけください (歓声と拍手)

Developer Footer

  • ビデオ
  • WWDC19
  • Core NFCのエンハンスメント
  • メニューを開く メニューを閉じる
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    メニューを開く メニューを閉じる
    • アクセシビリティ
    • アクセサリ
    • App Extension
    • App Store
    • オーディオとビデオ(英語)
    • 拡張現実
    • デザイン
    • 配信
    • 教育
    • フォント(英語)
    • ゲーム
    • ヘルスケアとフィットネス
    • アプリ内課金
    • ローカリゼーション
    • マップと位置情報
    • 機械学習
    • オープンソース(英語)
    • セキュリティ
    • SafariとWeb(英語)
    メニューを開く メニューを閉じる
    • 英語ドキュメント(完全版)
    • 日本語ドキュメント(一部トピック)
    • チュートリアル
    • ダウンロード(英語)
    • フォーラム(英語)
    • ビデオ
    Open Menu Close Menu
    • サポートドキュメント
    • お問い合わせ
    • バグ報告
    • システム状況(英語)
    メニューを開く メニューを閉じる
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles(英語)
    • フィードバックアシスタント
    メニューを開く メニューを閉じる
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program(英語)
    • News Partner Program(英語)
    • Video Partner Program(英語)
    • セキュリティ報奨金プログラム(英語)
    • Security Research Device Program(英語)
    Open Menu Close Menu
    • Appleに相談
    • Apple Developer Center
    • App Store Awards(英語)
    • Apple Design Awards
    • Apple Developer Academy(英語)
    • WWDC
    Apple Developerアプリを入手する
    Copyright © 2025 Apple Inc. All rights reserved.
    利用規約 プライバシーポリシー 契約とガイドライン