View in English

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

クイックリンク

5 クイックリンク

ビデオ

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

WWDC22に戻る

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

  • 概要
  • トランスクリプト
  • コード
  • App Clipの最新情報

    App Clipの最新情報です。サイズ制限、CloudKit、キーチェーンの使用方法が改善され、App Clipの構築が簡単になりましたので、是非ご確認ください。また、診断ツールでApp Clipを診断する方法や、App Store Connectを使用した高度なApp Clip体験のワークフローを自動化する方法も紹介します。

    リソース

    • App Clips
      • HDビデオ
      • SDビデオ

    関連ビデオ

    WWDC21

    • 軽量かつ高速なApp Clipの構築
    • App Clipの新機能

    WWDC20

    • 優れたApp Clipをデザインする
    • App Store Connectの新機能
  • このビデオを検索

    ♪ ♪ こんにちは Charles Yingです App Clipの最新情報 へようこそ App Clipは Appの小さな一部分でして 軽くて速く 見つけやすいので 必要なものを必要なときに 素早く手に入れられます メッセージやマップ SpotlightやSafari 世界中のQRコードや App Clipコードから見つけられます その一例がToastです ToastのApp ClipはQRコードで 卓上での会計ができます レシートに印刷された 既存のQRからApp Clipが 開くようにも設定しました App Clipの導入により ユーザチェックアウトが早まり 多くのユーザがフルAppの インストールを選択しました 既存フローにApp Clipを 組み込み 顧客の体験を 効率化することができます ユーザがApp Clipをより 活用できるようにする新機能と App Clipの開発をより 簡単にする機能を紹介します App Clipのサイズ制限 から始めましょう App Clipは 軽くて速い スピード重視の設計です 即座に感じられるには 小さくあることが必要です ワイヤレスネットワークが 2年前よりも高速になり iOS 16では新たに App Clipのサイズを 最大15MBまでに できるようになりました そのため 理想の体験を 構築する余地が広がります App Clipのミニマムバージョンを iOS16に設定すると新制限が適用され 10MB以下に設定すれば iOS15以前と互換性が保たれます いずれにせよ App Clip 起動後 常に追加リソースを ダウンロード することができます 素晴らしい体験には やはりスピードが重要です ユーザが常に高速回線の ある場所にいるとは限らず App Clipの最適化は これまで同様に重要です App Clip最適化については 「軽量かつ高速なApp Clipの構築」 をご覧ください 次に App Clip体験や ユニバーサルリンクが 正しく設定されているか確認する シンプルな新しいツールを紹介します その仕組みはこうです iPhoneかiPadの「Developer」設定 から「App Clips Testing」 の「Diagnostics」 を選択します ここで URLを入力します デバイスをXcodeに接続し Developer設定をオンにできます iOSは URLの設定を 確認します 正しく設定されていれば 緑色のボックスが示されます

    問題があれば この画面が 表示され 何が起こったかを 正確に知ることができます Safariバナーが表示されない あるいは App Clipではなく Webページに移動するなどの 問題を解決できます 各診断には 設定ステップをさらに 詳しく説明するドキュメントへの リンクがあります これで 何が問題かを 正確に把握ができます

    App Clip診断では 物理コード Safari iMessageを使用する App Clip体験を確認し ユニバーサルリンク関連 ドメインの設定も確認します このシンプルな新ツールで 正しい設定が簡単になります

    次に CloudKitです

    AppがiCloudの保存データに アクセスする構成です これまでCloudKitは App Clipには未対応でした App Clipはデータやリソースを 読むのにサーバを使う場合がありました

    iOS 16からは CloudKitのパブリック データベースに格納された データやリソースも 読み込むことができます CloudKitが提供する 全パワーとスケールを使って AppとApp Clipの両方で 同じコードを共有し 同じデータにアクセスできます 2つの重要な違いは App Clipは パブリックデータベースから 読み取りは可能ですが CloudKitへの書きこみはできません App Clipは クラウドドキュメントと キーバリューストアも使えません App Clipが使われなくなった際 iOSがAppとそのデータを 削除するという ユーザへの約束を守る為です

    XcodeでApp Clipのために CloudKitを有効にするには App Clipターゲットの Signing and Capabilitiesタブを開き App Clipに使用させたい CloudKitコンテナを選択します このCloudKitコンテナは フルAppと共有する 新規または 既存のコンテナです App ClipからCloudKitの パブリックデータを読む例です コンテナの識別子で CKContainerを作成し publicCloudDatabase プロパティにアクセスします 次に パブリックデータベースから 必要なレコードを取得します

    次に キーチェーンの移行です 認証トークンや 決済情報などの機密情報を App ClipからフルAppに 転送したい場合 App Clipはこのデータを 共有Appグループコンテナ に格納することになります iOSは ユーザがアップグレード する際 このデータを保存します

    フルAppはApp グループのコンテナを読み取り その情報をキーチェーンに 保存します

    しかし このような情報を 安全に保管するためには キーチェーンが 最適なのです 今年から ユーザがAppを インストールすると App Clipのキーチェーンに 保存されているアイテムが App ClipからAppに 転送されるようになりました これでキーチェーンに 安全なアイテムを保存し Appインストール時に 移動されることが可能になります 共有キーチェーングループと iCloudキーチェーンには未対応です これによりApp Clipを 使わなくなった後も キーチェーン情報が残らない ユーザへの約束が守られます

    キーチェーンにログイン情報を保存 読み取る例を紹介します AppそしてApp Clipともに コードは同じです SecItemAddでキーチェーンに 新アイテムを追加できます SecItemCopyMatchingで Keychainからアイテムを出します アイテムにラベルを追加し App Clipによって 保存されたアイテムである事を フルAppが識別可能にします

    最後に App Clip Experiences APIです App Clipが成長するにつれ より高度なApp Clip体験が必要になり それぞれが独自の情報や 位置情報を持つ形となります これらをすべて簡単に 追加 更新する方法が必要です App Store Connectには このワークフローを自動化する App Clip Experiences Web API が用意されています このAPIを利用して 高度なApp Clip体験を 追加する例を見てみましょう まず App Clipの リソースIDを取得します 次に ヘッダ画像を アップロードします 最後に 高度な App Clip体験の作成です まず App Clipの リソースIDを探します アイテムIDとApp ClipバンドルID を指定しWeb APIを呼び出します そのレスポンスから 後のため App ClipリソースIDを保存 次に 高度なApp Clip体験のため ヘッダ画像をアップロードします ヘッダ画像のリソースIDを 次ステップのため保存します 最後に App ClipリソースIDと ヘッダ画像IDで 高度なApp Clip体験を 作成ができます 記入する箇所は 3つあります: attributes relationships そしてincludedです

    attributes辞書には アクション名 カテゴリと言語 高度な App Clip体験の リンクなどの 情報を追加します 高度な体験がマップと関連 する場合 place辞書を追加します place辞書には 一致する マップビジネスの場所名 マップアクション マップ座標を追加します relationships辞書には App ClipリソースIDと ヘッダ画像IDを追加します included辞書では ローカライズされた タイトルとサブタイトルを 高度なApp Clip体験 のために追加します 以上です! このApp Store Connect APIを使用すれば 高度なApp Clip体験の作成を 完全に自動化できます App Store Connectについて より詳しく知りたい方は App Store Connect の自動化 WWDC 2020で発表された App Store Connectの 新機能について をご覧ください 最後に 新しいApp Clipの サイズ制限により 理想的な体験を構築する 余地が増えました App Clip診断ツールは App Clipとユニバーサルリンクの 構成を端から端まで 把握できる優れものです CloudKitとキーチェーンは 多くのコードをAppと共有し 開発を容易にします App Clip Experiences APIは 高度なApp Clip体験を 管理するための ワークフローを自動化します App Clipの 開発については WWDC 2021で発表された App Clipの新機能 をご確認ください デベロッパのみなさんが素晴らしい App Clipを作ってくれました とてもクリエイティブです! これら新機能がApp Clipの 構築に役立ちますように ご視聴ありがとう ございました!

    • 4:41 - Read your CloudKit public database from your App Clip

      // Read your CloudKit public database from your App Clip
      
      let container = CKContainer.default()
      let publicDatabase = container.publicCloudDatabase
      let record = try await publicDatabase.record(for:
          CKRecord.ID(recordName: "A928D582-9BB6-E9C5-7881-E4EAF615E0CD"))
      
      if let title = record["Title"] as? String,
          let description = record["Description"] as? String {
              print(“Fetched a food item from CloudKit: \(title) \(description)")
      }
    • 6:03 - Read and Write from your App Clip's keychain

      // Write authentication token to App Clip keychain
      
      let addSecretsQuery: [String: Any] = [
          kSecClass as String: kSecClassGenericPassword,
          kSecValueData as String: "smoothie-secret".data(using: .utf8),
          kSecAttrLabel as String: "foodsample-appclip"
      ]
      SecItemAdd(addSecretsQuery as CFDictionary, nil)
      
      // Read authentication token from app or App Clip
      
      var readSecretsQuery: [String: Any] = [
          kSecClass as String: kSecClassGenericPassword,
          kSecReturnAttributes as String: true,
          kSecAttrLabel as String: "foodsample-appclip",
          kSecReturnData as String: true
      ]
      var secretsCopy: AnyObject?
      SecItemCopyMatching(readSecretsQuery as CFDictionary, &secretsCopy)
    • 7:10 - Get your App Clip resource ID

      # Get the App Clip resource ID
      
      GET /v1/apps/1234567890/appClips?filter[bundleId]=com.example.foodsample.Clip
      
      # Response
      
      {
          "data": {
              "attributes": {
                  "bundleId": "com.example.foodsample.Clip"
              },
              "id": "726ad1bb-3e1b-40eb-a986-d8a9897e4f1e"
          }
      }
    • 7:25 - Upload a header image for the advanced App Clip experience

      # Upload a header image for the advanced App Clip experience
      
      POST /v1/appClipAdvancedExperienceImages
      {
          "data": {
              "type": "appClipAdvancedExperienceImages",
              "attributes": {
                  "fileName": "Hero_image_US.png",
                  "fileSize": 43500
              }
          }
      }
      
      # Response
      
      {
          "data": {
              "attributes": "..."
              "id": "91c52741-832b-48a2-8935-1797655edbe7"
          }
      }
    • 7:34 - Create the advanced App Clip experience

      # Create advanced App Clip experience
      
      POST /v1/appClipAdvancedExperiences
      {
          "data": {
              "type": "appClipAdvancedExperiences",
              "attributes": {
                  "action": “OPEN",
                  "businessCategory": "FOOD_AND_DRINK",
                  "defaultLanguage": "EN",
                  "isPoweredBy": true,
                  "link": "https://fruta.example.com/restauraunt/simply_salad",
                  "place": {
                      "names": [ "Caffe Macs" ],
                      "mapAction": "RESTAURANT_ORDER_FOOD",
                      "displayPoint": {
                          "coordinates": { "latitude": 37.33611, "longitude": -122.00731 },
                          "source": "CALCULATED"
                      }
                  }
              },
              "relationships": {
                  "appClip": {
                      "data": {
                          "type": "appClip",
                          "id": "726ad1bb-3e1b-40eb-a986-d8a9897e4f1e"
                      }
                  },
                  "headerImage": {
                      "data": {
                          "type": "appClipAdvancedExperienceImages",
                          "id": "91c52741-832b-48a2-8935-1797655edbe7"
                      }
                  }
              },
              "included": {
                  "type": "appClipAdvancedExperienceLocalizations",
                  "attributes": {
                      "language": "EN",
                      "subtitle": "Fresh salad every day",
                      "title": "Simply Salad"
                  }
              }
          }
      }

Developer Footer

  • ビデオ
  • WWDC22
  • App Clipの最新情報
  • メニューを開く メニューを閉じる
    • 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.
    利用規約 プライバシーポリシー 契約とガイドライン